透明度顶点顺序

时间:2015-09-06 13:06:43

标签: java opengl transparency

在这个游戏中,我试着用透明度渲染冰。在冰下面有一个坚固的块(灰色块)。您可以看到的浅蓝色平面是您可以透过石头看到的天空球体。你也可以看到它只能在一个方向上起作用。我的问题是这些飞机出现的原因。我没有在那里画任何qauds。我唯一的绘画(冰块)是面向空中的。和下面的石头。

我检查一个面是否像这样绘制:检查相邻立方体是否透明而不是与立方体相同的那个面应该自己绘制

最后一项检查是为了防止冰块以空气的形式看到彼此,并画出所有透明的物体。

我在互联网上阅读了有关透明度顺序的内容,但我并不清楚究竟这里的问题是什么。

enter image description here

1 个答案:

答案 0 :(得分:2)

如果使用透明度,则必须注意绘制对象的顺序。如果您不关心订单,可能会发生以下情况:

  1. 天空渲染很远,缓冲区现在包含每个片段的天空深度信息
  2. 渲染透明冰,更新深度信息,因为冰比天空更接近相机
  3. 尝试绘制岩石:某些碎片的深度信息在冰层后面。由于渲染器不了解透明度,因此“假设”您无法透过冰层看到。所以没有必要渲染岩石。
  4. 您可以通过排序对象来避免在对象库上。首先从前到后绘制实体对象。之后绘制透明的。但是,如果您将透明对象彼此靠近或彼此堆叠在一起,则需要更复杂的算法(例如,顺序无关的透明度)以避免伪影。