我目前使用一些着色器代碼,但其中一些讓我感到困惑。它使用傳入的gl_vertex來計算出眼矢量,然後重新選擇vector.finally傳遞給frag着色器。在frag shader中通過textureCube提取texl。我的問題是,每個gl_Vertex只有一個像素?插值發生在那些着色器的哪裏?使用GLSL實現立方體貼圖
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;
}
你的#版本指令在哪裏? – genpfault 2013-03-11 00:05:35