OpenGl,Alpha混合在同一个网格上

时间:2015-02-02 16:05:45

标签: opengl

我目前正在为最终幻想XIV游戏编写模型查看器。我遇到了一个我正在尝试解决的问题。

头发模型全部存储为单个网格。各种层彼此叠置以产生更逼真的效果。然后为细线应用alpha。

现在我遇到的问题是当我应用alpha时,结果如下:

Model

发生了什么不是用下面的图层替换/混合片段,而是使用清晰的颜色来做,可能是因为当时缓冲区中没有任何内容(它是单个网格记住的)。我该如何解决这个问题呢?渲染两次?

1 个答案:

答案 0 :(得分:1)

你可以做很多事情,但不知道我只列出一些要求:

  • OIT:订单独立透明,它需要一些设置,这不容易做,而且有一些成本http://en.wikipedia.org/wiki/Order-independent_transparency
  • 不要使用混合:我知道您可能已经想到了这一点,但是如果不使用混合而使用alpha测试呢?混叠是不是很糟糕?它仍然是选项
  • 两者兼而有之,alpha测试和混合。我会推荐这个,我会在下面快速解释

我建议的是基于AMD Hair Rendering论文:

http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Scheuermann_HairRendering.pdf

本文首先解释了照明模型,然后解释了使用alpha混合渲染头发的技术。