> >
> >
>> |
5. 细节层次技术(Level of detail)>>
我们首先尝试通过每帧减少递交给RIB文件的树木数量以减少复杂度。在三维图形学中,你通常传递整个模型给渲染器,并且让渲染器软件丢弃模型中对于当前摄像机位置不影响图象渲染的部分,此外,所有模型元素通常以全分辨率展现,渲染器必须检测多精细或多粗糙去抽样特定模型元素以得到渲染图象中的合适精度。但是,在我们的问题中,模型中的树木数量太大,每颗树都太复杂了,使得这种标准方法显得不切实际。取而代之,我们预处理模型,传递给RIB文件仅仅那些从当前摄像机位置影响最终图象的树木。图4展示了带有一个三角形高亮标识了摄像机位置和视锥的森林图例。截然不同的颜色代表不同的树木类型:处于视锥内和仅仅超出视锥范围的的树木(绿色),那些完全处于视锥外但它们的阴影可能重叠在视锥内的树木(黄色),其它被剔除的树木(红色)。所有的场景中的树木根据它们距离摄像机的距离被分类为near、mid、far和very far区域。我们使用上述的树木距离区域去决定在渲染树木时在RIB文件中使用那种细节层次(LOD),并且决定那种颜色和位移(displacement)细节。>> |
图4:根据观察视锥分类并剔除树木 |
图5,一个渲染好的图象,展示了树木是如何从4个不同区域呈现。树木在标识为very far的区域中不以几何模型的形式包含在RIB文件中,取而代之的是,它们表现为一个具有透明度的面向摄像机的矩形多边形,带有不透明的树木二维纹理图在它之上(如图2)。这种技术通常被称为公告牌。我们完全建模剩下的树,但根据与摄像机的距离渲染它们(见表1)。在far区域中的树木通过仅仅实体颜色着色(solid color shader),没有针对树皮和针叶的位移(displacement)贴图。在near区域的树通过全部纹理和表现真实树皮针叶的位移(displacement)贴图渲染。对于中间区域的树,我们在纹理和位移贴图(displacement)之间插值,从全纹理到实体颜色(solid color),从全纹理和全位移贴图到没(none),根据它们距离摄像机的距离,这种插值方案避免动画中由于渐进漫游过程树木在区域间移动所产生的讨厌的可见效果。 |
|
图5不同的细节层次 |
6. 实例化 (Instantiation)
根据视锥预处理模型被证实在处理过程中非常有用,但是在一些动画片段中,场景仍然太大和太复杂难以渲染。所以,我们引入实例化(instantiation)以减少截然不同的树木几何模型数量在一个RIB件中。我们在原始树木数据库中根据类别和高度对对1600颗树进行分类。类别包括幼树(baby tree)和成熟的树(mature tree)以及每颗树是否活的,将要死亡的还是已经死亡的。高度每两米区间为一组。我们小组为每一个类别和高度创建一个模型,结果剩下70种截然不同的几何模型。每个RIB文件包含仅仅特定场景需要的树木几何模型和那个模型应该放在地形中那个位置的信息。实例化方案让我们明显减少RIB文件大小,并且在漫游中以适当的帧速和时间渲染所有场景。但是,着技术确实有一个主要缺点——我们丢失了不同树木之间的差异性。例如,树木宽度和复杂度(叶子数量和枝干数量)变成了静态的。我们相信无经验的观察者不会注意到这些丢失的差异性。当观察作为森林中一个很大的整体时,并且带有针叶和其它添加的细节,那是几乎不可能存在一样的树木。
7. 照明和观察(Illumination and shadows)
当我们创建合适的几何结构、摄像机动作和表面细节后,我们关注森林中的照明以达到真实地在森林中徒步旅行的效果。我们建模天空作为一个蓝色的椭球体包围着森林。主要的关照来源于7月21日早上10:00时太阳位置所产生的平行光。一个很小的环境光模拟由于反射和大气漫反射引起的光线。最后,一个填充式的光总是处于摄像机位置,并且和观察方向一致的发射方向,提供一些额外的光线和背面光漫反射感觉。我们用Renderman depth-cue shader创建大气效果,它给予摄像机到反射面的距离混合背景色到来自表面的光线反射中。阴影的存在对于最终的动画表现是犹关重要的。图6展示了同样的场景带有三种不同层次阴影渲染的效果。图6a展示了没有阴影的场景,森林显得非常静态,并且不真实——显然是计算机生成的。在图6b,我们看到同样的树带有通过包含仅仅树皮和枝干在阴影计算中的“telephone pole”阴影。我们使用阴影层次在我们的首次尝试渲染全部动画。最终,在图6c,我们看到场景带有全部阴影渲染——包含树叶canopy效果。在创建遮蔽的大区域和象征森林的太阳,消耗了50%更多的渲染时间去包含恰当的telephone pole阴影;从这到全阴影增加了额外的20%渲染时间。但是,可见的真实感带来的冲击是非常重要的以致于我们决定包含全阴影在最终的动画版本中。 |
图7:各种阴影渲染的森林对比 |
8、成果 (Production)
那是很难去预测一个场景动画的效果直到它被渲染和以视频帧速回放。整个序列,包含7200帧,包含7个360度回转和7个直线截取。对于动作,为了快速得到一个效果,我们开始每30帧渲染以保证所有的东西合理渲染,我们通过从一帧到下一帧的分解把这些帧放到带上,以观察动作和时间。在成果的鼓励下,我们填充丢失的帧并且以每秒10帧渲染并产生动画。沿着直线路径上截取每一帧,看起来对了,但是需要在360度转弯处更细化。所以我们在转弯处以7.5FPS帧速渲染。不幸运的是,这并没有带来好的效果,由于转弯处会带来令人昏乱(dizzying)效果。为了抵消这种效果,我们渲染转弯处以一系列摄像机位置静止,大约每帧之间30度旋转的10多帧,分解转弯处360度的两帧之间为30度旋转的12帧。这带来了转弯处急速勒马(saccades)的效果。最终,我们解决勒许多在产生森林漫游动画中遇到的困难的问题,并且最终产生了如图7所见的完整动画。我们在NTSC BetaCam 录像带渲染并记录了整个4分钟动画。同时,我们在准备7个动画片段和7次转弯动画的MPEG版本。
|
图7:最终的效果
|
9. 结语 (Conclusion)
这项目需要许多工具和技术去解决高度复杂的真实感需求带来的问题。这项目教会我们在自然场景工作中分层次细节层次建模和渲染。我们将会提供地表纹理质量,这可能是我们图象中最缺乏真实感的地方。一个可能的方法将会是使用过程着色(procedural shader)代替位移贴图和纹理映射。令一个方面的改进是包含各种各样的树木颜色表现死亡的树木和森林地表残骸,并且建模环境效果,如基于森林密度的树木形状改变。如果让我们重新再做这个项目,我们会考虑编写一个专门的渲染器,为我们的问题和需求优化,以提高渲染时间。我们得到的最好的称赞将会是我们真实森林场景的工作得到一个研究员花费可观的时间关注,他所看到的图象和动画,截取了森林的灵魂和气息,带给他真实的沉浸感。
鸣谢 (Acknowledgments)
略
参考文献 (References)
1. D.H. House et al., “Visualizing the Midway Face of the Dixie National Forest,” Proc Siggraph 97 Visual Technical Sketches,ACM Press, New York, 1997, p. 207.
2. M. Kitagawa-DeLeon, “Branching Object Generation and Animation System with Cubic Hermite Interpolation,” J.Vis. and Computer Animation, 1994, Vol. 2, pp. 60–67.
3. M. Kitagawa-DeLeon, “Rendering the Midway Face Forest, Towards High Realism in Environmental Visualizations,”Proc. Resource Tech. 94, American Soc. of Photogrammetry and Remote Sensing, Bethesda, Md., 1994, Vol. 1, p. 231.
4. S. Upstill, The RenderMan Companion: A Programmer’s Guide to Realistic Computer Graphics, Addison-Wesley,Reading, Mass., 1990 |