仅对某些对象透明?

时间:2019-05-10 11:32:00

标签: c++ opengl transparency alphablending

我设法使用了一个透明的立方体

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);

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

1 个答案:

答案 0 :(得分:1)

您是否使用相同的着色器? 如果是,则需要将有关每个对象的不透明度的信息传递给着色器。 一个简单的方法就是使用统一变量。

查看这些链接:

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