1

こんにちは、私は OpenGL ES 2.0 が初めてです。私は gl_position と混同しており、可変変数の両方が頂点シェーダーからの出力になります。さまざまな変数がフラグメント シェーダーに渡されますが、gl_position はどうでしょうか。gl_position は、フラグメント シェーダーのさまざまな変数に影響を与えますか。gl_position=vec4(-1); これはどういう意味ですか。これらのことをより良い方法で理解するのを手伝ってください。

4

1 に答える 1

2

gl_Position は特別な変数です。これは、フラグメント シェーダーが計算/シェーディングするフラグメントを計算するために使用されます (その位置を計算します)。他のすべての変数は、プリミティブ全体で直接補間されます。

gl_Position はフラグメント シェーダーでは使用できません。ただし、gl_Position から計算される gl_FragCoord 変数が利用可能であるため、その x/y 値は 0 から 1 (画面の一方の側から別の画面) に変化し、z は 0 (近い面) から 1 (遠い面) までの深さになります。そして、w は 1/gl_Position.w のようなものです (OpenGL|ES2 仕様でそれが正確に何であるかを自由に見てください)。

于 2012-05-16T07:51:03.423 に答える