着色器透明度不适用于一半

时间:2014-03-24 14:03:31

标签: c++ opengl glsl fragment-shader alphablending

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

并在片段着色器中使用它。

我已经使用Alpha混合物来提高透明度,但它似乎只能在一侧工作。

不确定问题是什么,我是编程和着色的新手。

http://imgur.com/WDK4qjc链接查看图片

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我认为你会看到2个遥远的面孔混合颜色较暗的地方。

可能没有激活Culling。

面部剔除是指在某些条件下丢弃面部绘图的能力。

要实现您想要的效果,您必须丢弃不面向相机的面部,这些面部呼叫backface culling。你这样做:

glEnableGL(GL_CULL_FACE);  //(enable face culling)
glCullFace(GL_BACK);       //(discard back faces)