如何在粒子模拟上叠加图形?例如,如果我用大量的小点代表液体或气体,我如何使这些点看起来像液体或气体?以Nvidia为例,他们用大量的小点模拟液体和气体,但可以将它们呈现为真实的液体和气体,而不是小球。
发布于 2015-08-12 16:55:26
对于气体的渲染,我认为通常的方法是简单地把每个粒子渲染成一个小圆盘。气体并不像液体那样真正地结合成表面,所以这应该会产生可接受的结果。之后,你可以在气层上涂上一层光线,使其变软,并隐藏它是由离散元素构成的事实。
另一方面,液体会聚集在一起形成液滴和光滑的表面,所以你需要从粒子中得到表面。一种方法是使用元宝库,它也显示这种行为,可以调整以适应不同的液体和粒子密度。通过将每个粒子解释为一个元数,你将得到一个表示液体表面的隐式方程。要渲染这个隐式曲面,您可以使用像行进四面体这样的算法将其转换为三角形,或者使用射线行踪直接呈现它。(这些日子,射线行进可以很容易地在片段着色器中实时完成。)如果你想要一个更柔和的外观,你也可以用这种方法来处理气体。
发布于 2015-08-12 10:17:33
这第四章描述了基本的自由变形曲面(nurbs和B样条自然被引用并处理得足够好)流体和气体在第五章中被处理(基本上是作者推导的navier方程的简化模型,适合于实时应用)。
所以实际上我想我写的评论你的文章是正确的,也就是把控制曲面形状的点的物理变形和ffd计算结合起来。
我引用的那本书应该提供一些关于web源代码的内容,它本身也引用了一些涉及我引用的技术的例子。如果这是你需要的,让我知道一个更具体的解释。
https://computergraphics.stackexchange.com/questions/218
复制相似问题