【发布时间】:2019-05-10 11:32:00
【问题描述】:
我已经设法得到一个透明的立方体
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);
但现在我希望我在透明立方体上方移动的实体模型是不透明的(此时将透明度应用于所有内容)。谁能指出我正确的方向?
【问题讨论】:
-
是
gl_FragColor = vec4(texture2D(TextureMap_uniform, uv).xyz,0.5);中的0.5使它们半透明。改变它(例如,使用制服而不是像答案中推荐的那样)来修改透明度(0.0 -> 不可见,1.0 -> 不透明)。 -
或者,您可以
glDisable(GL_BLEND);在渲染打算不透明的立方体之前。禁用混合后,alpha 值无效。
标签: c++ opengl transparency alphablending