eXtreme3D

导航

统计

2007年3月25日

Hidden Surface Removel Algorithms —— Occlusion Culling<1>

摘要:隐藏面剔除算法的出现是基于以下的现实,在游戏场景中你不必每帧都将所有的物体渲染到屏幕上,它的作用主要有两个:一个是减少GPU的屏幕填充率,另一个是减少CPU和GPU的传输带宽。根据当前的硬件现状GPU的填充率已经不存在任何问题,而现在唯一的限制位于AGP上,它那可怜的一点带宽已经成为图形渲染的瓶颈,因此当前HSR算法大部分都放在CPU端来做以尽量减少每帧需要传输的数据量,这里你不需要对CPU的负担... 阅读全文

posted @ 2007-03-25 17:26 Dreams 阅读 (1356) 评论 (0) 编辑

Half Life2 Displacement Terrain System

摘要:HL2的地形系统是一个另类的地形系统,它没有使用当前流行的heightmap技术,而是完全使用displacementmap技术来进行处理,使用displacementmap技术的初衷是为了在框架中和BSP技术保持一致,这是因为在BSP中最小的渲染图元是surface,surface的限制是所有的顶点必须位于同一个平面上,实际上从理论上来说在HL2这样的引擎中也可以使用heightmap来构造地形... 阅读全文

posted @ 2007-03-25 17:08 Dreams 阅读 (905) 评论 (0) 编辑

游戏引擎中的通用编程技术

摘要:你是否正在考虑构建一个游戏引擎呢?你对如何构建一个游戏引擎是否已经有了一个明确的计划呢?你是否已经对如何组织游戏引擎各个模块之间的关系有了一个通盘的考虑?如果没有,那么本文将对你建立一个良好的游戏架构提出一些有益的方案,如果你已经对上面的问题有了一个明确的答案,那么本文不是你需要阅读的内容。本文的目的是给那些没有任何建立完整游戏引擎经验的人提供一些入门性的知识,使他们初步了解一下如何来构建一个游戏... 阅读全文

posted @ 2007-03-25 17:04 Dreams 阅读 (1460) 评论 (1) 编辑

一个快速的内存分配池

摘要:对于现代的游戏引擎来说,为了提高性能和有效的管理内存,需要使用各种各样的内存分配模型,内存池作为一种有效的分配模型被大量的使用,它通过一次分配足够的内存来减少对newdelelte使用以提高引擎的性能,并且由于每一个内存块都有相同的大小因此非常易于管理,并可以防止内存的泄露。它通常被用于需要分配大量相同对象的场合,如粒子系统这样的地方。 对于在运行时可以明确知道分配数量的物体,可以通过一... 阅读全文

posted @ 2007-03-25 17:02 Dreams 阅读 (1424) 评论 (0) 编辑

gimbal lock

摘要: 阅读全文

posted @ 2007-03-25 17:02 Dreams 阅读 (447) 评论 (0) 编辑

BSP技术详解(补充)--Radiosity Algorithms in BSP Scene

摘要:在我翻译的《BSP技术详解》一文中对radiosity技术介绍的非常简单,而且很多地方都没有解释清楚,下面我将结合自己研究的结果对如何在BSP场景中进行radiosity做一下介绍,这里只介绍关键的步骤,至于详细的实现细节请自己参考相关的代码。通常如果需要在一个构建好的BSP场景中进行radiosity计算大概需要下面的几个步骤:1、将场景中每一个face分解为patch;2、对每一个patch构... 阅读全文

posted @ 2007-03-25 17:00 Dreams 阅读 (876) 评论 (2) 编辑

pvs数据的使用方法

摘要:在.bsp文件中用于可见性检测的信息被保存在一串串的字节中,而字节中每一位表示一个cluster,这是因为在BSP树中进行可见性检测的PVS信息数量非常大,而使用这个方法可以做到快速进行存取并使保存的信息量变的很小。下面是这个结构的一个实例,你可以通过两个方法来计算需要读入的字节数:用numOfClusters* bytesPerCluster;或用这个结构的长度减去两个整型字节。结构中的pBit... 阅读全文

posted @ 2007-03-25 16:58 Dreams 阅读 (374) 评论 (0) 编辑

Far Cry and Half Life2 Engine scene technique

摘要:当前对于流行的第一人称游戏来说,将室内场景渲染和室外场景渲染进行融合是主流的趋势,本文试图从场景架构入手对当前流行的两个游戏引擎Far Cry和Half Life2进行一些非常浅显的介绍、分析、比较,由于本人学识浅薄,本文中可能存在一些错误之处,请大家予以谅解,并请高手给予指正。 在过去由于硬件发展的限制因此第一人称游戏只能在室内场景进行,随着硬件技术的发展它逐渐由室内向室外场景进行过渡,发展... 阅读全文

posted @ 2007-03-25 16:55 Dreams 阅读 (2418) 评论 (3) 编辑

BSP技术详解(补充)--pvs算法

摘要:终于将HL2的vbsp,vvis看完了,随便也翻了翻q3map代码,发现两者的代码太相似了,可以看出在BSP分割,portal的查找方面在Q2中都应该已经定型了,因此两者使用的算法都是一样的。下面我主要谈一下计算pvs的算法,因为在我翻译的那篇文章《bsp技术详解》中计算pvs是通过在每个portal上确定一些采样点然后进行ray cast来计算pvs的,这种方法的速度没有保证,而且处理起来也非常... 阅读全文

posted @ 2007-03-25 16:46 Dreams 阅读 (2066) 评论 (4) 编辑

BSP技术详解3

摘要:第三节 室内场景中光照运算关于Radiosity的算法最早是由Goral、Cindy M、Torrance、Kenneth E、Greenberg、Donald P、Battaile和Bennett在论文《Modelling the interaction of light between diffuse surfaces》提出的。他们使用Radiosity来模拟能量在漫反射表面之间进行传送,漫反... 阅读全文

posted @ 2007-03-25 16:39 Dreams 阅读 (700) 评论 (0) 编辑

BSP技术详解2

摘要:第二节 隐藏面剔除 对不可见物体进行剔除是游戏行业为了满足提高画面渲染速度的要求而产生的一项技术,就是在硬件加速技术飞跃发展的今天,虽然现在已经可以完成许多在过去被认为是不可能实现的工作,但是对于隐藏面进行剔除仍是加速图形渲染的一项重要技术。通常当一个游戏运行的时候,它最少需要以每秒30帧的速度运行。在几年前这意味着如果每一帧你渲染的带纹理的多边形数量超过5000个就被认为是不可接受的,而现... 阅读全文

posted @ 2007-03-25 16:37 Dreams 阅读 (1756) 评论 (3) 编辑

BSP技术详解1

摘要:翻译自一篇老外的文章,最后一点没有翻译完,呵呵,不太好意思!!!!!BSP技术作为室内引擎渲染的主流技术虽然已经存在多年,但是生命力仍然非常顽强,最新的DOOM3,HL2仍然将它作为渲染的主流技术,但是在网上对它介绍文章虽然多却非常浅显,大多是使用Q3的BSP文件进行渲染,而BSP文件如何产生则介绍非常少,盖因为这一部分是场景编辑器的工作,而完成一个这样的BSP编辑器是非常困难的,需要掌握的知识非... 阅读全文

posted @ 2007-03-25 16:19 Dreams 阅读 (3300) 评论 (4) 编辑

搬家了,新blog开张

摘要:gameres的blog完全不可用了,今天开始将以前的东东都转移过来. 阅读全文

posted @ 2007-03-25 15:41 Dreams 阅读 (256) 评论 (1) 编辑