public static void tr_accumulateNormals(Mesh trMesh, BaseMesh mesh, int numCorners, ushort[] vertexIndices, Polygon p) { p.Vertices.Resize(numCorners, () => new Vertex()); for (var i = 0; i < numCorners; i++) { p.Vertices[i].Position = trMesh.Vertices[vertexIndices[i]].ToVector3(); } p.FindNormal(); for (var i = 0; i < numCorners; i++) { mesh.Vertices[vertexIndices[i]].Normal += p.Plane.Normal; } }
public static void tr_setupRoomVertices(World world, Level tr, Loader.Room tr_room, BaseMesh mesh, int numCorners, ushort[] vertices, ushort masked_texture, Polygon p) { p.Vertices.Resize(numCorners, () => new Vertex()); for (var i = 0; i < numCorners; i++) { p.Vertices[i].Position = tr_room.Vertices[vertices[i]].Vertex.ToVector3(); } p.FindNormal(); for (var i = 0; i < numCorners; i++) { mesh.Vertices[vertices[i]].Normal += p.Plane.Normal; p.Vertices[i].Normal = p.Plane.Normal; p.Vertices[i].Color = TR_color_to_arr(tr_room.Vertices[vertices[i]].Color); } var tex = tr.ObjectTextures[masked_texture]; SetAnimTexture(p, masked_texture, world); p.BlendMode = tex.TransparencyFlags; world.TextureAtlas.GetCoordinates(masked_texture, false, p); }