首页 > 解决方案 > 仅对某些对象透明?

问题描述

我设法得到一个透明的立方体

glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

在 shader.frag 中:

gl_FragColor = vec4(texture2D(TextureMap_uniform, uv).xyz,0.5);

但现在我希望我在透明立方体上方移动的实体模型是不透明的(透明度目前应用于所有内容)。谁能指出我正确的方向?

标签: c++opengltransparencyalphablending

解决方案


你用的是同一个着色器吗?如果是,那么您需要将每个对象的不透明度信息传递给您的着色器。一种简单的方法是使用统一变量。

查看这些链接:

https://www.khronos.org/opengl/wiki/Uniform_(GLSL) https://www.khronos.org/opengl/wiki/GLAPI/glUniform


推荐阅读