private static Buffer CreateIndexBufferFromMesh(Assimp.Mesh mesh) { List <int> indexList = new List <int>(); foreach (Face f in mesh.Faces) { f.Indices.ForEach((p) => indexList.Add(p)); } Buffer ret = Buffer.Create(PipelineManager.Get().Device, BindFlags.IndexBuffer, indexList.ToArray(), 0, ResourceUsage.Immutable); return(ret); }
private static Buffer CreateVertexBufferFromMesh(Assimp.Mesh mesh) { List <VertexPosTexCoordNormal> vertexList = new List <VertexPosTexCoordNormal>(); for (int i = 0; i < mesh.VertexCount; i++) { Vector4 pos = new Vector4(mesh.Vertices[i].X, mesh.Vertices[i].Y, mesh.Vertices[i].Z, 1.0f); Vector2 texCoord = new Vector2(0, 0); Vector3 normal = new Vector3(mesh.Normals[i].X, mesh.Normals[i].Y, mesh.Normals[i].Z); VertexPosTexCoordNormal newElem = new VertexPosTexCoordNormal(pos, texCoord, normal); vertexList.Add(newElem); } Buffer ret = Buffer.Create(PipelineManager.Get().Device, SharpDX.Direct3D11.BindFlags.VertexBuffer, vertexList.ToArray(), 0, ResourceUsage.Immutable); return(ret); }