[使用基于GPU的GeometryClipmap渲染地形.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[使用基于GPU的GeometryClipmap渲染地形

使用基于GPU的Geometry Clipmap渲染地形使用基于GPU的Geometry Clipmap渲染地形(Terrain Rendering Using GPU-Based Geometry Clipmaps)(上) 翻译:clayman 注:这篇文章翻译的是《GPU Gem2》中第二章的内容,老早就翻译的东西了,但因为翻的不太好,一直放着,找不到原版的PDF文档,截图有些是在网上找的,有些是我自己做的,大家凑活看了,基本和原图还是差不多的。《GPU Gem2》中的内容实在很难,本人水平有限,有错的地方还请大家指正。 Geometry clipmap是用于渲染地形LOD的新方法。它把地形缓存在一组嵌套的规则网格中,同时在观察点移动时,不断更新这些数据。和之前不规则网格(irregular-mesh)技术相比,规则的网格有很多优点:简洁的数据结构、平滑的视觉效果,稳定的渲染速率,合适的分级(graceful degradation),高效的压缩,以及运行时的细节合成(synthesis)。这里,我们将描述一种通过顶点纹理(vertes texture)实现的几何clipmap。把地形几何体作为图片来处理,几乎所有计算都能通过GPU来完成,从而减少CPU的负担。 1.1 Geometry clipmap简述 在大型户外环境中,处理地形数据将会占用大量的储存空间以及渲染带宽。我们已经开发了多种LOD技术来处理地形。但是,大多数技术需要在运行时创建和修改mesh数据(顶点和索引缓冲),而这些操作对当前的图形处理技术(graphics architecture)来说代价是很大的。此外,不规则的网格通常需要使用CPU来处理,而在诸如游戏之类的应用中,CPU本来就不够用了。 Gemetry clipmap框架中(Losasso and Hoppe 2004)把地形作为一张2D的高度图(elevation image)来处理,并预先把它过滤为一张包含L层的mipmap金字塔。 处理复杂地形时,完整的金字塔可能对内存来说太大了。Geometry clipmap结构对每一层进行窗口大小为n x n的采样并缓存,这和Tanner 1998介绍的texture clipmap方法有些类似。对观察者来说,这些窗口相当于一组嵌套规则的网格。注意,高细节层次所占的空间总是比较粗糙的层次少。这样的目的是保证在屏幕空间,所有三角形都统一大小(the aim is to maintain trangles that are uniformly sized in screen space)。如果clipmap大小为 n = 255, 那么在1024 x 768的分辨率下,每个三角形大约是5个像素。 只有最高的层次(L-1级)渲染为完整的方形网格。其他层次都渲染为空心环,因为空心部分已经由较高层次填充了。 当观察者移动时,clipmap窗口也作相应的改变,同时更新数据。为了保证高效的持续更新,以一种环形的方法来访问clipmap每一层的窗口,也就是说使用2D环绕寻址(the clipmap window in each level is accessed toroidally, that is ,with 2D wraparound addressing)。 其中,挑战之一就是如何隐藏相邻层次之间的边界,同时,保证一个完美的网格,避免临时的撕裂效果。Geometry clipmap的嵌套网格结构提供了一种简单的解决方案。其中,关键的思想就是每层在靠近外层边界的地方引入一个交换区域(transition region),这样,几何体和纹理都能平滑的通过插值过渡到下一个粗燥级别。使用顶点和像素着色器,可以分别高效的实现这些交换区域。 Geometry clipmap的嵌套网格结构同样能实现高效的压缩以及合成。它可以通过对较粗糙的层次的数据进行upsample(提高取样率),预测(prediction)每一层的高度数据。因此,我们只需要储存多余的细节信息并合成到这个预测的信号上就可以了。 1.2 Overview of GPU Implementation Geometry cliipmap最初的实现方法把每一层数据当作普通的顶点缓冲。由于当前的GPU缺乏修改顶点缓冲数据的能力,所以这种实现在更新数据和渲染时都需要CPU参与。而这里,我们将使用顶点纹理来实现geometry clipmap。这样做是有益的,因为clipmap 2D的窗口网格数据更适合保存为一张2D纹理,而不是通过人工线形化处理保存为1D的顶点缓冲。由于clipmap包含L层,每一层又包含了n x n的几何采样,我们将把采样的(c,y,z)信息分为两部分: l (x,y)坐标储存为常量顶点数据 l

文档评论(0)

wangz118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档