Kaynağa Gözat

Update SkyShader.js to fix random dark sky due to float precision (#9888)

* Previously if you put sun at vec3(0.0, 1.0, 0.0) and move it along the Y axis, the sky will suddenly become super dark at some random position. Further investigation shows the value passed into function sunIntensity is slightly larger than 1.0 due to float precision issue. Add a clamp will help get rid of such problems.
Hao Zhang 8 yıl önce
ebeveyn
işleme
bc48aed587
1 değiştirilmiş dosya ile 1 ekleme ve 0 silme
  1. 1 0
      examples/js/SkyShader.js

+ 1 - 0
examples/js/SkyShader.js

@@ -66,6 +66,7 @@ THREE.ShaderLib[ 'sky' ] = {
 
 		"float sunIntensity(float zenithAngleCos)",
 		"{",
+		    	"zenithAngleCos = clamp(zenithAngleCos, -1.0, 1.0);",
 			"return EE * max(0.0, 1.0 - pow(e, -((cutoffAngle - acos(zenithAngleCos))/steepness)));",
 		"}",