我在執行下面的片段着色器得到一個錯誤:的OpenGL紋理查找錯誤
#version 430 core
in vec4 pos; // <-- input (x,y,z) position normalized to [0, 1]
in vec4 screenPos; // <-- input screen position normalized to [-1, 1]
out vec4 outColor;
uniform sampler3D volumeTex; // <-- a volume
uniform sampler2D backFaceTex; // <-- the backface of a cube previously saved to texture
void main()
{
if(gl_FrontFacing) {
vec4 front = pos;
vec4 back = texture(backFaceTex, (screenPos.xy/screenPos.w+1.0)/2.0);
// only one of the following 4 lines is uncommented at a time
outColor = front; // <-- Ok
outColor = back; // <-- Ok
outColor = texture(volumeTex, front.xyz); // <-- Ok
outColor = texture(volumeTex, back.xyz); // <-- Error
}
else {
discard;
}
}
你可以從我的意見讀取程序運行正常,使我想到了圖像,在前三種情況下,但在第四個失敗(我需要的唯一一個)。
沒有呈現,我在主應用程序得到一個錯誤,從glGetError()。
好像是禁止使用紋理像素的座標另一紋理參數讀取操作。
誰能告訴我問題出在哪裏?
什麼是'glGetError()'和上調用它發生了錯誤?着色器編譯器日誌說什麼? – user1118321