2
在OpenGL/GLSL中,是否可以從立方體貼圖進行texelFetch?一些東西沿線:texelFetch from CubeMap
color = texelFetch(cubemapsampler,texCoordi, side);
在OpenGL/GLSL中,是否可以從立方體貼圖進行texelFetch?一些東西沿線:texelFetch from CubeMap
color = texelFetch(cubemapsampler,texCoordi, side);
顯然,texelFetch沒有超載,所以它似乎不可能。
但是,可以操縱用於查找,以獲得相同的結果的方向矢量[*]:
vec3 generate_cubemap_coord(in vec2 txc, in int face)
{
vec3 v;
switch(face)
{
case 0: v = vec3(1.0, -txc.x, txc.y); break; // +X
case 1: v = vec3(-1.0, txc.x, txc.y); break; // -X
case 2: v = vec3(txc.x, 1.0, txc.y); break; // +Y
case 3: v = vec3(-txc.x, -1.0, txc.y); break; // -Y
case 4: v = vec3(txc.x, -txc.y, 1.0); break; // +Z
case 5: v = vec3(txc.x, txc.y, -1.0); break; // -Z
}
return normalize(v);
}
color = texture(cubemapsampler, generate_cubemap_coord(texCoordf, side));
[*] 給出的代碼是代表的概念和它可能cointain錯誤。
texelFetch的好處是您可以直接使用gl_FragCoord.xy來進行後期處理着色器。我想我可以將gl_FragCoord.xy翻譯成txc,但這可能會導致性能損失。任何想法可以輕鬆地對立方體貼圖紋理進行後期處理? – bofjas