自然景象

更新时间:2022-12-04 21:50

自然景象是计算机图形领域和虚拟现实领域的研究热点和难点,它在计算机动画、电脑游戏、影视特技、军事仿真、建筑景观设计、虚拟现实等领域都有非常广泛的应用。

简介

自然景象一直是计算机图形学领域和虚拟现实领域的研究热点和难点。它在计算机动画电脑游戏影视特技军事仿真建筑景观设计、虚拟现实等领域都有非常广泛的应用。随着计算机图形学的发展和应用需求的不断扩大,人们己不再仅仅满足于表现自然景物的静态真实感效果,而更希望模拟它们在自然场景中的动态变化过程。不规则模糊物体的建模和实时绘制方面都有很多值得研究的问题。尤其是对动态自然景物如云、雾、烟、雪、水流、火花等的模拟,更具挑战性,这是由于传统的造型方法很难描述它们的形状和运动。粒子系统在不规则模糊物体的模拟方面取得了很大的成果,并己经走向了成熟的应用阶段,但是其自身模型还是存在着一定的局限性,因此在真实感的提高上必须寻求与物理模型的结合。而物理模型的算法往往因为模型的精确性带来的复杂度使得求解过程困难,因此在实时性上又无法得到保证。

研究意义

巨大冰雹重袭东京,咫风席卷夏威夷,洛杉矶更刮起史无前例的龙卷风,汹涌的洪水,呼啸而来的暴风雪……,这一切如此真实,仿佛真的面临世界末日。这一幕来自导演罗兰一艾默里奇2004年的科幻电影《后天》,这令人震撼的视觉效果背后是计算机图形技术的淋漓尽致的应用。而今特技效果的应用越来越普遍,己经成为影视制作中一种常规手段。如《黑客帝国》中的战争场面,《侏罗纪公园》中恐怖的恐龙,《加菲猫》中加菲猫那些惟妙惟肖的动作,无不体现了计算机真实感图形技术的价值所在。

在图形学领域,人们一直试图利用计算机再现周围的真实世界,然而现实世界虽然看上去简单,却极其复杂。对于一些自然现象,人们可以采用过程描述的方式来获得某种特定的效果,但是对于有些现象人们无法找到一个简单的模型来描述它,这个时候只有去追溯该现象本身的物理根源,只有借助其本身较为精确的物理描述才能真实再现其外在的视觉现象。随着计算机硬件的不断发展,计算能力不断增强,PC机能够完成的算法复杂度不断上升,使得基于物理的计算机动画的迅速发展成为可能。在市场方面,不管是电影特效,还是视频游戏,人们对于计算机动画的需求也很强烈。这些因素使得计算机动画成为目前一个研究热点,也成为一个当前和未来计算机图形学发展的一个重点方向。自然景象的模拟作为计算机动画的难点之一,对它的研究将使自然景观的再现将更具真实性,将为景点的宣传起到一定的作用,进一步可以为三维游戏和地理信息系统启动促进作用,具有较广泛的意义。

模拟难点

自然景物主要包括由天空、山脉、湖泊、河流、海洋、大地、树木、花草、云、烟、雾等等。这些景物的几何形貌具有不规则特性。此外,大多数自然景物受大自然中的风、雨及阳光的影响,其外观多变且有很大的随机性。一些有生命的自然物,如树木、花草其生长过程还随季节变化。所有这些都对自然景物的真实感模拟带来了很大的挑战。

不规则几何外形

不管是雪花、云彩、山脉、草地,还是烟雾、灰尘、火光等,它们都没有规则的几何形状。其表面往往还包含丰富的细节,这使得难以用经典的欧几里德几何对其描述。采用传统的计算机图形造型和绘制方法计算量大,生成速度慢,真实性和实时性很差。

时刻动态变化

自然景物一般都是在时刻变化着的,这也正是大自然的美妙所在。如火焰的熊熊燃烧,雪花的轻盈飘动,海市厘楼的虚无缥缈、瞬息万变等都令人难以忘怀。要表达蕴含于自然景物中的无穷多的随机纹理细节,即要选择造型,亦需要一个庞大的数据结构。注意到当自然景物离观察者足够远时,上述纹理细节并不能全部呈现在画面上,而当观察者欲深入观察自然景物的某一局部细节时,己存储在数据结构中的细节资源却可能很快陷入枯竭,因此,采用传统的静态数据结构很难准确刻画自然景物。

物理机制复杂

要准确模拟自然景物,必须考虑其背后的物理机制。但是一般自然景物的物理机制都比较复杂,如火焰等气体现象的运动十分复杂,火焰忽隐忽现,烟袅袅上升,云则虚无缥缈,同时,在火焰燃烧、烟雾扩散以及云层飘动过程中,还会受到风力的作用。蓝天白云、雨后彩虹这些都和复杂的大气折射、散射机理相关,海市厘楼的产生、变化及消失过程背后也蕴藏着复杂的物理作用。

与其他景物互相作用

自然景观的复杂还在于自然界任一景物都不是孤立的,它与周围的环境、其它自然景物是时刻相互影响、相互作用的,如飘雪场景中风雪的交互作用、草地上风吹草动。因此我们绘制某一自然景物时,必须考虑周围环境的影响,进行整体绘制。

研究现状

流水的模拟

流水的模拟,根据流动情况的不同,模拟的情况也不尽相同大致上可以分为流场的模拟,波浪的模拟,喷泉和瀑布的模拟等的模拟方面,国内外都取得了很大的成就。

对流场的情况大多采用基于流体动力学物理模型的方法。M .Kass,G.Miller采用三对角线线性方程组迭代方法来求解浅水波方程。流水模拟情况,并基于求解结果绘制高度场。这种快速稳定的解法可以取得较好的视觉效果,并且还可以处理网格拓扑变化的边界条件情况。D. Enright, R. Fedkiw等,提出了被称为“粒子水平集(Particle Level Set)”的非实时复杂水面绘制方法,一通过水平集(欧拉法)和粒子系统(拉格朗日法)结合的方法,在水流模拟的宏观效果(如海浪)和微观效果(如水倒入杯中)上都可以获得逼真的结果。国内方面张尚弘等将粒子系统与物理方法结合,采用距离倒数加权法和运动记录法简化完成速度场时空插值,并将数学模型计算出的Eular场转换为Lagrange场,来完成粒子运动的更新。该方法在模拟大范围的水流场景中获得了一定的效果。

对雨雪瀑布等水花飞溅细节较为丰富的现象的真实感绘制方面,主要是采用以粒子系统为主的方法。万华根等将流体动力学与粒子动力学方程结合,建立了一个可控参数的喷泉粒子系统。得到了较为真实的喷泉水流视觉效果。管宇等用线元为基本造型单位并基于动力学基本原理模拟瀑布的运动轨迹,很好的实现了真实感实时瀑布飞溅的模拟效果。

火焰的模拟

在火焰的模拟方面,粒子系统和物理方法一直占据着主流地位,有很多成功的研究成果和多种结合的方法。

国内方面,张芹等在总结国内外学者所建立的各种火焰模型的基础上,提出了一种基于粒子系统的火焰模型,研究了模型参数变化对显示效果的影响,该模型引入了结构化粒子及表现风力的随机过程,能生成不同精细程度的火焰图形。杨冰等提出一种利用景物特征的空间相关性提取特征点,简化粒子系统建模的算法。对于火焰,该算法对纺锤体的火苗表面采用简单的三角剖分,以这些三角形的顶点作为火焰的特征点,这些特征点按照一定规则就可以被定义为粒子系统中的粒子。林夕伟等结合B样条曲线和粒子系统来勾勒火焰的中心骨架和外轮廓,对其映射边缘检测后的真实火焰纹理,并由噪声函数建立粒子速度场,这种方法在保持真实感的基础上可以有效节约粒子数量。

国外方面,C. Perry和R. Picar根据燃烧学理论提出了火焰燃烧的速度传播模型,N. Chiba等给出了物体之间热交换的计算方法,提出了用温度和燃料浓度表示的火焰传播模型。J. Stam等在此基础上根据流体动力学理论建立了火焰点燃,燃烧,熄灭的三维模型,他认为火焰的扩散过程是由气体物理量的时空变化来表示的,这些物理量的变化符合流体动力学中的基本方程,并采用其中的能量守恒方程(热力学第一定律)的简化形式一扩散方程给出了火焰的传播模型。D. Q. Nguyen等提出了一种基于物理模型的非实时真实感火焰绘制方法,该方法采用可压缩流体的Navier-Stokes方程为汽化燃料和气态燃烧生成物建立各自的模型,并提出了汽化燃料转变为燃烧生成物的化学反应中的物质能量交换模型和固体燃料汽化的模型。采用黑体发光模型对燃烧生成物、烟、灰等进行绘制。该方法可以获得逼真的效果,并且可以处理火、烟与物体的碰撞检测以及可燃物点燃的情况。

烟云的模拟

烟云的模拟领域,过程纹理,分形模型,粒子系统和物理模型都有着广泛的研究成果。

过程纹理方面,K. Perlin}s]提出了湍流噪声函数;G. Y. Gandner提出了天空平面、椭球体和数学纹理函数组成的云模型,并提出了一个三维纹理函数合成的纹理函数。采用噪声函数可以生成很逼真的云纹理图像,但计算量较大。分形模型方面,T: Nishita等提出了云的二维分形建模方法,随后又有人提出了三维分形建模方诊;Y. Donashi等人提出基于分形几何的原理,利用变形球建立云的模型。粒子系统和物理模型方面,M. Unbescheiden等利用浮力原理、理想气体定律以及冷却定律等云的物理原理建立粒子系统,并采用纹理映射绘制技术对云进行绘制,从而实现云的粒子系统实时真实感模拟。刘耀周等用带颗粒纹理的平面代替粒子,并采用Billboard技术控制纹理平面的绘制朝向,使用粒子系统生成了导弹飞行航迹及烟雾的特效生成算法。J. Stem将Navier-Stokes方程分解为四个步骤的迭代求解,该算法快速稳定,在保证良好实时性的前提下可以达到很好的视觉效果。

其他自然景物的模拟

对树木的模拟主要采用分形算法中基于文法的算法。美国生物学家Lindenmeyer提出了一种基于字符串重写机制的L一系统来对树木进行建模。该系统可用简洁有效的方法来概括树木的拓扑形状和分级结构。

对光线的模拟方面,Reed和wyvi11根据观察提出了一种经验模型,该模型通过让主枝以平均16度的旋转夹角衍生子枝的方式生成光线。T. Kim和M. C. Lin采用基于电介质离解(DBM)物理模型绘制持续跳动的光线,并使用简化的Helmholtz方程表示电磁波的传播,并采用Monte Carlo光线跟踪法来绘制光线,可以达到很高的真实感。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}