Browse Source

Take material.fillMode into account

David Catuhe 5 years ago
parent
commit
2f1626c935

+ 1 - 1
src/Layers/effectLayer.ts

@@ -761,7 +761,7 @@ export abstract class EffectLayer {
             }
             }
 
 
             // Draw
             // Draw
-            mesh._processRendering(subMesh, this._effectLayerMapGenerationEffect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+            mesh._processRendering(subMesh, this._effectLayerMapGenerationEffect, material.fillMode, batch, hardwareInstancedRendering,
                 (isInstance, world) => this._effectLayerMapGenerationEffect.setMatrix("world", world));
                 (isInstance, world) => this._effectLayerMapGenerationEffect.setMatrix("world", world));
         } else {
         } else {
             // Need to reset refresh rate of the main map
             // Need to reset refresh rate of the main map

+ 2 - 2
src/Lights/Shadows/cascadedShadowGenerator.ts

@@ -1251,7 +1251,7 @@ export class CascadedShadowGenerator implements IShadowGenerator {
         var hardwareInstancedRendering = (engine.getCaps().instancedArrays) && (batch.visibleInstances[subMesh._id] !== null) && (batch.visibleInstances[subMesh._id] !== undefined);
         var hardwareInstancedRendering = (engine.getCaps().instancedArrays) && (batch.visibleInstances[subMesh._id] !== null) && (batch.visibleInstances[subMesh._id] !== undefined);
         if (this.isReady(subMesh, hardwareInstancedRendering)) {
         if (this.isReady(subMesh, hardwareInstancedRendering)) {
             engine.enableEffect(this._effect);
             engine.enableEffect(this._effect);
-            mesh._bind(subMesh, this._effect, Material.TriangleFillMode);
+            mesh._bind(subMesh, this._effect, material.fillMode);
 
 
             this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, 0);
             this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, 0);
 
 
@@ -1301,7 +1301,7 @@ export class CascadedShadowGenerator implements IShadowGenerator {
             this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect);
             this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect);
 
 
             // Draw
             // Draw
-            mesh._processRendering(subMesh, this._effect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+            mesh._processRendering(subMesh, this._effect, material.fillMode, batch, hardwareInstancedRendering,
                 (isInstance, world) => this._effect.setMatrix("world", world));
                 (isInstance, world) => this._effect.setMatrix("world", world));
 
 
             if (this.forceBackFacesOnly) {
             if (this.forceBackFacesOnly) {

+ 2 - 2
src/Lights/Shadows/shadowGenerator.ts

@@ -979,7 +979,7 @@ export class ShadowGenerator implements IShadowGenerator {
         var hardwareInstancedRendering = (engine.getCaps().instancedArrays) && (batch.visibleInstances[subMesh._id] !== null) && (batch.visibleInstances[subMesh._id] !== undefined);
         var hardwareInstancedRendering = (engine.getCaps().instancedArrays) && (batch.visibleInstances[subMesh._id] !== null) && (batch.visibleInstances[subMesh._id] !== undefined);
         if (this.isReady(subMesh, hardwareInstancedRendering)) {
         if (this.isReady(subMesh, hardwareInstancedRendering)) {
             engine.enableEffect(this._effect);
             engine.enableEffect(this._effect);
-            mesh._bind(subMesh, this._effect, Material.TriangleFillMode);
+            mesh._bind(subMesh, this._effect, material.fillMode);
 
 
             this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, this.depthScale);
             this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, this.depthScale);
 
 
@@ -1034,7 +1034,7 @@ export class ShadowGenerator implements IShadowGenerator {
             this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect);
             this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect);
 
 
             // Draw
             // Draw
-            mesh._processRendering(subMesh, this._effect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+            mesh._processRendering(subMesh, this._effect, material.fillMode, batch, hardwareInstancedRendering,
                 (isInstance, world) => this._effect.setMatrix("world", world));
                 (isInstance, world) => this._effect.setMatrix("world", world));
 
 
             if (this.forceBackFacesOnly) {
             if (this.forceBackFacesOnly) {

+ 1 - 1
src/PostProcesses/volumetricLightScatteringPostProcess.ts

@@ -330,7 +330,7 @@ export class VolumetricLightScatteringPostProcess extends PostProcess {
                 }
                 }
 
 
                 engine.enableEffect(effect);
                 engine.enableEffect(effect);
-                mesh._bind(subMesh, effect, Material.TriangleFillMode);
+                mesh._bind(subMesh, effect, material.fillMode);
 
 
                 if (mesh === this.mesh) {
                 if (mesh === this.mesh) {
                     material.bind(mesh.getWorldMatrix(), mesh);
                     material.bind(mesh.getWorldMatrix(), mesh);

+ 2 - 2
src/Rendering/depthRenderer.ts

@@ -121,7 +121,7 @@ export class DepthRenderer {
             var camera = this._camera || scene.activeCamera;
             var camera = this._camera || scene.activeCamera;
             if (this.isReady(subMesh, hardwareInstancedRendering) && camera) {
             if (this.isReady(subMesh, hardwareInstancedRendering) && camera) {
                 engine.enableEffect(this._effect);
                 engine.enableEffect(this._effect);
-                mesh._bind(subMesh, this._effect, Material.TriangleFillMode);
+                mesh._bind(subMesh, this._effect, material.fillMode);
 
 
                 this._effect.setMatrix("viewProjection", scene.getTransformMatrix());
                 this._effect.setMatrix("viewProjection", scene.getTransformMatrix());
 
 
@@ -146,7 +146,7 @@ export class DepthRenderer {
                 MaterialHelper.BindMorphTargetParameters(mesh, this._effect);
                 MaterialHelper.BindMorphTargetParameters(mesh, this._effect);
 
 
                 // Draw
                 // Draw
-                mesh._processRendering(subMesh, this._effect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+                mesh._processRendering(subMesh, this._effect, material.fillMode, batch, hardwareInstancedRendering,
                     (isInstance, world) => this._effect.setMatrix("world", world));
                     (isInstance, world) => this._effect.setMatrix("world", world));
             }
             }
         };
         };

+ 2 - 2
src/Rendering/geometryBufferRenderer.ts

@@ -429,7 +429,7 @@ export class GeometryBufferRenderer {
 
 
             if (this.isReady(subMesh, hardwareInstancedRendering)) {
             if (this.isReady(subMesh, hardwareInstancedRendering)) {
                 engine.enableEffect(this._effect);
                 engine.enableEffect(this._effect);
-                mesh._bind(subMesh, this._effect, Material.TriangleFillMode);
+                mesh._bind(subMesh, this._effect, material.fillMode);
 
 
                 this._effect.setMatrix("viewProjection", scene.getTransformMatrix());
                 this._effect.setMatrix("viewProjection", scene.getTransformMatrix());
                 this._effect.setMatrix("view", scene.getViewMatrix());
                 this._effect.setMatrix("view", scene.getViewMatrix());
@@ -482,7 +482,7 @@ export class GeometryBufferRenderer {
                 }
                 }
 
 
                 // Draw
                 // Draw
-                mesh._processRendering(subMesh, this._effect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+                mesh._processRendering(subMesh, this._effect, material.fillMode, batch, hardwareInstancedRendering,
                     (isInstance, world) => this._effect.setMatrix("world", world));
                     (isInstance, world) => this._effect.setMatrix("world", world));
             }
             }
 
 

+ 2 - 2
src/Rendering/outlineRenderer.ts

@@ -190,7 +190,7 @@ export class OutlineRenderer implements ISceneComponent {
         // Morph targets
         // Morph targets
         MaterialHelper.BindMorphTargetParameters(mesh, this._effect);
         MaterialHelper.BindMorphTargetParameters(mesh, this._effect);
 
 
-        mesh._bind(subMesh, this._effect, Material.TriangleFillMode);
+        mesh._bind(subMesh, this._effect, material.fillMode);
 
 
         // Alpha test
         // Alpha test
         if (material && material.needAlphaTesting()) {
         if (material && material.needAlphaTesting()) {
@@ -203,7 +203,7 @@ export class OutlineRenderer implements ISceneComponent {
 
 
         engine.setZOffset(-this.zOffset);
         engine.setZOffset(-this.zOffset);
 
 
-        mesh._processRendering(subMesh, this._effect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
+        mesh._processRendering(subMesh, this._effect, material.fillMode, batch, hardwareInstancedRendering,
             (isInstance, world) => { this._effect.setMatrix("world", world); });
             (isInstance, world) => { this._effect.setMatrix("world", world); });
 
 
         engine.setZOffset(0);
         engine.setZOffset(0);