私は現在いくつかのシェーダーコードを使用していますが、それらのいくつかは私を混乱させます。入ってくるgl_vertexを使用してeyevectorを計算し、次にvectorを反映します。最後にfragシェーダーに渡します。フラグシェーダーのパスで、textureCubeを介してtexlを抽出します。私の質問は、gl_Vertexごとに1ピクセルしか取得できないということですか?それらのシェーダーはどこで補間されますか?
vertex shader:
uniform vec4 eyepos;
varying vec3 reflectvec;
void main(void) {
vec4 pos = normalize(gl_ModelViewMatrix * gl_Vertex);
pos = pos / pos.w;
vec3 eyevec = normalize(eyepos.xyz - pos.xyz);
vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
reflectvec = reflect(-eyevec, norm);
gl_Position = ftransform();
}
frag shader:
uniform samplerCube cubemap;
varying vec3 reflectvec;
void main(void) {
vec4 texcolor = textureCube(cubemap, reflectvec);
gl_FragColor = texcolor;
}