OpenGL 透明度/半透明

标签 opengl alphablending

我对 openGL 中的 alpha 混合有疑问...

我尝试了一些绘制透明对象的方法...通过在绘制透明面之前禁用 GL_DEPTH_TEST 并在绘制透明面后再次重新启用 GL_DEPTH_TEST ,我看到了一个不错的(理想)结果...

显然我已经注意到,根据我绘制不同面孔的顺序,我得到了一个结果或另一个结果......

但是,我决定首先在启用 GL_DEPTH_TEST 的情况下绘制实体面,然后在禁用 GL_DEPTH_TEST 的情况下绘制透明面...

所以,显然如果我在禁用 GL_DEPTH_TEST 的情况下绘制透明面,我会看到内部的透明面(例如立方体),然后

所以,我的问题是......这是正确的吗? OpenGL 是否有一种“神奇”的方法来自动排序不透明和透明面?

最佳答案

Does OpenGL have a "magic" way to order the opaque and transparent faces automaticly?

没有。您必须自己对透明物体进行排序。或者您可以使用与顺序无关的透明度算法。有几种可用的,但它们都不是“神奇的”,而且大多数都占用大量性能。

关于OpenGL 透明度/半透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352908/

相关文章:

glsl - WebGL Alpha 混合

c - glewGetString(GLEW_VERSION) 和 glewIsSupported 之间的区别

opengl - 如何从相机内在矩阵计算相机的视野?

c++ - OpenGL 黑色纹理

opengl - opengl中的顶点缓冲区

c++ - 如何使用 GLSL 在体积渲染中进行混合?

OpenGL Alpha 混合

c++ - 是否可以创建具有 alpha 混合透明度的 CImageList?

alphablending - DirectX 11 Alpha 混合不起作用

c++ - 如何获取 EVF LiveView 图像的尺寸和格式?