Explorar el Código

Fix EffectLayer Orientation

sebavan hace 5 años
padre
commit
f53c29aa25
Se han modificado 1 ficheros con 8 adiciones y 1 borrados
  1. 8 1
      src/Layers/effectLayer.ts

+ 8 - 1
src/Layers/effectLayer.ts

@@ -675,7 +675,14 @@ export abstract class EffectLayer {
         }
 
         // Culling
-        engine.setState(material.backFaceCulling);
+        let sideOrientation = renderingMesh.overrideMaterialSideOrientation || material.sideOrientation;
+        const mainDeterminant = renderingMesh._getWorldMatrixDeterminant();
+        if (mainDeterminant < 0) {
+            sideOrientation = (sideOrientation === Material.ClockWiseSideOrientation ? Material.CounterClockWiseSideOrientation : Material.ClockWiseSideOrientation);
+        }
+
+        const reverse = sideOrientation === Material.ClockWiseSideOrientation;
+        engine.setState(material.backFaceCulling, material.zOffset, undefined, reverse);
 
         // Managing instances
         var batch = renderingMesh._getInstancesRenderList(subMesh._id, !!replacementMesh);