Exemple #1
0
        public void 初期化する()
        {
            // シェイプシェーダーを作成する。

            _D3DEffect = CGHelper.EffectFx5を作成するFromResource(@"MikuMikuFlex.Resource.Shader.ShapeShader.fx", RenderContext.Instance.DeviceManager.D3DDevice);


            // 頂点リストを作成し、それをもとに頂点バッファを作成する。

            var 頂点リスト = new List <Vector4>();

            InitializePositions(頂点リスト);
            _D3D頂点バッファ = CGHelper.D3Dバッファを作成する(頂点リスト, RenderContext.Instance.DeviceManager.D3DDevice, BindFlags.VertexBuffer);


            // インデックスバッファを作成する。

            var builder = new インデックスバッファBuilder();

            InitializeIndex(builder);
            _D3Dインデックスバッファ = builder.インデックスバッファを作成する();


            // 入力レイアウトを作成する。

            _D3D入力レイアウト = new InputLayout(
                RenderContext.Instance.DeviceManager.D3DDevice,
                _D3DEffect.GetTechniqueByIndex(0).GetPassByIndex(0).Description.Signature,
                シェイプ用入力エレメント.VertexElements);
        }
Exemple #2
0
        protected override void InitializeIndex(インデックスバッファBuilder builder)
        {
            uint n = _desc.DivideCount + 1;

            // 上のリング
            for (uint i = 0; i < _desc.DivideCount; i++)
            {
                builder.四角形を追加する(i, i + 1, (i + 1) + n, i + n);
            }

            // 下のリング
            for (uint i = 0; i < _desc.DivideCount; i++)
            {
                builder.四角形を追加する(i + n * 2, i + n * 3, (i + 1) + n * 3, (i + 1) + n * 2);
            }

            // 内面
            for (uint i = 0; i < _desc.DivideCount; i++)
            {
                builder.四角形を追加する(i, i + n * 2, (i + 1) + n * 2, (i + 1));
            }

            // 内面
            for (uint i = 0; i < _desc.DivideCount; i++)
            {
                builder.四角形を追加する(i + n, i + 1 + n, (i + 1) + n * 3, i + n * 3);
            }
        }
 protected override void InitializeIndex(インデックスバッファBuilder builder)
 {
     builder.四角形を追加する(4, 3, 2, 1);
     builder.角形を追加する(0, 3, 4);
     builder.角形を追加する(0, 2, 3);
     builder.角形を追加する(0, 1, 2);
     builder.角形を追加する(0, 4, 1);
 }
Exemple #4
0
 protected override void InitializeIndex(インデックスバッファBuilder builder)
 {
     builder.四角形を追加する(0, 1, 2, 3);
     builder.四角形を追加する(6, 5, 4, 7);
     builder.四角形を追加する(0, 3, 7, 4);
     builder.四角形を追加する(2, 1, 5, 6);
     builder.四角形を追加する(3, 2, 6, 7);
     builder.四角形を追加する(1, 0, 4, 5);
 }
Exemple #5
0
 protected abstract void InitializeIndex(インデックスバッファBuilder builder);