首页 > 都市言情 > 美利坚:游戏制作教父

美利坚:游戏制作教父 第659节

  反之亦然,如果从内存读,速度就要慢得多了。

  而若是从硬盘读呢?

  那就完全是一场彻彻底底的灾难了。

  就此看来,面对一个大地图,内存绝对是最大的问题所在。

  那么寻找突破点自然也要从这里开始。

  这次的题材为林立新提供了一个绝佳的机会。

  海湾战争是什么地方?

  那是中东大沙漠。

  而沙漠……恰恰是一种最节约性能的选择。

  一个游戏地图里最占资源的东西,往往就是那些复杂的模型,大量的遮挡、阴影、光照、纹理过渡……

  如果是一个欧洲城市战场,成吨的楼房会直接把可怜的显卡和内存都干爆。

  但沙漠就不一样了。

  别说是建筑物了,就连树都找不着。

  高低起伏平缓有序,没有混乱复杂的光照关系。

  纹理几乎完全一致,整张地图的地面甚至都可以用同一个纹理解决,显存不需要缓存更多复杂的东西。

  节约下来的性能,拿来在沙漠上加点建模简单的堡垒或是防空炮,完全足够了。

  “的确如此……沙漠天然就是一个元素稀少简单的环境,很适合电子游戏使用。”

  “不对。”

  卡马克摇了摇头。

  林立新说的这些一点儿不假,沙漠的确是比正常的城镇要好做的多。

  但也存在着一个非常致命的问题。

  “视距怎么办?沙漠里可没有任何东西遮挡,渲染剔除根本就没有意义。”

  这特么的,沙漠那地界,万里无云的天气。

  一个雷霆大跳站在沙丘上,两眼一张罗怕不是能瞄出去几英里远。

  直接就给GPU吓哭了好吗?

  “嘿嘿……这就是我接下来要说的重点。”

  林立新没有急着反驳他,而是开口反问道,

  “卡马克你去过真正的沙漠吗?”

  “怎么说?”

  “Heat Haze(热霾),当地表受到太阳辐射加热后,空气密度变化导致光线发生折射,远处的景物就会变得模糊扭曲,难以辨析。”

  闻言,卡马克一愣,随即眼神放光。

  这哪用去真正的大沙漠看?

  加州这破地方,一年到头的都是那么热,尤其是南加州,大太阳直接烤在地上,很容易就能看到那些热霾现象。

  “你是说……把远处的东西模糊化?”

  “没错。”

  林立新哈哈一笑,伸手在白板上写下了第一行字。

  【Levels Of Detail���� LOD】

  LOD技术并不是什么新鲜概念了,早在1976年,LOD就已经在计算机图形学领域有过一定的应用。

  只不过在电子游戏上使用,那还的确是头一回儿。

  它的思想非常简单,每个模型都有多种精度的版本,根据玩家的距离动态切换。

  离得越近,模型精度越高,细节越丰富,反之亦然。

  将那些本来在远距离就难以观察到的东西全部抹去,仅保留一个极粗的低模,这就足够了。

  “除此之外,我们还可以加入一个东西,跟它打配合。”

  林立新再度抬起手,写下了第二行。

  【Distance Fog(雾效)】

第544章 简单的优化,5倍的性能提升

  雾,现代电子游戏必备技术。

  只不过在如今这个90年代,大家还没有意识到雾效的重要性。

  原因无他,在8位时代,想要运行一个稍大点的地图,就需要可怜的内存不断进行数据交换。

  几KB的内存,完全不足以创造出庞大的世界。

  哪怕是到了16位时代,大世界也仍然还是一个伪命题。

  几MB的内存容量,虽然已经可以支撑那些瓦片式的大规模地图,但也就仅此而已了。

  但《战地风云》不一样。

  它是一个真正3D大战场。

  这意味着整个世界不可能像以前那样,仅仅保存一点儿瓦片数据。

  【x:0-y:1-tile:0】

  以往的时候,只需要这样三个参数,就能完整保存下一整格的信息。

  客户端在尝试渲染时,可以直接从内存里拉取对应的瓦片,拍在坐标所对应的位置。

  当然还要加上一点位移变换和视野剔除。

  这一招在2D的时代屡试不爽,尤其是在有了显卡这样一个天生擅长批量并行处理的硬件之后,瓦片的性能更是呈几何倍数上升。

  如果用现在这个规格的硬件去开发《超级马力欧》,瓦片的密度甚至能翻几个倍,同时还能确保帧数稳定。

  3D时代,地图的渲染逻辑完全改变了。

  这也是林立新很确信3DO注定失败的原因。

  3DO的赛璐璐叠画法看起来似乎很巧妙,似乎是个绕开三角形计算限制的巧思。

  但真正深入到几何空间之中就不难看出,这条路绝对是走不通的。

  或许在未来,等到AI技术高速发展,补帧、帧生成技术趋于完善之后,它还会重新被提起来。

  但至少在短期内,在未来几十年内,三角形都是3D计算的绝对主流。

  计算机理解3D空间,靠的是……顶点。

  除了x和y的坐标点外,又多了一层z轴。

  它们互相配合,就足以在计算机中构建一个真正包含深度的3D空间。

  那么问题来了,这么多的顶点,计算机怎么知道要如何把它们渲染出来?

  难道就直接无脑地连接所有点,然后糊一层蒙皮上去吗?

  这群追求完美的极客们自然不会选择这么绿皮的方法。

  对于不熟悉图形学的圈外人,其实在面对这个问题的时候,经常会出现一个疑问。

  为什么是三角形?

  如果是矩形的话,渲染起来不是会更方便吗?像瓦片那样把地图割成一块一块的,既方便又好理解。

  答案就出在3D上。

  在立体几何中,如果存在四个顶点,它们不一定会在同一个平面。

  别说是显卡不知道怎么画出来了,哪怕是让真人来,把四个不在同一平面的点画成一个面,那也根本是无稽之谈。

  怕是只有高维生物或是在非欧空间里才有可能达成吧。

  但是三角形就不一样了。

  图形学跟数学本质是相生的,在几何学中,三个点必定共面,四个点不一定共面。

  三个非共线点可以唯一确定一个平面。

  这就是3D加速显卡的立足之本了。

  只要有三个点,靠索引规定如何连接它们,显卡就能轻松地为其填充像素。

  想要矩形?简单,四个顶点拼两个三角形不就完了吗?

  谁也没规定说一个顶点只能对应一个平面。

  这么一来,不难发现3D空间的渲染便一下子豁然开朗了起来。

  游戏只需要不断地绘制三角形,各种角度各种形状的三角形,当它们靠着共线不断拼接,最终就能围成一整个完整闭合的模型。

首节上一节659/908下一节尾节目录txt下载

上一篇:娱乐圈最严厉的父亲!

下一篇:太太请安分

推荐阅读