OpenGL与Skybox融合

时间:2020-04-25 17:24:30

标签: c++ opengl blending depth-buffer skybox

我正在尝试在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融合? 我想问题出在深度缓冲区吗?

0 个答案:

没有答案