我刚刚开始使用片段着色器,在完成了一些简单的等离子效果之后,我就卡住了。我已经知道您可以检索片段的 X、Y 和 Z,并且我正在考虑构建一个着色器,该着色器将根据片段的 Z 为片段着色。
这是我到目前为止所拥有的:
void main() {
float z = gl_FragCoord.z;
float t = (sin(z) + 1) * 0.5;
gl_FragColor = vec4(t, t, t, 1);
}
问题是我正在用一个三角形测试它,无论我如何旋转它,它都有相同的恒定颜色,所以我开始问自己(并且在 SO):为什么三角形是单一颜色的?这个 Z 不应该是每个片段吗?