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
- Improved Alpha-Tested Magnification for Vector Textures and Special Effects
- 【Unity Shaders and Effects Cookbook】Using Textures for Effects
- 【Unity Shaders】Using Textures for Effects介绍
- Unity Shaders and Effects Cookbook 中的Packing and blending textures
- 【DirectX3D】Blending Colors for Special Effects
- 【Unity Shaders】Using Textures for Effects——通过修改UV坐标来滚动textures
- 【Unity Shaders】Using Textures for Effects——打包和混合textures
- 【Unity Shaders】Using Textures for Effects——通过修改UV坐标来滚动textures
- 10.【cocos2d翻译系列】Actions, Transformations and Effects--Special actions
- [gdc2011]Confetti Special Effects
- JavaScript:Special effects
- 【Unity Shaders】Using Textures for Effects——让sprite sheets动起来
- 【Unity Shaders】Using Textures for Effects —— 实现Photoshop的色阶效果
- Rendering Textures with Alpha Channels and Color Key Transparency using a MatrixStack in Managed Direct3D
- Why and how to pack your textures for iOS/Android
- PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION
- PROGRESSIVE GROWING OF GANs for IMPROVED QUALITY, STABILITY AND VARIATION
- After Effects and Photoshop: Animation and Production Effects for DV and Film
- c语言readline的实现
- weka简介和回归-----转自chinakdd
- [新闻] 微软主机安全检查服务(X-Ray)“体检”报告大揭秘!
- [ZOJ 1463] Brackets Sequence
- 一位反JavaScript主义者的觉醒
- Improved Alpha-Tested Magnification for Vector Textures and Special Effects
- MySQL单机多实例方案
- (谦虚的天下)Android学习系列--索引贴
- 【DVD Benchmark】Part 2 - Audio
- ASP.Net 调用输出参数的存储过程
- 我发明的类图表示方法
- DDR3和DDR2和DDR的工作原理及技术区别
- Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义
- 新浪被黑,完全和技术无关,101%的安全意识问题。