混合和深度测试

时间:2014-07-22 15:10:46

标签: webgl depth alphablending

我的应用程序在正投影中显示大量对象。 每个对象都是由具有不同纹理的同一顶点上的几个精灵组合而成。

简化:

每个对象都有2个精灵:填充矩形和轮廓矩形

我为每个精灵类型都有一个网格(顶点和属性) - 一个用于所有对象填充,一个用于所有对象轮廓。共2个网格。

我在两个阶段绘制我的对象(精灵) - 填充网格(包含所有填充精灵)和轮廓网格(包含所有轮廓精灵)

对于每个对象精灵 - (在所有网格中) - 我给出相同的z值,以便正确绘制。

使用depthFunc(LEQUAL)绘制相同的z值

如下图所示:

enter image description here

问题在于我想要更改所有对象的透明度。深度阻止绘制一些对象,所以我看不到后面的对象。如果我突然禁用深度测试,所有轮廓将跳到前面(当对象与超过2个精灵组合时,在实际应用中看起来更糟糕。)

对象的排序在这里不起作用,因为我正在逐个绘制每个网格(填充和轮廓)。

有没有什么可以做到的?

0 个答案:

没有答案