GLSL初心者です。
フラグメントシェーダー というものが、描画領域を1pxずつ処理する、ということは
理解できるのですが、以下のコードで、白いグラデーションの玉が2つ描画される理由がよくわかりません。
結局gl_FragColorにセットされるのはひとつのvec4なのに、
なぜループすると2つの玉が描画されるのでしょうか....。
GLSL
1precision mediump float; 2uniform vec2 r; // resolution 3 4void main(void){ 5 vec2 p = (gl_FragCoord.xy * 2.0 - r) / min(r.x, r.y); 6 vec3 destColor = vec3(0.0); 7 for(float i = 0.0; i < 2.0; i++){ 8 float j = i + 1.0; 9 vec2 q = p + vec2(cos(j), sin(j)) * 0.5; 10 destColor += 0.01 / length(q); 11 } 12 gl_FragColor = vec4(destColor, 1.0); 13}
わかりやすい説明をお願いしたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/09 06:16
2021/07/09 06:19
2021/07/09 06:44
2021/07/09 07:00
2021/07/09 07:13