20.9 小结

粒子系统是一组行为相似但又不失随机性的颗粒群(它们通常很小)。粒子系统可以模拟很多自然现象和非自然现象,比如火焰、雨滴、烟雾、爆炸、喷壶、魔咒、炮弹等等。

我们用点来模拟粒子,在渲染之前通过几何着色器把它们扩展为面对摄像机的四边形。这意味着,我们使用点可以获得更高的运行效率——占用较少的内存——物理公式只需要应用于一个顶点而不是4个顶点,而且还可以把点扩展为大小不同的四边形,并对它们进行纹理映射。注意,点不总是扩展为四边形。例如,用直线来模拟雨点的效果更好;我们可以在不同的几何着色器中把点扩展为不同的图元。

粒子在常量加速度下形成的运动轨迹可以由公式\({\bf{p}}(t) = \frac{1}{2}{t^2}{\bf{a}} + t{{\bf{v}}_0} + {{\bf{p}}_0}\)表示,其中是a常量加速度向量,v0是粒子的初始速度(即,当时间t=0时的速度),p0是粒子的初始位置(即,当时间t=0时的位置)。我们可以使用该方程得到粒子在任意时间t≥0时的位置。

当你希望粒子系统的颜色高度与粒子密度成正比时,应该使用加法混合。对于透明粒子应该使用透明混合。如果不按照从后向前的顺序对一个透明粒子系统进行排序,那么可能会出现问题,也可能不会出现问题(也就是,问题可能明显,也可能不明显)。对于粒子系统来说,在渲染时一般应禁用深度写入功能,保留深度测试功能,使粒子只被非粒子物体遮挡,而粒子之间不相互遮挡。

流输出(SO)阶段允许GPU向绑定到管线SO阶段上的顶点缓冲区V写入几何体数据(以一个顶点列表的形式)。尤其是从几何着色器输出的顶点都会被写入(或传送)到中。随后,我们可以把V中的几何体渲染出来。我们可以使用流输出特性来实现完全运行在GPU上的粒子系统。我们使用两个technique来完成一工作:

文件下载(已下载 449 次)

发布时间:2014/9/4 下午6:17:27  阅读次数:3638

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号