public SSSkeletalRenderMesh(SSSkeletalMesh[] subMeshArray)
 {
     _hierarchy = new SSSkeletalHierarchyRuntime(subMeshArray [0].joints);
     foreach (var subMesh in subMeshArray)
     {
         _hierarchy.verifyJoints(subMesh.joints);
         attachMesh(subMesh);
     }
     _channelControllers.Add(new SSBindPoseSkeletalController());
 }
Пример #2
0
        public SSSkeletalMeshRuntime(SSSkeletalMesh mesh, SSSkeletalHierarchyRuntime hierarchy)
        {
            _hierarchy = hierarchy;

            _vertices = new SSSkeletalVertexRuntime[mesh.vertices.Length];
            for (int v = 0; v < mesh.vertices.Length; ++v) {
                _vertices [v] = new SSSkeletalVertexRuntime (mesh.vertices [v]);
            }

            _weights = new SSSkeletalWeightRuntime[mesh.weights.Length];
            for (int w = 0; w < mesh.weights.Length; ++w) {
                _weights [w] = new SSSkeletalWeightRuntime (mesh.weights [w]);
            }
            _triangleIndices = mesh.triangleIndices;
            _preComputeNormals ();
        }
        public SSSkeletalMeshRuntime(SSSkeletalMesh mesh, SSSkeletalHierarchyRuntime hierarchy)
        {
            _hierarchy = hierarchy;

            _vertices = new SSSkeletalVertexRuntime[mesh.vertices.Length];
            for (int v = 0; v < mesh.vertices.Length; ++v)
            {
                _vertices [v] = new SSSkeletalVertexRuntime(mesh.vertices [v]);
            }

            _weights = new SSSkeletalWeightRuntime[mesh.weights.Length];
            for (int w = 0; w < mesh.weights.Length; ++w)
            {
                _weights [w] = new SSSkeletalWeightRuntime(mesh.weights [w]);
            }
            _triangleIndices = mesh.triangleIndices;
            _preComputeNormals();
        }
            public RenderSubMesh(SSSkeletalMesh skeletalMesh, SSSkeletalHierarchyRuntime hierarchy = null)
                : base(null, skeletalMesh.triangleIndices)
            {
                m_runtimeMesh = new SSSkeletalMeshRuntime(skeletalMesh, hierarchy);

                m_vertices = new SSVertex_PosNormTex[m_runtimeMesh.numVertices];
                for (int v = 0; v < m_runtimeMesh.numVertices; ++v)
                {
                    m_vertices [v].TexCoord = m_runtimeMesh.textureCoords(v);
                    m_vertices [v].Normal   = m_runtimeMesh.bindPoseNormal(v);
                }
                ComputeVertices();

                string matString = skeletalMesh.materialShaderString;

                if (matString != null && matString.Length > 0)
                {
                    base.textureMaterial
                        = SSTextureMaterial.FromMaterialString(skeletalMesh.assetContext, matString);
                }
            }
 public SSSkeletalRenderMesh(SSSkeletalMesh mesh)
 {
     _hierarchy = new SSSkeletalHierarchyRuntime(mesh.joints);
     attachMesh(mesh);
     _channelControllers.Add(new SSBindPoseSkeletalController());
 }