Преглед изворни кода

Revert "Fix RectAreaLightUniformsLib"

Mr.doob пре 8 година
родитељ
комит
d545e3f248
2 измењених фајлова са 16 додато и 4 уклоњено
  1. 9 4
      examples/js/lights/RectAreaLightUniformsLib.js
  2. 7 0
      src/renderers/WebGLRenderer.js

+ 9 - 4
examples/js/lights/RectAreaLightUniformsLib.js

@@ -27,6 +27,8 @@
 
 	//
 
+	var UniformsLib = THREE.UniformsLib;
+	var ShaderLib = THREE.ShaderLib;
 
 	var LTC_MAT_TEXTURE = new THREE.DataTexture(
 			new Float32Array( LTC_MAT ),
@@ -45,12 +47,15 @@
 	LTC_MAT_TEXTURE.needsUpdate = true;
 	LTC_MAG_TEXTURE.needsUpdate = true;
 
+	THREE.UniformsLib.LTC_MAT_TEXTURE = LTC_MAT_TEXTURE;
+	THREE.UniformsLib.LTC_MAG_TEXTURE = LTC_MAG_TEXTURE;
+
 	// Add ltc tables to materials
 
-	var ltc_brdf = { ltcMat: { value: LTC_MAT_TEXTURE }, ltcMag: { value: LTC_MAT_TEXTURE } };
+	var ltc_brdf = { ltcMat: { value: null }, ltcMag: { value: null } };
 
-	Object.assign( THREE.ShaderLib.phong.uniforms, ltc_brdf );
-	Object.assign( THREE.ShaderLib.standard.uniforms, ltc_brdf );
-	Object.assign( THREE.ShaderLib.physical.uniforms, ltc_brdf );
+	Object.assign( ShaderLib.phong.uniforms, ltc_brdf );
+	Object.assign( ShaderLib.standard.uniforms, ltc_brdf );
+	Object.assign( ShaderLib.physical.uniforms, ltc_brdf );
 
 } )()

+ 7 - 0
src/renderers/WebGLRenderer.js

@@ -3,6 +3,7 @@ import { _Math } from '../math/Math';
 import { Matrix4 } from '../math/Matrix4';
 import { DataTexture } from '../textures/DataTexture';
 import { WebGLUniforms } from './webgl/WebGLUniforms';
+import { UniformsLib } from './shaders/UniformsLib';
 import { UniformsUtils } from './shaders/UniformsUtils';
 import { ShaderLib } from './shaders/ShaderLib';
 import { LensFlarePlugin } from './webgl/plugins/LensFlarePlugin';
@@ -1858,6 +1859,12 @@ function WebGLRenderer( parameters ) {
 
 			}
 
+			// RectAreaLight Texture
+			// TODO (mrdoob): Find a nicer implementation
+
+			if ( m_uniforms.ltcMat !== undefined ) m_uniforms.ltcMat.value = UniformsLib.LTC_MAT_TEXTURE;
+			if ( m_uniforms.ltcMag !== undefined ) m_uniforms.ltcMag.value = UniformsLib.LTC_MAG_TEXTURE;
+
 			WebGLUniforms.upload(
 				_gl, materialProperties.uniformsList, m_uniforms, _this );