真实感森林的建模与可视化
Modeling and Visualizing a Real Forest
Donald H.House, Midori Kitagawa-DeLeon Greg S.Schmidt, Scott A. Arvin,
德克萨斯州A&M可视化实验室
翻译:张嘉华,[email protected]
文章来源:IEEE Computer Graphics and Applications,大规模场景对象渲染技术系列文章(1)
介绍 (Introduction)在德克萨斯州的A&M可视化实验室,我们最近和计算机科学家、心理学者、艺术家以及其他方面专家合作,共同创造了一个具有高度真实感、计算机生成的森林漫游。在美国农业部(USDA)的资助下,这项工作在亚利桑那州大学心理学实验室进行了实验。研究员希望测定在计算机生成可视化自然场景动画的现实程度,让人们得以了解虚拟环境和现实究竟有多少相似。这项计划将要比较项目在真实情况、图像带、图象漫游、和计算机模拟漫游下的效果。 1. 地点数据和信息 |
|
图1:在该地点平面图的 成阶层的摄像机路径 |
2. 树木几何定义 (Tree geometry definition)Bogas分枝对象生成和动画系统生成树木的几何结构。该系统由俄亥俄州大学Midori Kitagawa-DeLeon研发,Bogas作为整个成果的骨干,——它为所有的每一颗个体的树修改树木调查数据为realistic representative几何结构。Bogas使用参数化的算法过程去“生产”有机的分枝结构。为了在Bogas中发育一个分枝,你必须首先定义几何图元元素,它构成对象并且定义了这些元素间的拓扑和几何关系。一个定制的软件工具提供了地点调查数据和Bogas的界面。该软件转换树木调查参数——如树木高度、树干直径、遮蓬半径为一个适当的Bogas参数集,Bogas的输出按椭圆体和多边形定义了树木的几何结构。我们使用额外的定制软件转换这树木几何到Pixar动画工作室的Renderman4软件的RIB文件格式。 |
||
图2:作为纹理形式 的个体树木 |
||
3. 场景生成过程 |
图3 Needle closeup displacement map |
|
4. Managing size and complexity我们的生成过程,从初始化的地形和树木数据到渲染的每一帧,逻辑地创建了从数据到图象的管线。但是,许多其它实际问题需要解决,不仅仅我们需要解决的问题大小。首先,我们想通过强制(brute force)使用最大可能的计算能力能够快速地给我们结果。我们在德克萨斯州A&M超级计算中心的SGI Power Challenge机器,带有24个每转200MHZ的处理器。我们每个处理器有1G内存空间,4G磁盘空间用于渲染,在几何用户之间共享。即使在这样的大型机器,我们首次尝试创建RIB文件并且试图渲染它们均失败了。RIB文件和里面的模型太大,超过了RAM能够处理的能力,——换来的结果是虚拟内存交换使得渲染非常慢。一些图象根本没有渲染,导致机器在几小时后崩溃。其它图象花费了超过10小时用于渲染,并且RIB文件可能超过500M,最后,我们减少渲染时间到一个范围:从20分钟到2小时,RIB文件大小减少到以下范围:从50M到120M。最终,我们通过小心处理潜在的复杂问题,在努力维持一个高度可见的真实感情况下,完成了渲染。 |
||
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:最终的效果 |
这项目需要许多工具和技术去解决高度复杂的真实感需求带来的问题。这项目教会我们在自然场景工作中分层次细节层次建模和渲染。我们将会提供地表纹理质量,这可能是我们图象中最缺乏真实感的地方。一个可能的方法将会是使用过程着色(procedural shader)代替位移贴图和纹理映射。令一个方面的改进是包含各种各样的树木颜色表现死亡的树木和森林地表残骸,并且建模环境效果,如基于森林密度的树木形状改变。如果让我们重新再做这个项目,我们会考虑编写一个专门的渲染器,为我们的问题和需求优化,以提高渲染时间。我们得到的最好的称赞将会是我们真实森林场景的工作得到一个研究员花费可观的时间关注,他所看到的图象和动画,截取了森林的灵魂和气息,带给他真实的沉浸感。
略
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