- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实时性水面建模及水波模拟研究
实时性水面建模及水波模拟研究
摘要 本文提出了一个建立水面模型的方法,并在此水面模型的基础上模拟水波,计算细节层次等,在产生水波、切换细节层次等可能遇到的问题上探讨了一些实现细节,此方法既能满足实时渲染的要求,又能增强互动性,从而增加水面的真实感。
关键词 水波;细节层次;交互性
中图分类号 TP301 文献标识码 A 文章编号1674-6708(2009)07-0015-02
1概述
计算机图形学中,一项困难并重要的任务就是实时水的渲染。实时水的完美渲染能极大丰富场景完整性,增强观看者的真实体验感,尤其是真实的水波模拟,对场景的互动性有着决定性的影响。但是对图形硬件来说,完美的水面渲染总是意味着巨大的开销,在实时性的前提下,完美渲染成了不可能的任务。国内外的专家做了各种研究[1],提出了许多水面渲染方案。最简单的方案是使用天空盒的立方体贴图与法线贴图,速度最快,在游戏中,最常用到,但随着图形硬件的发展,这种方案已显得太过简陋。最近许多文章提到利用图形硬件的顶点拾取能力(vertex fetch)[2-3],在此基础上论述了各种方案,但是顶点拾取(vertex fetch)只有nVidia显卡的支持,也就是说,使用这种方法渲染的水面无法获得ATI显卡的支持,具有相当局限性。因此,本文提出的方法不依赖特殊的硬件能力,在更通用的角度描述如何进行水面建模和水波模拟,至于反射、折射,水边缘,泡沫和焦散线(caustic)等不再此赘述。
2论述
2.1水面建模
左手坐标系的x,z平面上建立平面作为整个水面的网格,该平面由m×m个块组成,每块为边长为(2n+1)个顶点的正方形,因此,整个网格边长为(m×2n+1)个顶点,这样分块的好处是方便细节层次LOD的计算,也能满足纹理贴图尺寸的需求。如此生成水面网格后,只需要按照公式改变每个顶点的高度值就可以很好的模拟圆形水波。
2.2水波模拟
目前的水波分两类:方向波和圆形波。方向波用来表达风对水波的影响,而圆形波能很好的表达物体如雨滴落入水中产生的水波。这里为了达到在满足实时性的前提下更真实的模拟水波的目的,不考虑风向以及风速的变化,随时间偏移法线贴图的纹理坐标,达到水波被风吹动的效果,从而把更多的硬件性能集中放在对圆形波的模拟上。下面是本文使用的的流体表达式:
公式1,其中参数c和μ分别表示水波速度和阻尼系数。
为了应用上面的偏微分方程,并减少计算量,经过近似变形,简化,有下面的公式:
公式2
其中
,即位置的顶点在时的高度。为x轴向的增量(为了简化,认为x轴向与z轴向增量一样,都用代替), 为时间增量。
从简化后的公式2能看出,求解下一时刻的高度,需要前两个时刻即和的高度值,示意图如下:
因此,需要为每一个顶点更新3个高度值。初始化时,可以将3个高度缓存都设置成0.当物体干扰水面时,产生的高度偏移直接累加在当前高度缓存上即可。
因为网格的精度问题,雨滴可能落在顶点中间位置,为了平滑的模拟不同位置产生的扰动,可以用以下伪码表达的方式解决:
扰动函数( 位置x, 位置z, 扰动值energy )
{
计算位置x,z与所处方格四个顶点的距离;
根据上面计算出的四个距离值计算各顶点的扰动因子;
while ( 四个顶点 )
该顶点的高度 = 该顶点的高度 - 扰动值energy * 该顶点的扰动因子;
}
2.3 LOD计算
上面模拟水波的部分里,虽然尽可能的简化了水波公式,减少计算量,但是每一帧需要更新高度缓存,对硬件仍然是笔繁重的开销。本文的方法中很重要的一个内容就是LOD计算,省略距离摄像机较远处的部分顶点,减少送入渲染管线的顶点数量。
上面水面建模中提到将水面网格分块,每块边长为个顶点,其中n可以为0,1,2,3…等等,与此对应,最大的细节层次分别为0,1,2,3…等等。细节层次最低为0,也就是没有省略任何顶点,细节最丰富的一层,细节层次为1时,边长顶点数为0层的一半,细节比0层略低,依次类推。以图1右侧方块为例,如下图所示:
上面很清楚的表示的LOD工作原理及切换过程,但是只按这样的过程来设置顶点索引会渲染出裂缝,问题出在LOD不同的两块的交界处,在交界处LOD较高的块上的某个顶点被省略,于是在渲染这一块时该点的高度为该点相邻两点的平均值,而在渲染另一块时,该点的高度为顶点的实际值,于是产生裂缝,如下图所示:
为了解决这个问题,要对LOD不同的邻接块,尤其是交界处进行处理。首先要检测到LOD级别不同的两块,然后在LOD较低的块上交界处会产生裂缝的地方,也将顶点替换为相邻点
您可能关注的文档
最近下载
- 2025年高分子物理(第五版)课后习题答案.pdf VIP
- 《认知发展与学习机制》课件.ppt VIP
- 图软公司产品介绍的.ppt VIP
- 中考数学考点练习题22 相似三角形【原卷版】.pdf VIP
- 第一单元第3课《旅程的灵感》教学设计 2025湘美版美术八年级上册.docx
- 7.大华综合监控管理平台一体机dh-dss7016-d新.pdf VIP
- 第15课《中国工农红军长征与遵义会议》课件 统编版历史八年级上册.pptx VIP
- 微信小程序开发项目教程PPT完整全套教学课件.pptx VIP
- (高清版)B/T 12230-2023 通用阀门 不锈钢铸件技术条件.pdf VIP
- 屠宰企业宰前、屠宰过程及宰后检验流程要点和检验制度汇编-生猪.doc VIP
原创力文档


文档评论(0)