第 44 课:Branch Divergence
我的解:从结果来看没有区别?
我的解
uniform float iTime;
uniform sampler2D iChannel0;
uniform sampler2D iChannel1;
varying vec2 vUv;
void main() {
vec2 uv = vUv;
vec4 result = texture(iChannel0, uv);
result.a = 0.0;
result.a = mix(result.a, 1.0, uv.x < 0.1 || uv.x > 0.9);
result.a = mix(result.a, 1.0, uv.y < 0.1 || uv.y > 0.9);
result.a = mix(result.a, 1.0, texture(iChannel1, uv).r > 0.45);
gl_FragColor = result;
}
复盘笔记
- 从结果来看没有区别?
- 原版用if写的,会引入一个概念叫 Divergence aka wrap split,
<2025/09/16>