着色器中的分支与循环与JavaScript 和 c 语言本相同。
if 语句和 if-else 语句使用 if 和 if-else 进行分支判断,控制流程:
-
if (条件表达式1) {
-
如果条件表达式1为true执行这里。
-
} else if (条件表达式2) {
-
如果条件表达式1为false,而条件表达式2为true执行这里。
-
} else {
-
如果上述两个条件都为false执行行这里。
-
}
看具体if-else代码示例:
-
if (distance < 0.5) {
-
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); //红色
-
} else {
-
gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); //绿色
-
}
注意:GLSL ES 中没有 switch 语句,过多的 if 或 if-else 语句会降低着色器的执行速度。