浏览代码

Update TranslucentShader

Garrett Johnson 5 年之前
父节点
当前提交
ac5bc48270

+ 3 - 2
docs/api/en/materials/ShaderMaterial.html

@@ -45,7 +45,7 @@
 				[page:RawShaderMaterial] instead of this class.
 			</li>
 			<li>
-				You can use the directive #pragma unroll_loop in order to unroll a *for* loop in GLSL by the shader preprocessor.
+				You can use the directive #pragma unroll_loop_start in order to unroll a *for* loop in GLSL by the shader preprocessor.
 				The directive has to be placed right above the loop. The loop formatting has to correspond to a defined standard.
 				<ul>
 					<li>
@@ -59,12 +59,13 @@
 					</li>
 				</ul>
 				<code>
-		#pragma unroll_loop
+		#pragma unroll_loop_start
 		for ( int i = 0; i < 10; i ++ ) {
 
 			// ...
 
 		}
+		#pragma unroll_loop_end
 				</code>
 			</li>
 		</ul>

+ 3 - 2
docs/api/zh/materials/ShaderMaterial.html

@@ -35,7 +35,7 @@
 			<li> 内置attributes和uniforms与代码一起传递到shaders。
 				如果您不希望[page:WebGLProgram]向shader代码添加任何内容,则可以使用[page:RawShaderMaterial]而不是此类。
 			</li>
-			<li> 您可以使用指令#pragma unroll_loop,以便通过shader预处理器在GLSL中展开for循环。
+			<li> 您可以使用指令#pragma unroll_loop_start,以便通过shader预处理器在GLSL中展开for循环。
 				该指令必须放在循环的正上方。循环格式必须与定义的标准相对应。
 				<ul>
 					<li> 循环必须标准化[link:https://en.wikipedia.org/wiki/Normalized_loop normalized]。
@@ -48,12 +48,13 @@
 					</li>
 				</ul>
 				<code>
-		#pragma unroll_loop
+		#pragma unroll_loop_start
 		for ( int i = 0; i < 10; i ++ ) {
 
 			// ...
 
 		}
+		#pragma unroll_loop_end
 				</code>
 			</li>
 		</ul>

+ 4 - 2
examples/js/shaders/TranslucentShader.js

@@ -127,7 +127,7 @@ THREE.TranslucentShader = {
 
 		"		PointLight pointLight;",
 
-		"		#pragma unroll_loop",
+		"		#pragma unroll_loop_start",
 		"		for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {",
 		"		 	pointLight = pointLights[ i ];",
 		"		 	getPointDirectLightIrradiance( pointLight, geometry, directLight );",
@@ -142,6 +142,7 @@ THREE.TranslucentShader = {
 		"			RE_Direct_Scattering(directLight, vUv, geometry, reflectedLight);",
 		"			#endif",
 		"		}",
+		"		#pragma unroll_loop_end",
 
 		"		#endif",
 
@@ -173,12 +174,13 @@ THREE.TranslucentShader = {
 
 		"		#if ( NUM_HEMI_LIGHTS > 0 )",
 
-		"			#pragma unroll_loop",
+		"			#pragma unroll_loop_start",
 		"			for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {",
 
 		"				irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );",
 
 		"			}",
+		"			#pragma unroll_loop_end",
 
 		"		#endif",