Skip to content

Commit da6a300

Browse files
committed
Iterates and renders the new models array
1 parent 4f7442e commit da6a300

1 file changed

Lines changed: 49 additions & 30 deletions

File tree

src/gameobjects/mesh/MeshWebGLRenderer.js

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ var GetCalcMatrix = require('../GetCalcMatrix');
2222
*/
2323
var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
2424
{
25-
var faces = src.faces;
26-
var totalFaces = faces.length;
25+
// var faces = src.faces;
26+
// var totalFaces = faces.length;
2727

28-
if (totalFaces === 0)
29-
{
30-
return;
31-
}
28+
// if (totalFaces === 0)
29+
// {
30+
// return;
31+
// }
3232

3333
var pipeline = renderer.pipelines.set(src.pipeline, src);
3434

@@ -53,49 +53,68 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
5353
var e = calcMatrix.e;
5454
var f = calcMatrix.f;
5555

56-
var roundPixels = camera.roundPixels;
57-
var alpha = camera.alpha * src.alpha;
58-
var hideCCW = src.hideCCW;
56+
var globalAlpha = camera.alpha * src.alpha;
57+
58+
var models = src.models;
5959

60-
for (var i = 0; i < totalFaces; i++)
60+
for (var m = 0; m < models.length; m++)
6161
{
62-
var face = faces[i];
62+
var model = models[m];
6363

64-
if (hideCCW && !face.isCounterClockwise())
64+
var faces = model.faces;
65+
var totalFaces = faces.length;
66+
var alpha = globalAlpha * model.alpha;
67+
68+
if (totalFaces === 0 || !model.visible || alpha <= 0)
6569
{
6670
continue;
6771
}
6872

69-
if (pipeline.shouldFlush(3))
73+
if (pipeline.shouldFlush(model.getVertexCount()))
7074
{
7175
pipeline.flush();
7276

7377
vertexOffset = 0;
7478
}
7579

76-
vertexOffset = face.vertex1.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
77-
vertexOffset = face.vertex2.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
78-
vertexOffset = face.vertex3.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
80+
if (debugCallback)
81+
{
82+
debugVerts = [];
83+
}
7984

80-
pipeline.vertexCount += 3;
85+
for (var i = 0; i < totalFaces; i++)
86+
{
87+
var face = faces[i];
88+
89+
if (model.hideCCW && !face.isCounterClockwise())
90+
{
91+
continue;
92+
}
93+
94+
vertexOffset = face.vertex1.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
95+
vertexOffset = face.vertex2.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
96+
vertexOffset = face.vertex3.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
97+
98+
pipeline.vertexCount += 3;
99+
100+
if (debugCallback)
101+
{
102+
debugVerts.push(
103+
F32[vertexOffset - 20],
104+
F32[vertexOffset - 19],
105+
F32[vertexOffset - 13],
106+
F32[vertexOffset - 12],
107+
F32[vertexOffset - 6],
108+
F32[vertexOffset - 5]
109+
);
110+
}
111+
}
81112

82113
if (debugCallback)
83114
{
84-
debugVerts.push(
85-
F32[vertexOffset - 20],
86-
F32[vertexOffset - 19],
87-
F32[vertexOffset - 13],
88-
F32[vertexOffset - 12],
89-
F32[vertexOffset - 6],
90-
F32[vertexOffset - 5]
91-
);
115+
debugCallback.call(src, src, debugVerts);
92116
}
93117
}
94-
95-
if (debugCallback)
96-
{
97-
debugCallback.call(src, src, src.vertices.length * 2, debugVerts);
98-
}
99118
};
100119

101120
module.exports = MeshWebGLRenderer;

0 commit comments

Comments
 (0)