我正在尝试在Skybox内部渲染半透明对象。但是,在我当前的实现中,纹理会与背景颜色混合,而不是与天空盒混合(如果途中没有其他对象)。
以下是我实施中的一些里程碑,我认为可以分享:
init:
[...]
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
[...]
渲染:
[...]
[render scene]
[...]
glUseProgram(program_skybox);
glDepthFunc(GL_LEQUAL);
glDepthMask(GL_FALSE);
[bind view & projection matrices]
[draw skybox]
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
我应该更改些什么以使Skybox融合? 我想问题出在深度缓冲区吗?