[gpu pro]AlphaBlendingAsPostProcess

GPUPro上面的一个文章,来自《Pure》开发团队,说的是使用post process alpha blending来处理树(不包括草)的平滑树叶渲染的技术。

也是透明物体渲染的各种方法里面的一个变种。

[gpu pro]AlphaBlendingAsPostProcess_第1张图片

一般我们有这样一些选择:

  • alpha test:效果比较差
  • alpha to coverage:需要msaa,fillrate什么的都是一个问题
pure这样做的:
[gpu pro]AlphaBlendingAsPostProcess_第2张图片
  • opaque render pass
    • pure使用了msaa,但是msaa只会对geometry的边缘有更好的效果
  • soliage sillhouette:一个render target的两个通道
    • 这里有两个记录alpha的pass(当然可以在一个里面完成,dx9可以是color和alpha不同的blend方式),一个是使用max的方式,一个是additive的方式来记录alpha
  • foliage color:一个render target的rgb
    • 使用alpha test来render树,一般使用128的alpha reference,这里由于要后面blend,所以使用64来做reference
  • combination
    • 使用alpha和color来和opaquesceneblend起来,这里alpha mask的计算方法是把max的和additive的来做一个lerp,pure的lerp的值是0.85
mask计算:

后面还提到,如果把mask平方一下,效果更好。

你可能感兴趣的:([gpu pro]AlphaBlendingAsPostProcess)