【有趣的技术】Unity中的SDF(有向距离场) - 简书 (jianshu.com)
字体渲染
现在被整合到Unity中的TextMeshPro文字渲染插件也是基于SDF实现的。在字体渲染上使用SDF可以很方便的实现描边,外发光等效果。(UGUI中Text的Outline是使用“偏移”实现的,严格意义上根本就不算描边,宽度一大就会穿帮)
不过这个方案用于中文项目时还是有一些问题。因为这个方案需要事先对字符生成SDF图,如果只是英文还好,字母加字符也就几十的数量,但是中文字符就多了去了。一般做法是只对常用字进行生成,大约6500字,坏处就是做文案时就没法用到一些生僻字,而且对包体和内存占用依然有影响。
形变动画
其实一开始也是因为这个需求才接触到SDF的。
如果对两张普通贴图进行lerp你能获得一个交叉叠化的效果,而对于两张SDF贴图进行lerp,就可以获得一个形变动画的效果了!
Ray-Marching
SDF也可以在3D维度中使用,配合Ray-Marching来渲染模型,还可以方便的实现软阴影等特性。不过这块我就没继续了解了,感兴趣的可以自己搜一下,相关文章还是挺多的。
网友评论