Skip to content

Commit abdd62d

Browse files
committed
Will no longer render Faces it cannot see in the Camera
1 parent 88feadb commit abdd62d

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

src/gameobjects/mesh/MeshWebGLRenderer.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,18 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
5555

5656
var z = src.viewPosition.z;
5757

58+
var hideCCW = src.hideCCW;
5859
var roundPixels = camera.roundPixels;
5960
var alpha = camera.alpha * src.alpha;
60-
var hideCCW = src.hideCCW;
61+
62+
var totalFacesRendered = 0;
6163

6264
for (var i = 0; i < totalFaces; i++)
6365
{
6466
var face = faces[i];
6567

66-
if (hideCCW && !face.isCounterClockwise(z))
68+
// If face has alpha <= 0, or hideCCW + clockwise, or isn't in camera view, then don't draw it
69+
if (!face.isInView(camera, hideCCW, z, alpha, a, b, c, d, e, f, roundPixels))
6770
{
6871
continue;
6972
}
@@ -75,10 +78,9 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
7578
vertexOffset = 0;
7679
}
7780

78-
vertexOffset = face.vertex1.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
79-
vertexOffset = face.vertex2.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
80-
vertexOffset = face.vertex3.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f, roundPixels);
81+
vertexOffset = face.load(F32, U32, vertexOffset, textureUnit, tintEffect);
8182

83+
totalFacesRendered++;
8284
pipeline.vertexCount += 3;
8385

8486
if (debugCallback)
@@ -94,6 +96,8 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
9496
}
9597
}
9698

99+
src.totalFrame += totalFacesRendered;
100+
97101
if (debugCallback)
98102
{
99103
debugCallback.call(src, src, src.vertices.length * 2, debugVerts);

0 commit comments

Comments
 (0)