Improved Alpha-Tested Magnification for Vector Textures and Special Effects

来源:互联网 发布:德国博士申请 知乎 编辑:程序博客网 时间:2024/04/30 14:03

siggraph07,来自valve的一个处理alpha test的texture的锯齿问题,以及围绕这个的相关的一些效果的技术。

可以让decal和leaf的渲染的效果提升,而且效率的额外负担很低。

 

 


DistanceField



distance field是这个paper的理论基础,所以要先看一下,

link:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.915&rep=rep1&type=pdf

siggraph2k的一个paper。

 

这个做法的提出并不是在realtime rendering领域,但是随着硬件的提升和开发者基于良好理解的简化,使得distance field可以在游戏中应用。

 

distance field就是记录离散空间(比如使用octree描述的3d空间和quadtree描述的2d空间)中的一点距离shape的信息。

1.0f-length(delta_position); //这样的东西

 

那么点在shape内,边缘,边缘附近,距离shape很远,就可以通过这种形式表达出来。

有了这样的信息,就可以做很多应用,其中最有意义的就是边缘柔化(也算是一种反锯齿吧)。

 

文中还涉及了很多的东西,但是暂且跳过吧。

 

 


 

Improved Alpha-Tested Magnification

valve在实际应用中是使用low resolution distance field,用一个high res的黑白图(只记录某一个texel透明or not)做source,使用blinear filter来生成distance field,所以生成过程是非常快的,现在看来蜗居都可以loading时刻调用一些gpu资源做这个。

 

图中可见是黑的地方就是没有,白的地方是在shape内部,过渡的地方描述边缘信息,基于这个可以对用来做alpha test或者blend的alpha做调整,进而提升quality。

 

我们也可以看出:

  • 资源消耗很小
  • runtime cost很小
  • 对pipelein的影响很小

 


 

examples

 

文中提及一个alpha test用一个渐变的值,然后根据distance调整alpha test ref来调整,可以达到逐渐把叶子渐隐的smooth lod transition的效果,很不错。

 

smoothstep平时用的少,不提及都忘了。

 

可以有的效果包括:

  • antiliasing
  • outline
  • glow
  • drop shadow