|
|
发表于 2004-11-14 16:33:00
|
显示全部楼层
Re: [讨论]自然景物渲染
花了20分钟打的,错误肯定有,且语句不通顺 [em7]
非常概括的总结:
天空:
物理模拟过为复杂,解析法速度较快效果也不错,虽然还无法达到Photo Relistic。
解析模型一般有:CIE Overcast/ Clear/General Sky, Preetham's Model等..(个人使用的是Preetham's + CIE Overcast Sky), 还可以使用Basis Functions来对其加速.
云:
云模型一般分体积云(Volumetric Clouds)或2.5/2D云
对于云的生成, Dobashi&Nishita有大量的关于这一类的papers。如果是2.5/2d云,perlin noise的效果不错,虽然其并不提供太多的控制,且生成的云种类过于单一。利用Computational Fluid Dynamics(CFD)生成的云可以提供较多的控制和云种类,但计算复杂,不过因为云是2D且不是没frame都update,此方法还是不错滴,而且可以在low res map上用CFD生成云,然后通过某种noise filter将其super sample到high res map。
云的着色可以参考Harris在Eurograph和GDC上的两篇papers,主要是对Dobashi&Nishita散射方程的简化。无论是3d还是2d,想要对云实现较好的着色ray tracing是必须的。(2d的就用2.5d ray tracing)
水:
水的模型就太多了:ripple, noise, FFT/FT, CFD….
对于小溪,可以直接用Normal Mapping之类的。
Noise对低振幅的waves有较好的模拟,因此适合海浪较低的离海岸远的海洋。
FFT/FT方法广泛运用于ocean的模拟,因为根据海洋统计学表明,海浪waves的频率和相位程高斯乱序分配,因此我们先生成海洋的频率和相位(如经典的Philips’ Spectrum)之后再利用IFT将其转化为高度图。事实上FFT/FT还可以生成更多种类的waves….(利用FT的Convolution)
CFD可以最真实的模拟水(3D),不过其计算量实在是太大。
水的着色就很公式化了:折射,反射,菲涅耳效益,可以的话加上散射,subsurface scaterring….
花草:
一般就是textures,如果想复杂点的话,可以将一跟草想像成由几个particles组成的,然后可以对这些paricles施加外力(wind或objects),可以模拟一些草的物理现象,当然LOD系统是必须的。(远距离草自动退化成简单textures)
树:
主要注意其LOD系统:Geometry->Normal Mapping->Texture,然后根据observer的距离和视角来自动update.
|
|