TA-Shader-文件 [ShaderX 7] 2.2 高效的软粒子
发布于
2021-3-13
1555
0
TA资源类型
TA资源类型: 算法思路 
shader资源类型: 其它 
适用引擎: unity 
资源介绍: -

您需要 登录 才可以下载或查看,没有账号?注册

x
介绍
粒子系统用来渲染烟雾、灰尘、火焰和爆炸等体积效果,通常通过使用alpha混合多层和屏幕对齐的方块纹理来实现,但有个缺陷是当方块和几何体相交时会造成明显接缝。软粒子就是用来隐藏接缝的技术,技术原理是对深度缓存采样然后在粒子接近几何体时使粒子衰退,从而造成无缝的效果。
v2-c82eb3c87f5b3dad8d6cc4e36c16a74c_1440w.jpg 有无软粒子的对比 v2-ef3e57017d474fcc976c95a8f9cdc822_1440w.jpg
但使用软粒子会带来额外的代价,来自于对深度缓存的采样,和深度值从深度缓存到观察空间的转换。本文介绍一种使软粒子高效的方法,通过降采样深度缓存并将其预转换到观察空间来实现。
实现
软粒子最简单的实现方法是使用像色着色器,比较当前像素对应的粒子和深度缓存在观察空间的z值,从而在粒子接近几何体时降低粒子的alpha值。使用投影矩阵的逆矩阵来将深度缓存转换到观察空间中。
为了减少软粒子带来的额外代价,对深度缓存进行降采样。降采样通过使用像素着色器来渲染视口长宽都只有一半的屏幕对齐纹理,降采样后的纹理纹素选取于源纹理的四个邻近纹素的最小或最大值。
除了降采样之外,另一个优化是在降采样时就将深度值转换到观察空间的z值,避免在粒子像素着色器中转换增大计算代价。
此外,之前在GPU Gems中也介绍过类似的降采样深度缓存来实现高速离屏粒子的方法,并且该方法消除了降采样和升采样造成的走样,详见下面链接。
Tolo:[GPU Gems3] 23. 高速的离屏粒子​zhuanlan.zhihu.com
参与人数 1 活跃度 +1
还没有设置签名!您可以在此展示你的链接,或者个人主页!

使用道具 举报 登录

回复 <

快来发表你宝贵的意见吧!

天道风云 实名

通过了实名认证的内容创造者

  

主题
4
精华
1
超神
0
扩散
28
微金
2337
智慧
259
余额
0
在线时间
5801 小时

短杖 守望者【赤炼】 翡翠剑 紫色药水 学徒法袍 元素铜币 元素银币 元素金币 长剑 铁剑 长枪

快速回复 返回顶部 返回列表