private static AnimationMesh CreateMesh(SerializableMesh meshContent) { AnimationMesh mesh = new AnimationMesh(meshContent.name); AnimationVertex[] vertices = new AnimationVertex[meshContent.vertices.Length]; for (int i = 0; i < vertices.Length; i++) { SerializableVertex vertexContent = meshContent.vertices[i]; vertices[i] = new AnimationVertex { position = vertexContent.position, normal = vertexContent.normal, texture = vertexContent.texture, blendweights = vertexContent.blendweights, blendindices = vertexContent.blendindices }; } mesh.SetIndices(meshContent.indices); mesh.SetVertices(vertices); mesh.SetTextureName(meshContent.textureName); return(mesh); }
private static void SetMeshList(AnimationModelContent model, SerializableModel modelContent) { foreach (SerializableMesh meshContent in modelContent.meshList) { AnimationMesh mesh = CreateMesh(meshContent); model.AddMesh(mesh); } }
private static void SetTextures(AnimationModelContent model, ContentManager content, string textureDirectory) { for (int i = 0; i < model.GetMeshCount(); i++) { AnimationMesh mesh = model.GetMesh(i); string textureName = mesh.GetTextureName(); Texture2D texture = content.Load <Texture2D>(textureDirectory + RemoveFileExtension(textureName)); mesh.SetTexture(texture); } }
public void Draw(GraphicsDevice device) { for (int i = 0; i < model.GetMeshCount(); i++) { AnimationMesh mesh = model.GetMesh(i); effect.Texture = mesh.GetTexture(); effect.CurrentTechnique.Passes[0].Apply(); mesh.Draw(device); } }