分支

着色器中的分支与循环与JavaScript 和 c 语言本相同。

if 语句和 if-else 语句

使用 if 和 if-else 进行分支判断,控制流程:

  1. if (条件表达式1) {

  2. 如果条件表达式1为true执行这里。

  3. } else if (条件表达式2) {

  4. 如果条件表达式1为false,而条件表达式2为true执行这里。

  5. } else {

  6. 如果上述两个条件都为false执行行这里。

  7. }

看具体if-else代码示例:

  1. if (distance < 0.5) {

  2. gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); //红色

  3. } else {

  4. gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); //绿色

  5. }

注意:GLSL ES 中没有 switch 语句,过多的 if 或 if-else 语句会降低着色器的执行速度。