【精品】BSP技术详解2.doc

【精品】BSP技术详解2.doc

ID:51890865

大小:264.50 KB

页数:20页

时间:2020-03-18

【精品】BSP技术详解2.doc_第1页
【精品】BSP技术详解2.doc_第2页
【精品】BSP技术详解2.doc_第3页
【精品】BSP技术详解2.doc_第4页
【精品】BSP技术详解2.doc_第5页
资源描述:

《【精品】BSP技术详解2.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、BSP技术详解2第二节隐藏而剔除对不可见物体进行剔除是游戏行业为了满足提高画而渲染速度的要求而产生的…项技术,就是在硬件加速技术飞跃发展的今天,虽然现在已经对以完成许多在过去被认为是不川能实现的工作,但是对于隐藏面进行剔除仍是加速图形渲染的•项重耍技术。通常当•个游戏运行的时候,它最少需耍以每秒30帧的速度运行。在几年前这意味着如果每•帧你渲染的帯纹理的多边形数戢超过5000个就被认为是不可接受的,I何现在几乎所有的商业显卡每•秒都可以渲染几千万个多边形。可是现在仍然需要使用隐藏面剔除这项技术,这是为什么呢?显而易见,对不可见物体沆染以濟将会被可见物体遮扌半住

2、,这样做无谓的浪费了显卡的带宽,但是同时它也增加了场景的细节,使游戏画而看起來更加吸引人。现在的问题是多人程度上来剔除隐藏的多边形,象viewfrustumculling和portal渲染这样的技术来剔除•个不川见多边形是非殆耗费时间的,用来去做这些计算的CPU时间对以用来完成其它诸如AI或碰撞检测这样的匸作,因此开发一个隐藏血剔除算法必须注意到这•点。对于现在的游戏來说几乎没有•个是将每-•个隐藏的多边形都进行剔除,1仃是剔除-•个多边形的集合如-个肖点或-个物体等等。对于•个单独的多边形它并不进行剔除,因此个止确的隐藏而剔除方案是允许一定的重复渲染来适当的

3、减少计算量。当建立…个FPS游戏吋进行隐藏而剔除最通常的方法是使用portal渲染°这项技术可以非常充分的利用BSP的优点,但是请注意portal技术并不仅仅只能用于BSP中。Portal技术还可以用来产生一些特效如镜子和监视器等等。Portal渲染在这里我将介绍一下portal技术的原理,通常对丁•个室内场呆来说它对以被描述为山-个个、、洞口〃相互连接的'、龙间〃纽.成,这里'、洞口〃被称为portal间〃被称为sector,通;•;?sector被迫义为•个''凸〃的''闭合〃的多边形集合,沱义屮的''凸〃阅读过前面的内容你应当己经能很好的理解了,而'、闭

4、合〃是什么意思呢?它意味着在sector内部任意连接两个顶点做•条线段,这条线段不会和英它的多边形相交・换句话说如果你想在sector内部任意画•条线段通到sector的外部必定与组成sector的多边形相交。这也意味着连接每-个sector的'、洞口〃必须被一个组成portal的多边形所填充,llij对于放置portal多边形來说你既口J以手丁•放置也可以山程序自动产山,在我讲解这项技术之前我必须提醍•下,山于硬件加速Z缓冲的出现对sector必须为'、凸〃的限制匕经消除,因此有许多游戏引擎C经不再遵守这个标准,但是在这里我还是要対过去的方法进行…下介绍。—

5、•个portal引擎的基本方法是当你通过一个指定观察位置的可视平截体(viewfrustum)进行渲染时,如果一个portal出现在可视范围内,那么portal将对川视平截体进行剪切,这样与其相连的sector将会通过一个观察位置相同但已经改变过的对视平截体进行渲染。这是个非殆简单阳且非讯适合进行递归调用的方法,山丁对视平截体被portal进行了精确的限制,因此被隐藏的物体可以很简单进行剔除。下面的例图显示了一个portal引擎中的可视平截体是如何被剪切的。图6.10在图6.10'I'观察者的位置位于V,而初始的可视平截体为F1,当它通过-个portal多边形

6、P1后被P1剪切产生新的可视平截体F2,接着当它通过porZl多边形P2、P3后F2被剪切为F3、F4,

7、(IJF3通过P4后被剪切为F5

8、伯F4被剪切为F6。观察这个过程我们可以发现portal技术非常适合进行递归调用。接着需要考虑的是如何对物体进行拣选剔除,通常对于所有的3D引擎來说都需要通过、系列步骤來加速这个处理过程,冋忆•下前血讲解的内容,这个过程首先要计算出物体的、'最大包围球〃或是、、最大包围盒〃,它是包含了物体所有顶点的最小包围体,接着用辿围体來和'、可视平截体〃每•个剪切面进行碰撞检测,如果包围体位于每-个剪切面的'、反面〃那么物图6.11图

9、中物体1位丁右剪切面的''止而〃但位于左剪切而的''反面〃因此它将不会被渲染,Hi幽体2不仅位于左剪切面的''止面〃

10、何且有•部分位丁右剪切面的、'止而〃因此将会被渲染出来。Portal技术最初的想法是通过剪切多边形來保证只有物体可见的部分被渲染出來,也就是无效沆染的多边形数彊为0。但是现在这种想法被认为不是很理想,因为它无谓的浪费了处理时间。但是山于-个多边形在递归循环过程小将被遍丿力多次因此我们需要知道在渲染场呆时它是否C经被渲染过,•个较好的方法是使用•个帧数来标识这个多边形,这样可以很容易的来描述这个多边形在上一帧是否被渲染过。再看-•下图6.10中最

11、右边的墙,它同时通过F5和F6來进行渲

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。