如何制作一个纹理贴图的立方体,在内外显示不同的纹理?
通过在立方体中映射纹理,我从立方体中看到了相同的纹理,我需要不同的纹理。
使用OpenGL 3.3或更高版本以及C ++。
答案 0 :(得分:1)
渲染立方体两次,第二次使用不同的纹理和相反的glFrontFace()
。
答案 1 :(得分:1)
片段着色器中有一个内置的gl_FrontFacing
变量,它允许您测试当前渲染的三角形是否正面。您可以根据此值使用不同的纹理。片段着色器的相关部分可能如下所示:
uniform sampler2D FrontTex;
uniform sampler2D BackTex;
in vec2 TexCoord;
out FragColor;
void main() {
if (gl_FrontFacing) {
FragColor = texture(FrontTex, TexCoord);
} else {
FragColor = texture(BackTex, TexCoord);
}
}
在C ++代码中,将两个纹理绑定到不同的纹理单元,并相应地设置采样器制服。