瀏覽代碼

Merge pull request #2471 from sebavan/Environment

Fix Edge Blur
David Catuhe 8 年之前
父節點
當前提交
f3b485438f
共有 2 個文件被更改,包括 10 次插入5 次删除
  1. 8 4
      src/Shaders/pbr.fragment.fx
  2. 2 1
      src/babylon.engine.ts

+ 8 - 4
src/Shaders/pbr.fragment.fx

@@ -379,7 +379,11 @@ void main(void) {
 		refractionCoords.y = 1.0 - refractionCoords.y;
 	#endif
 
-	float refractionLOD = getLodFromAlphaG(vRefractionMicrosurfaceInfos.x, alphaG, NdotV);
+	#ifdef LODINREFRACTIONALPHA
+		float refractionLOD = getLodFromAlphaG(vRefractionMicrosurfaceInfos.x, alphaG, NdotVUnclamped);
+	#else
+		float refractionLOD = getLodFromAlphaG(vRefractionMicrosurfaceInfos.x, alphaG, 1.0);
+	#endif
 	
 	#ifdef LODBASEDMICROSFURACE
 		// Apply environment convolution scale/offset filter tuning parameters to the mipmap LOD selection
@@ -452,10 +456,10 @@ void main(void) {
 		reflectionCoords.y = 1.0 - reflectionCoords.y;
 	#endif
 	
-	#ifdef REFLECTIONMAP_SKYBOX
-		float reflectionLOD = getLodFromAlphaG(vReflectionMicrosurfaceInfos.x, alphaG, 1.);
+	#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
+		float reflectionLOD = getLodFromAlphaG(vReflectionMicrosurfaceInfos.x, alphaG, NdotVUnclamped);
 	#else
-		float reflectionLOD = getLodFromAlphaG(vReflectionMicrosurfaceInfos.x, alphaG, NdotV);
+		float reflectionLOD = getLodFromAlphaG(vReflectionMicrosurfaceInfos.x, alphaG, 1.);
 	#endif
 
 	#ifdef LODBASEDMICROSFURACE

+ 2 - 1
src/babylon.engine.ts

@@ -3177,7 +3177,7 @@
                     const lodTexture = new BaseTexture(scene);
                     lodTexture.isCube = true;
                     lodTexture._texture = glTextureFromLod;
-                    
+
                     glTextureFromLod.isReady = true;
                     textures.push(lodTexture);
                 }
@@ -3202,6 +3202,7 @@
             texture.url = rootUrl;
             texture.references = 1;
             texture.onLoadedCallbacks = [];
+            texture.noMipmap = noMipmap;
 
             var isKTX = false;
             var isDDS = false;