コード例 #1
0
            public PosNormalTexTanSkinned(Vector3 pos, Vector3 norm, Vector2 uv, Vector3 tan, float weight, byte[] boneIndices)
            {
                Pos         = pos;
                Normal      = norm;
                Tex         = uv;
                Tan         = new Vector4(tan, 0);
                Weight      = weight;
                BoneIndices = new BonePalette();
                for (int index = 0; index < boneIndices.Length; index++)
                {
                    switch (index)
                    {
                    case 0:
                        BoneIndices.B0 = boneIndices[index];
                        break;

                    case 1:
                        BoneIndices.B1 = boneIndices[index];
                        break;

                    case 2:
                        BoneIndices.B2 = boneIndices[index];
                        break;

                    case 3:
                        BoneIndices.B3 = boneIndices[index];
                        break;
                    }
                }
            }
コード例 #2
0
        private void CompareBoneMap(BonePalette a, BonePalette b)
        {
            if (a == null || b == null)
            {
                Assert.IsTrue(a == null ? (b == null) : (b != null));
                return;
            }

            Assert.AreEqual(a.BoneCount, b.BoneCount);

            if (a.InverseBindMatrices == null || b.InverseBindMatrices == null)
            {
                Assert.IsTrue(a.InverseBindMatrices == null ? (b.InverseBindMatrices == null) : (b.InverseBindMatrices != null));
                return;
            }

            if (a.BoneToNodeIndices == null || b.BoneToNodeIndices == null)
            {
                Assert.IsTrue(a.BoneToNodeIndices == null ? (b.BoneToNodeIndices == null) : (b.BoneToNodeIndices != null));
                return;
            }

            for (int i = 0; i < a.BoneCount; i++)
            {
                Assert.AreEqual(a.InverseBindMatrices[i], b.InverseBindMatrices[i]);
                Assert.AreEqual(a.BoneToNodeIndices[i], b.BoneToNodeIndices[i]);
            }
        }
コード例 #3
0
        private void WriteBonePalette(BonePalette bonePalette)
        {
            WriteInt(bonePalette.BoneCount);

            for (int i = 0; i < bonePalette.InverseBindMatrices.Length; i++)
            {
                WriteMatrix4x4(bonePalette.InverseBindMatrices[i]);
            }

            for (int i = 0; i < bonePalette.BoneToNodeIndices.Length; i++)
            {
                WriteUShort(bonePalette.BoneToNodeIndices[i]);
            }
        }
コード例 #4
0
ファイル: Vertex.cs プロジェクト: amitprakash07/dx11
 public PosNormalTexTanSkinned(Vector3 pos, Vector3 norm, Vector2 uv, Vector3 tan, float weight, byte[] boneIndices) {
     Pos = pos;
     Normal = norm;
     Tex = uv;
     Tan = new Vector4(tan, 0);
     Weight = weight;
     BoneIndices = new BonePalette();
     for (int index = 0; index < boneIndices.Length; index++) {
         switch (index) {
             case 0:
                 BoneIndices.B0 = boneIndices[index];
                 break;
             case 1:
                 BoneIndices.B1 = boneIndices[index];
                 break;
             case 2:
                 BoneIndices.B2 = boneIndices[index];
                 break;
             case 3:
                 BoneIndices.B3 = boneIndices[index];
                 break;
         }
     }
     
 }