Minor modification.

This commit is contained in:
Viktor Kovacs 2021-04-20 08:45:11 +02:00
parent c4a0d68a37
commit 0372bf81c9

View File

@ -53,7 +53,7 @@ OV.MeshBuffer = class
OV.ConvertMeshToMeshBuffer = function (mesh)
{
function AddVertexToPrimitiveBuffer (mesh, vertexIndex, normalIndex, uvIndex, primitiveBuffer, primitiveMaps)
function AddVertexToPrimitiveBuffer (mesh, vertexIndex, normalIndex, uvIndex, primitiveBuffer, meshToPrimitiveVertices)
{
function GetUVOrDefault (mesh, uvIndex, forceUVs)
{
@ -106,10 +106,10 @@ OV.ConvertMeshToMeshBuffer = function (mesh)
return null;
}
let primitiveVertices = primitiveMaps.meshToPrimitiveVertices[vertexIndex];
let primitiveVertices = meshToPrimitiveVertices[vertexIndex];
if (primitiveVertices === undefined) {
let primitiveVertex = AddVertex (mesh, vertexIndex, normalIndex, uvIndex, primitiveBuffer);
primitiveMaps.meshToPrimitiveVertices[vertexIndex] = [primitiveVertex];
meshToPrimitiveVertices[vertexIndex] = [primitiveVertex];
} else {
let existingPrimitiveVertex = FindMatchingPrimitiveVertex (mesh, primitiveVertices, normalIndex, uvIndex);
if (existingPrimitiveVertex !== null) {
@ -139,21 +139,19 @@ OV.ConvertMeshToMeshBuffer = function (mesh)
});
let primitiveBuffer = null;
let primitiveMaps = null;
let meshToPrimitiveVertices = null;
for (let i = 0; i < triangleIndices.length; i++) {
let triangleIndex = triangleIndices[i];
let triangle = mesh.GetTriangle (triangleIndex);
if (primitiveBuffer === null || primitiveBuffer.material !== triangle.mat) {
primitiveBuffer = new OV.MeshPrimitiveBuffer ();
primitiveBuffer.material = triangle.mat;
primitiveMaps = {
meshToPrimitiveVertices : {}
};
meshToPrimitiveVertices = {};
meshBuffer.primitives.push (primitiveBuffer);
}
AddVertexToPrimitiveBuffer (mesh, triangle.v0, triangle.n0, triangle.u0, primitiveBuffer, primitiveMaps);
AddVertexToPrimitiveBuffer (mesh, triangle.v1, triangle.n1, triangle.u1, primitiveBuffer, primitiveMaps);
AddVertexToPrimitiveBuffer (mesh, triangle.v2, triangle.n2, triangle.u2, primitiveBuffer, primitiveMaps);
AddVertexToPrimitiveBuffer (mesh, triangle.v0, triangle.n0, triangle.u0, primitiveBuffer, meshToPrimitiveVertices);
AddVertexToPrimitiveBuffer (mesh, triangle.v1, triangle.n1, triangle.u1, primitiveBuffer, meshToPrimitiveVertices);
AddVertexToPrimitiveBuffer (mesh, triangle.v2, triangle.n2, triangle.u2, primitiveBuffer, meshToPrimitiveVertices);
}
return meshBuffer;