OpenGL ES 1.0:在纹理重叠时隐藏纹理部件

时间:2012-06-18 16:32:46

标签: android opengl-es textures

我有道路的纹理。具有此纹理的线条(由三角形条带表示)如下所示: road1

当然,道路可以与其他道路重叠。在这种情况下,我想隐藏道路边界。道路边界同时具有alpha 0.6,因为道路具有alpha 1.因此,当它们与具有更大alpha的纹理部分重叠时,如何隐藏具有较少alpha的纹理部分? 这就是我所拥有的:

http://i.stack.imgur.com/WpXVW.png

这就是我想要的:

road2

1 个答案:

答案 0 :(得分:0)

我想不出可以像那样进行比较的alpha通道的任何功能。

我可能会做什么:

  1. 启用alpha测试以拒绝alpha< 0.8(不想绘制边框)
  2. 在某个固定深度绘制纹理,这应该仅绘制主黄色道路。
  3. 禁用alpha测试
  4. 启用深度测试
  5. 以更大的深度值再次重新绘制道路。此通行证将绘制道路边界,但任何已经绘制主要道路的地方将被深度拒绝。
  6. 您应该留下类似于您想要的图像的结果。
  7. 或者您可以以相同的方式使用模板缓冲区,但深度测试可能更容易设置。