소스 검색

Merge pull request #9638 from sebavan/master

Ref Prob Std Mat
sebavan 4 년 전
부모
커밋
962da466bd
2개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      src/Materials/standardMaterial.ts
  2. 3 0
      src/Shaders/default.fragment.fx

+ 3 - 0
src/Materials/standardMaterial.ts

@@ -110,6 +110,7 @@ export class StandardMaterialDefines extends MaterialDefines implements IImagePr
     public REFLECTIONMAP_EQUIRECTANGULAR = false;
     public REFLECTIONMAP_EQUIRECTANGULAR_FIXED = false;
     public REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = false;
+    public REFLECTIONMAP_OPPOSITEZ = false;
     public INVERTCUBICMAP = false;
     public LOGARITHMICDEPTH = false;
     public REFRACTION = false;
@@ -914,6 +915,7 @@ export class StandardMaterial extends PushMaterial {
                         defines.INVERTCUBICMAP = (this._reflectionTexture.coordinatesMode === Texture.INVCUBIC_MODE);
                         defines.REFLECTIONMAP_3D = this._reflectionTexture.isCube;
                         defines.RGBDREFLECTION = this._reflectionTexture.isRGBD;
+                        defines.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !this._reflectionTexture.invertZ : this._reflectionTexture.invertZ;
 
                         switch (this._reflectionTexture.coordinatesMode) {
                             case Texture.EXPLICIT_MODE:
@@ -951,6 +953,7 @@ export class StandardMaterial extends PushMaterial {
                     }
                 } else {
                     defines.REFLECTION = false;
+                    defines.REFLECTIONMAP_OPPOSITEZ = false;
                 }
 
                 if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {

+ 3 - 0
src/Shaders/default.fragment.fx

@@ -302,6 +302,9 @@ vec4 reflectionColor = vec4(0., 0., 0., 1.);
 
 #ifdef REFLECTION
 	vec3 vReflectionUVW = computeReflectionCoords(vec4(vPositionW, 1.0), normalW);
+	#ifdef REFLECTIONMAP_OPPOSITEZ
+		vReflectionUVW.z *= -1.0;
+	#endif
 
 	#ifdef REFLECTIONMAP_3D
 		#ifdef ROUGHNESS