“怪异”的文物与混合

时间:2013-11-11 05:58:57

标签: c++ opengl alphablending blending

这就是我所看到的: Lines across the model

为了给图像提供一些视角,圆环在模型后面。该模型是透明的。这些线条出现在模型上。我不希望这些线出现。

有人能解释我所看到的吗?我不知道该搜索什么。我试过了:

  • 怪异的线条
  • 线条工件
  • 工件

等。等但我找不到相关的东西。我知道我的问题很模糊,但是,如果有人可以说出我的问题,我想我可以识别出有问题的代码!

1 个答案:

答案 0 :(得分:1)

如果你渲染透明胶片,你需要记住不同的东西。 通常,您在OpenGL中使用z-buffer测试和写入进行渲染。 因此,如果一个面被渲染,OpenGL会查看哪些像素是可见的,并针对z缓冲区进行测试。如果它是可见的,则使用混合设置绘制它,并将其z值写入z缓冲区。如果没有被丢弃。

如果你没有以正确的z顺序渲染你的面孔(从视图方向的后面到前面),它们将按照它们到达管道的顺序呈现。

例如,工件出现时对于某些区域,在正面的重叠像素之前渲染背面的像素,并且如果对于某些区域,正面的像素在背面的一个之前渲染。因此,对于对象的某些区域,您混合了background - backface - frontface,而对于某些区域,您只有background - forntface

我知道解释不准确,但我希望你明白我的意思。否则随便问。