フラグメント シェーダーを使い始めたばかりで、いくつかの単純なプラズマ エフェクトを実行した後、行き詰まりました。フラグメントの 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 で) 自問し始めていることです: なぜ三角形は 1 つの単一色なのですか? この Z はフラグメント単位ではないのでしょうか?