高德娱乐

怎样的天才级的举动在很多末日使用二进制空间
发表时间:2019-12-30 10:29     阅读次数:
当时的放大/切割边缘,我们发誓。读者评论75与62米的海报在Reddit上

参与分享这个故事在Facebook上分享在Twitter分享在1993年,id Software公司发布的第一人称射击游戏末日,迅速成为一种现象。本场比赛目前被认为是有史以来最有影响力的游戏之一。

十年末日的发行之后,在2003年,记者戴维·库什纳出版了一本关于id Software公司称为末日的大师,这已经成为了经典占死命的创作。我在几年前读死命的大师,不记得了的现在,但没有在书中关于首席程序员约翰·卡马克已经坚持了我一个故事。这是故事的一个松散的光泽(参见下面的日Ë全部细节),但本质上,在末日的发展初期,卡马克意识到3D渲染了他为游戏写试图使某些级别时,速度极其缓慢。这是不能接受的,因为末日应该是动感十足和狂热。所以卡马克,实现了与他的渲染器的问题是根本不够,他需要找到一个更好的渲染算法,开始阅读研究论文。他最终实现了一个名为“二进制空间分割,”从来没有在视频游戏中使用之前的技术,能够显着加快了Doom引擎。

关于卡马克这个故事运用前沿的学术研究视频游戏一直印象深刻我。这是我为什么卡马克变成了这样一个传奇式的人物的解释。他不愧为知识N作为原型天才视频游戏程序员的各种原因,但这个情节与学术论文和二进制空间分割是我认为first.Further ReadingThe原厄运,64个对象,塑造视频游戏历史上一个[123的理由]

显然,这个故事是令人印象深刻,因为喜欢它“二进制空间分割”的声音将是一个困难的事情,只是阅读并实施自己。我一直认为什么卡马克所做的是一个巧妙的智力飞跃,而是因为我从来没有明白二进制空间分割或怎么新颖的技术,它是当卡马克决定使用它,我从来不知道是肯定的。从辛普森爱因斯坦的频谱,多少的天才级此举是真的为卡马克添加二进制空间Partitioning到末日?

我也想知道其中的二进制空间分割首先从如何的想法找到了自己的方式来卡马克。所以这个文章是关于约翰·卡马克和末日,但它也是关于一个数据结构的历史:二进制空间分割树(BSP树)。事实证明,BSP树,而有趣的是,像计算机科学这么多东西,有它在军队进行的研究起源

这是正确的:E1M1,死命的第一级,被带到您可以通过美国空军。

VSD问题

BSP树是计算机图形学中最棘手的问题之一的解决方案。为了呈现三维场景,渲染器必须搞清楚,给定一个特定的角度看,有什么可以看出,什么都看不出来。这是没有特别具有挑战性的,如果你有很多时间,但一个可敬的实时游戏引擎需要找出可以看出,什么都看不出来,至少30次。

这个问题有时也被称为可见表面确定的问题。迈克尔·亚伯拉什,谁在地震与卡马克工作(id Software的后续末日)一名程序员,在他著名的图形编程黑皮书写的VSD问题:

我想谈的是什么,我看来,所有的最棘手的3-d问题:可见表面确定(绘制每个像素处的适当的表面),而其近亲,扑杀(丢弃不可见的多边形尽快,加速可见表面确定的一种方式)。在简洁的利益,我将使用缩写VSD从现在开始的意思是既可见表面的决心和扑杀。

为什么我认为VSD是最艰难的3-d的挑战?尽管光栅化的问题,例如纹理映射是有趣和重要的,它们是相对有限范围的任务,并且被移动到硬件3- d加速器出现;同时,他们只在屏幕分辨率的增加,这是比较小的范围。

相比之下,VSD是一个开放式的问题,并有几十目前使用的方法。更显著,VSD的性能,在一个不成熟的方式进行,直接与现场的复杂性,这往往增加的平方或立方的功能,所以这很快成为渲染现实世界的限制因素鳞。

[123 ] Abrash在写关于90年代末的VSD问题的难度,年后的末日已经证明,普通的人希望能够在他们的家用电脑玩图形密集型游戏。在90年代早期,当id Software公司首先开始出版的游戏,游戏必须通过编程来不是为了运行这些计算机上高效运行,意味着文字处理,电子表格应用,及一些其它计算机。为了使这项工作,特别是对一些3D游戏,id Software公司死命公布之前,id Software公司必须是有创意。在这些游戏中,所有级别的设计以这样一种方式,VSD问题是容易解决了制约。

例如,在德军总部3D,游戏id Software公司发布前夕toDoom,每一道关卡都从作为轴ALIG壁制成定义。换句话说,在德军总部宇宙中,你可以有南北墙或西向东的墙壁,但没有别的。壁也可以仅在被放置在固定的间隔栅格的所有走廊或者是一个网格正方形宽,或宽两个栅格正方形等,但从未宽2.5方格。虽然这意味着id Software公司的团队只能设计水平,所有看起来有些相同,这让写一个渲染德军总部更简单的卡马克的工作

进一步ReadingHeadshot:第一人称shootersThe德军总部的可视化历史记录渲染解决了这个问题VSD的“行军”射线到虚拟世界从屏幕上。通常渲染器使用光线是一个“光线投射”渲染器,这些渲染器往往是缓慢的,因为在raycaster解决VSD问题涉及网络nding射线和东西在你的世界,这在一般情况下,需要大量的数字运算之间的第一次交集。但在狼穴,因为所有的壁与网格对齐,唯一的位置处的射线能可能相交的壁是在网格线。因此,所有的渲染需要做的是检查每个的交点。如果通过检查最近的玩家的观点交点渲染器开始,然后检查下一个最近的,依此类推,当它遇到的第一壁停止,VSD问题已经解决了一个几乎微不足道的方式。一缕只是向前行进,从每个像素直到碰到东西,这工作,因为行进在CPU周期计算这么便宜。而实际上,由于所有的墙壁都是一样的高度,它只是necessaRY进军单一射线的像素每列。

此渲染快捷德军作出足够快的速度在动力不足的家用PC的时代之前,专用图形卡运行。但是,这种方法不会为末日工作,因为ID团队已决定,他们的新游戏会拥有像斜墙壁,楼梯和不同高度的天花板新奇的东西。雷行军不再是可行的,所以卡马克写了一个别样的渲染。而Wolfenstein的渲染器,以其为射线的像素的每一列,是“图像优先”的渲染器,所述呈现器末日是一个“对象的第一”渲染器。这意味着,而不是通过像素在屏幕上进行迭代,并找出他们应该是什么颜色,在场景中通过对象的末日渲染迭代,并且每个项目上为

在一个对象的第一渲染器依次的画面中,一个简单的方法来解决该问题VSD是使用z缓冲器。每次投影物体在屏幕上,您要画到每一个像素,你做一次检查。如果你想拉拢的对象的部分更接近球员比已经吸引到像素,则可以覆盖还有什么。否则,你得离开像素为是。这种方法很简单,但是一个Z缓冲器需要大量的存储器,并且渲染器仍然可能花费大量的CPU周期的突出水平几何形状是永远不会由玩家看到。

在早期的20世纪90年代,有一个附加的缺点Z缓冲器的方法:在IBM兼容PC机,它使用一个称为VGA视频适配器系统,写入到输出帧缓冲器WAS上的昂贵的操作。所以花费的时间绘制的像素,只会被覆盖后重挫你的渲染器的性能。

由于写入帧缓冲器是如此昂贵,理想的渲染是一个开始通过绘制的对象最接近的球员,那么对象只是超出对象,依此类推,直到屏幕上的每个像素都被写入。在这一点上呈示知道要止损,保存它可能已经度过了考虑遥远的对象,玩家不能看到所有的时间。不过这样一来排序的对象场景中,从最接近最远,无异于解决VSD问题。再次,问题是:什么可以被玩家看到

一开始,卡马克试图依靠末日水平的布局来解决这个问题秒。他的渲染器通过绘制现在游戏者占去了房间的墙壁开始,然后涌了出来到邻近的房间绘制在墙面,可以从当前的房间可以看到那些房间。只要每一个房间呈凸,这解决了VSD问题。房间是不是凸约可分为凸“部门,”你可以看到,如果在超慢的速度在上面的视频,在YouTube用户Bisqwit证明自己的渲染器运行,根据工作如何渲染技术可能已经看过同样的通用算法。该算法在毁灭公爵3D已成功使用,末日后三年发布的,当时的CPU更强大。但是,在1993年,在硬件上运行,然后可用,使用该算法死命挣扎渲染复杂的水平 - 特别是当被嵌套对方,这是创建像楼梯的圆形坑的唯一途径的内部扇区。圆形坑导致大量重复的递归下坡到部门已经得出,扼杀了游戏引擎的速度的楼梯。

围绕该ID团队意识到,死命游戏引擎可能太慢时间,id Software公司被要求端口德军总部3D的超级任天堂。超级任天堂是比天的IBM兼容机甚至不那么强大,它原来的射线踏着德军总部渲染,简单,因为它是,没在超级任天堂硬件上运行速度不够快。所以卡马克开始寻找更好的算法。这实际上是对德军的超级任天堂端口卡马克第一研究并实现了二进制空间分割。在Wolfenstein的,这是相对简单的,因为所有的墙壁是轴对齐;在Doom,那将是更加复杂。但卡马克意识到BSP树会解决末日的速度问题了。

关注高德娱乐官网(www.huzaza.com)。

上一篇:电视铁三角2019:这是我们最喜爱的节目和狂欢今
下一篇:在一个视频游戏我的孩子们玩一年之久|高德娱乐

                  友情链接:
腾讯游戏 雅星娱乐 网易游戏