Board logo

标题: 简单介绍 3D 之神 John Carmack [打印本页]

作者: s7912    时间: 2007-8-6 01:42     标题: 简单介绍 3D 之神 John Carmack

好像这里有些人不太晓得他是谁...所以特别转了这篇过来让各位认识一下


转贴自A9VG
作者:komos

[技术贴]战主机我没想法,但是喷到 John Carmack 的头上就有点坐不住了!

先申明非完全原创,整理+个人理解。

  http://www.idsoftware.com/

  John Carmack,

  如果你问比尔.盖茨,“你最欣赏的程式师有哪些?”,在他的回答中,肯定会出现JohnCarmack(卡马克)的名字。(PS:论坛争论很凶的DX和OPENGL的前者---DX API的很多修改都是根据JC的建议)没错,John Carmack 在程式师中的崇拜程度,甚至到了无以为加的地步,他设计出了游戏史上最强大的3D引擎,30 岁时就步入了美国互动艺术设计名人堂。微软在很多问题都非常尊重他的意见,甚至展示Windows 95 多媒体应用的3D演示程式就是使用他设计的引擎。

  另外他还是个超级游戏设计师和王牌玩家,冲动而富有激情和感染力,正是因为对游戏的热爱,才进化成为程式员,并不断改进自己所从事的产业。作为年轻一代,John Carmack是典型的美国梦样版,他用自己的热情点燃了一种新的艺术形式、一种文化现象,并在商业上获得巨大成功。他的经历使自己成为叛逆的偶像,他既是电脑骇客,同时也名列《财富》杂志(Fortune)评选的500佳企业管理者;他被誉为游戏界的列侬(Lennon),其实他自己更乐於被看作金属乐队(Metallica)的成员.ID Software的Co-founder, technical director 和 Lead Programmer,3D FPS游戏鼻主。

  90年代初,John Carmack推出了石破天惊的Castle Wolfstein, 然後再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。 标准的编程狂人,结婚前每天14小时以上的时间都在码。ID的图形引擎几乎成为显卡厂商的重要标准,远的不说,04公布的DOOM3 引擎直到现在还是牛X的一塌糊涂,一直作为显卡评测工具也说明了一些问题。但JC最令人敬仰的不是他的技术,而是他那颗骇客的心。所有游戏公开源代码,所有领先的图形引擎I都毫无保留的开源,可以说没有JC 现在游戏的图形技术肯定要滞後很多,只有真正的神才是不怕被别人抄袭他的技术。

1992年:《狼穴 3D》(Wolf 3D)
1995年:《毁灭战士》(DOOM)
1996年:《雷神之锤》(Quake)
1997年:《雷神之锤 II》(Quake II)
1999年:《雷神之锤 III—竞技场》(Quake III Arena)
2004年:《毁灭战士 III》(DOOM III)
2005年:《雷神之锤 IV》(Quake IV)

PS:JC的业馀爱好是制作私人火箭



再付JC 为 Michael Abrash的《图形程式开发人员指南》写的序,绝对的震撼
  

  我在学校读书的时候开始在AppleⅡ电脑上编程,几乎所有早期的工二作都基於Apple平台。毕业之後,我很快发现80年代後期Apple II工作举步艰难,於是我不得不迅速转入Intel的PC环境。过去我在Apple上花—了好些年得到的知识,在PC机上不需要几个月就可以,学到。作为一名程式师取得收入,最大的好处就是能够购买所有想要的书和杂志。我买了许多。我处在一个一无所知的领域,於是我阅读在我身边所能找到的所有东西,时事报导、社论甚至广告都有我可以吸取的资讯。

  早些时候,John Romero给了我—些Michael Abrash的文章,这些都是好文章:图形硬体、代码优化、雄心勃勃的开发者的知识和聪明才智,它们读起来更是轻松愉快。有很长一段时间,我到各个书店去寻找Michael的第一本书《Zen of Assembly Language》,但—直没有找到,只好将就利用我所能发掘到的他的文章。从那些文章里,我学到了EGA视频控制不为人知的秘密,并且开发成几个精致的技巧,有几个成为Commander Keen系列游戏的基础。正是它们导致了id软体公司的产生。

  —两年後,就是Wolfenstein—3D开发出来以後,我第—次“碰到”Michael,当时我正在M&T的BBS上线上漫游,这个BBS是Dr.Dobb出版商在Internet火爆起来之前构建的,这时我看见了他发出的邮件。我们交换了email。有好几个月,我们在图形学论坛扮演着领袖二人组的角色,直到Doom游戏占据我的生活。

  当Doom引起轰动以後,Michael一个新得到工作的朋友让我们又彼此取得了联系,并且我终於有机会见到Michael。那天我说得嗓子都哑了,我与Michael和他的合作者中感兴趣的人讲述着Doom的所有细节。从那以後,每隔几天我就能收到—封发自Michael的email,或是徵求我某个观点的细节,或是讨论将来图形学的发展方向。

  最後,我徵求他的意见—给他—份在id软体公司的:工作:“只要思考;不要向任何人汇报;有机会整天从一张白纸开始编程。—个编程员做他该作的事情的机会”。但他未答应。但是我一直坚持,一年以後,我终於说服他屈驾来id看一看。当时我正在研制Quake。从Doom到Quake是我们迈出的极大的—步。我知道我该在哪里结束,但我—点也不知道如何到达那里。我试过很多很多的方法,即使是失败了也让我学到了许多东西。—定是我的热情感染了他,因为他接受了这项工作。

  於是开始史诗般的编程。数十万行的代码编出来,重编,再重编……。

  此刻回想,我感到Quake的许多方面都有遗憾之处, 但那只是—个杰出的人不愿轻易地承认它技术上的成功而已。的确, 一年以後, 我可能会发现Quake中的某些地方有待改进。但现在对我来说,它看起来依然非常好。我们使它引人入胜。我很高兴Michae1在他正在发行的文章中描述了许多Quake的技术,我希望我们能够教给别人一些。当—个非编程人员听说我允许发行Michael的文章和源代码时,我总见到一幅目瞪口呆的面孔——“你那样做想十什麽?”。他们不会明白的。

  编程不是一个零和一的游戏,教给你的同行一些东西并不会丢失它们。我与人分享我能做到的一切时觉得很高兴,因为我深深地热爱编程。一辆法拉利小车不过是一种物质享受,但做人最重要的是真诚。

  这本书包含了许多最初的文章,正是它们帮助我开始我的编程生涯。对於後面这些文章内容的出版,我希望我所做的努力能为其他人起到同样的铺路石的作用。

id软体公司
John Carmack
作者: hanzo    时间: 2007-8-6 01:46

去google一下《DOOM启示录》,比这篇东西详尽得多好看得多
作者: 断剑虎    时间: 2007-8-6 01:49

LZ就是在TG和A9之间转来转去呀
作者: zj87813096    时间: 2007-8-6 01:50

DOOM启示录

程序员必读
作者: s7912    时间: 2007-8-6 01:51

引用:
原帖由 hanzo 于 2007-8-6 01:46 发表
去google一下《DOOM启示录》,比这篇东西详尽得多好看得多
那是一本書OK
我這篇是簡介
作者: zj87813096    时间: 2007-8-6 02:07

DOOM启示录

给个连接
http://post.baidu.com/f?kz=40825311
作者: fengxveye    时间: 2007-8-6 05:02

喷名人是显示自己与众不同的一种捷径。。。。。

作者: 6533186dc    时间: 2007-8-6 07:28

Tg没人不认识他吧
作者: callus    时间: 2007-8-6 08:38

进来顶一顶大神
作者: 爱骑车的胖子    时间: 2007-8-6 08:44

提了卡马克 怎么能不提 罗梅洛 ???
作者: adds    时间: 2007-8-6 08:47

卡马克还要来介绍啊
作者: casiosushi    时间: 2007-8-6 08:54

也是个墙头草
作者: 干蒸鸡    时间: 2007-8-6 08:59

话说新的德军总部啥时出来
作者: west2046    时间: 2007-8-6 09:03

进来拜 卡神!!
作者: 卡马克    时间: 2007-8-6 09:08

我在TG不灵的
起码不会在linux上使用硬盘缓存!

[ 本帖最后由 卡马克 于 2007-8-6 09:09 编辑 ]
作者: jmmouse    时间: 2007-8-6 09:38

看过DOOM启示录,对丫没有好感……
技术狂人,但要说游戏制作人,算了吧
Romero离开后,ID也没见得好到哪里去。
作者: 茉莉FAN    时间: 2007-8-6 09:47

话说DOOM启示录我还没看完……

不过卡神确实值得尊敬。
作者: 神之右手    时间: 2007-8-6 09:49

引用:
原帖由 jmmouse 于 2007-8-6 09:38 发表
看过DOOM启示录,对丫没有好感……
技术狂人,但要说游戏制作人,算了吧
Romero离开后,ID也没见得好到哪里去。
你要有爱啊!
没有技术哪有引擎,没有引擎何来3D游戏?
卡神和id对于3D引擎发展的巨大贡献是毋容置疑的
作者: Pele    时间: 2007-8-6 09:50

引用:
原帖由 jmmouse 于 2007-8-6 09:38 发表
看过DOOM启示录,对丫没有好感……
技术狂人,但要说游戏制作人,算了吧
Romero离开后,ID也没见得好到哪里去。
总还有个Q3
作者: cocoa    时间: 2007-8-6 09:54

不见得,quake2,quake3,rtcw都是罗梅罗离开后的经典,doom3虽然诟病很多,但是pc,xbox版都过了百万,不错了,其实我最怀念q3时代id的美工paul steed,自从他走了后,id的美术就没什么艺术可言了,<<doom启示录>>我也看过,但要了解jc大大的神奇之处,请看《图形人员开发指南》,忘了说,这本书的作者micheal abrash是卡马克早年的导师,xbox360重要的设计者,图形届的泰山北斗。jc曾经评价过abrash,他是个很聪明的人,唯一的缺点是在我面前过于保守,对我言听计从:)
作者: RestlessDream    时间: 2007-8-6 09:56

引用:
原帖由 hanzo 于 2007-8-6 01:46 发表
去google一下《DOOM启示录》,比这篇东西详尽得多好看得多
感谢那顿憋了两个小时的自助料理吧 :D
作者: hanzo    时间: 2007-8-6 10:03

引用:
原帖由 RestlessDream 于 2007-8-6 09:56 发表


感谢那顿憋了两个小时的自助料理吧 :D
我也是看过TF的人了
作者: HyperIris    时间: 2007-8-6 10:03

引用:
原帖由 cocoa 于 2007-8-6 09:54 发表
不见得,quake2,quake3,rtcw都是罗梅罗离开后的经典,doom3虽然诟病很多,但是pc,xbox版都过了百万,不错了,其实我最怀念q3时代id的美工paul steed,自从他走了后,id的美术就没什么艺术可言了,我也看过,但要 ...
如果没弄错的话, <图形程序开发人员指南>中文早已经绝版了, 是前导工作室译的(前导, 很怀念的名字), 很多人没看过也没见过是很正常的, 厚厚的一大本, 幸亏当年脑子发热买了.


作者: 凹凸贴图    时间: 2007-8-6 16:37

引用:
原帖由 zj87813096 于 2007-8-6 01:50 发表
DOOM启示录

程序员必读
我觉得所有从事游戏开发的人都有必要读一下。不过,也不要过于神化卡马克,与他同时期的还有一堆强人,正是这些人共同推动了技术的发展。
我读了三遍,过段时间再看一遍。
作者: 爱你一棒陲    时间: 2007-8-6 16:46

快速出名的南山捷径就是能常人所不能,好比芙蓉JJ之流。人活脸树活皮,脸都不要了了能不无敌?
作者: 爱你一棒陲    时间: 2007-8-6 16:47

对游戏来说引擎就是法律喽,席德梅尔就是这么说的。
作者: qieyifonger    时间: 2007-8-6 19:12

引用:
原帖由 爱你一棒陲 于 2007-8-6 16:47 发表
对游戏来说引擎就是法律喽,席德梅尔就是这么说的。
不知道马尿们和口袋妖怪们还有俄罗斯方块们用的是什么引擎哦~~~
作者: 马甲爵    时间: 2007-8-6 19:51

In the beginning when God created the heavens and the earth, the earth was a formless void and darkness covered the face of the deep, while a wind from God swept over the face of the waters. Then God said, "Let there be light"; and there was light.

上帝创造天地。地是空虚混沌, 海面黑暗;上帝的灵运行在水面上。上帝说:"要有光",就有了光。

——创世记(GENESIS) 上帝的创造和安息日(Six Days of Creation and the Sabbath)

———————————————————————————————————————————

上帝花了6天创造了这个世界,id software和它的创始人、引擎师John Carmack用6款游戏创造了个人电脑的3D世界:

1992年,id做出了《德军总部》,将JC在90年实现的平滑滚动效果利用到极致,逼真到普通用户第一次在PC上面模拟真实的世界。

1993年,id发布《DOOM》,让电脑进入3D世界(准确的说是2.5D),DOOM勾画出了从来没有过的逼真场景,让玩家相信他就在 《DOOM》的世界中。同时doom是第一款支持连线的游戏。之后的DOOM2、Ultimate DOOM、Final Doom等游戏都是基于DOOM引擎,从此个人电脑上有了虚拟的世界。

1996年,id发布《Quake》,让电脑第一次运行真正的纯3维世界,将逼真性再上一层。并且首先支持了3D加速卡。

1997年,id发布《Quake II》,实现了动态的光线,个人用户从而第一次在自己电脑上可以看到同样物体动态效果下的不同颜色。而且首先支持OpenGL标准和完全3D加速,从此游 戏画面可以精确到用像素来填充了。后来基于Q2引擎开发的Half-life(半条命)、Conter-Stirke(反恐精英)、DOD(胜利之日)等 都大红大紫。

2000年,id发布《Quake III Arena》,使用了JC的Trinity(三位元)引擎,极大的提高了普通电脑的多边形生成能力和填充能力——因为JC实现了“圆”,QuakeIII 中,人们第一次可以在3D世界中看到了真正圆形的东西。而后来发布的《重返德军总部》和《使命召唤》都是基于Quake3的Trinity引擎编写的。从 此,个人电脑上可以几乎乱真的渲染出3D的画面。

每次Id发布游戏,都能让3D游戏上一个台阶,都能让普通用户电脑上显示的3D画面向真实的世界跨进一大步。每次JC写出他的引擎,都能在3D界保持数年的领先,让各大硬件厂商追逐他的标准。

2004年,id发布《DOOM3》,id有史以来开发周期最长的游戏,从2000年立项,用了足足4年才开发完成,这次id和JC给我们带来什么?

答案是光。

直到Quake3时代,3D游戏着重于建模、贴图等,力求在现有的性能下渲染更多的多变形来尽可能贴近真实物体的形状。

可是在4年前DOOM3开始开发的时候,John Carmack就再次发挥他极高的预见性,要用下一代的引擎,把3D游戏带入一个充满光线和影子的世界!

在这之前,我们先看看现有的游戏。它们讲究多边形数量,讲究贴图细致、纹理精确。因为现实世界中,每样东西都有自己的质地,质地和细节决定了它的逼 真程度,Quake3之后,所有的游戏都在拼命发挥当前PC和显卡的性能,力求在屏幕上实现更多的多边形和清晰的贴图。而JC编写的Q3 Trinity引擎,也第一次给了游戏开发人员这个机会,让他们可以随心所欲的实现极为精细的贴图,比如墙上壁画的细节,游戏也可以借助这个引擎的多边形 能力第一次绘制出圆形和弧形的模型了,它之前和之后的所有游戏都是方方正正的。

而2004年的Farcry(孤岛惊魂)更将贴图和多边形游戏发挥到了顶峰!FC引擎以其强大的自有引擎,充分利用了当前的PC性能和显卡功效,在 游戏屏幕上绘制了有史以来最多的多边形和最逼真的贴图。它所描绘的热带小岛,大到一块岩石,小到一片叶子,都不遗余力地使用了大量的多边形和美轮美奂的贴 图来渲染,让玩家感受到了一个非常漂亮的画面。加上不错的AI人工智能,给了游戏不少可玩性。Crytek开发小组还在不断通过升级来使FC不断支持新的 显卡技术,从而FC一时成为3D游戏的标竿。Quake3的Trinity引擎在4年后终于被彻底超越了。

可是当大家渐渐习惯于精细的贴图和材质的时候,细心的玩家总觉得虚拟出的3D游戏世界缺了什么,到底是什么呢?

当把3D世界和现实世界比较的时候,细心的玩家应该发现一点,为什么3D游戏里面几乎都没有灯?没有影子?为什么视野之内所有的东西几乎都是一个亮 度?也许你在游戏之间比较发现不了这一点,可是只有当你和真实世界比较的时候,才能发现,为什么游戏里面没有“黑的地方”?诚然聪明的设计师们设法在游戏 中做出较黑的地方让你相信那里是影子,可是那不是。只是一块颜色较深的贴图罢了。因为这些游戏都缺少——光线。

现实世界中,一个物体之所以是这个物体,除了它的材质之外,它所在的光线环境更是重要。看看你周围,所有的东西都在它特定的光线和影子下。所以你看 到的视野内,每样东西的亮度都是不同的。而且每样东西的光和本身的影子都可能是动态变化的。在DOOM3之前的3D游戏中,整个屏幕甚至整个游戏亮度都是 一样,根本没有像样的光线和影子存在。这同时也是目前PC系统性能的局限,因为就算一段短小的低分辨率动态光线追踪视频,也需要专业图形工作站进行数小时 的运算才能生成。

可是JC在普通PC上最大程度的实现了这种效果!DOOM3改变了以前的这一切,它再次定义了未来3D游戏的图像发展方向——光!

DOOM3引擎实现了以前从来不能想象的光线追踪,在DOOM3世界中,所有的物体都是由不同角度的光线照射,包括那些动态的光线,它再次让游戏的 画面再次向真实世界迈了一大步!在DOOM3中,第一次实现了“动态亮度”这个概念,让用户真实体验到了一个有物体、有光线、有阴影,而且它们完全是动态 的,这样一个前所未有的虚拟世界。在这之前,别的游戏设计者只能设法欺骗你的眼睛让你相信那里有光,或者近来利用DirectX9在游戏中极少数地方放 1、2个半真半假的光源。

可是在DOOM3中,那里真的有光!而且整个游戏都有!玩家可以第一次的看到完全像真实世界的3D效果——桌下是暗的,灯前面是亮的。当你变换角度照射某个物体的时候,它的反光效果完美地跟随光源移动;当你用手电筒照射黑的地方的时候,黑的地方亮了;

Let there be light!

John Carmack再一次让他的引擎走在了时代的前面!

(二)

2004年8月,全世界终于等到了DOOM3的发布,网络上、零售商店中,再次重现了DOOM1发布时候的疯狂。玩家们终于拿到了DOOM3这款游戏。可是很多人运行了以后觉得,画面怎么没有想象中的好?

墙壁的贴图很粗糙,物体的锯齿很明显,音效也没有那么震撼,怎么回事?

因为和Quake2以后的id引擎一样,JC以他无人能超的图形编程造诣以及id公司15年来的技术积累,再次将3D引擎提升了一个太大的台阶。这个台阶大到目前的设备没有办法把它的效果发挥出来,也就是和id每次发布游戏一样:大家的机器都不够快。

要知道复杂的纹理、多边形的数量以及渲染,是JC上一代引擎Trinity追求的标准,早在2000年,JC的引擎就可以极为有效地绘制大量的多边形,并且给这些多边形贴上要多精确就有多精确的材质。在JC发布他的光线引擎的时候,PC系统的性能再一次成为阻碍。

如果要在DOOM3种展现最精确的材质,这些材质加上阴影和光线需要高达512M的显存,可是这个世界上还没有512M显存的显卡,于是id采用了 非常高级的压缩技术。为了照顾玩家的机器,低到理论值1/8,即只有64M显存的显卡也可以运行这个游戏。这还是归功于JC的优秀引擎,让DOOM3实现 了可支持设备的超大跨度,从3年前Quake3时代的设备,到2年后的设备,都可以运行这个引擎,体验这个游戏。同时DOOM3是第一款真正支持6.1声 道的第一视角射击游戏,它可以真正运算出每个声道需要的声音并且输出,而之前的游戏只是利用声卡环绕效果来模拟而已。

很多在第一时间玩了doom的人,都觉得它非常恐怖。它为什么恐怖?因为它太真实了,从没有一款FPS游戏达到这种效果,它让你相信你就在那个地方,那些晃动的影子下面有没有敌人?从地狱跳出来的魔鬼在这个真实的、有光线的世界向你扑过来,让你不由得恐怖。。。

说到了影子,正如上面提到的,DOOM3的动态光源下,物体生成了动态的影子。当玩家在游戏中用手电筒从不同角度照射一件物品的时候,可以清楚地看 到物品的影子非常真实的跟随电筒角度变化而变化,之前这只是大家梦想中的东西,可是JC再一次神奇地将大家认为不可能的效果实现在PC上。

“嘿,那个影子阿不够逼真,我用电筒照它的时候,那里应该没有那么黑。”一个玩家这么说。当这个玩家这么说的时候,他已经第一次将一款3D游戏的影 子和现实世界比较了,他可能都没有意识到那个他觉得不太逼真的影子,之前从来没有见过,他在不自觉地直接将它和真实的影子、真实的世界比较,而不再是别的 游戏。

DOOM3也是第一款不再急于把它的贴图和建模向玩家炫耀的游戏:虽然大量多边形构成了真实感十足的空间,但是你只能看到光源照射下的部分——之前 没有游戏胆敢这样做——他们总是迫不及待的告诉你,自己的游戏材质多么逼真、建模多么优秀,然后把自己能渲染出的每一个各种颜色的像素填满你的眼睛;程序 写得好的再用DirectX接口加上几个不知真假的固定“光源”,告诉你它们的游戏世界有多“真实”。而id根本不屑如此,这种事情他们5年前就做了。在 Doom3中你虽然只能看到光源下的物体,但是它展示出了真实世界应该有的样子:世界中的每个东西都同时在若干光源下,而人本身永远只能看到光源下的东西 ——这才是关键。

可以想象,之后的3D游戏,就可以凭借以DOOM3为先锋的光影引擎,模拟出一个更加逼真的世界,以后的3D游戏也终于进入了“有物、有景、有光、有影”这个新的时代。

现在抱怨DOOM3效果不好的玩家,则和当年Quake3发布的时候一样:独特的风格、超高的配置要求让很多人望而却步,而且当时没几个人可以看到 那真正圆形的屋顶。可是无数的爱好者仍然疯狂的喜爱,为什么呢?因为id从来就只是在制作他们自己喜欢的游戏,从DOOM1开始,id风格就是游戏界的 “非主流”,而且他们从来没有因为商业化而偏心过。你可以不喜欢它,但是你不能忽视它的地位。也许使用它技术的别种游戏很快就能吸引到你。

想象一下吧,以后的3D游戏拥有了复杂的多边形、细致的贴图,再加上各种颜色的动态光影,已经真正可以实现CG电影的效果了,问题只是你的机器够不 够强大。而盛传的DOOM3是jc最后一款作品的谣言也是来自于此,JC在实现了动态光影之后,他已经没有什么好研究的了——他已经打完了几乎所有的基 石,别人可以在上面构建各种风格的建筑。

DOOM3发布后,所有的显卡性能都以它为测试标准,这也是JC的惯例,他的引擎每次都成为硬件厂商的追逐标准,因为他的引擎是用最高效、简洁的编 码写成的。大家都知道,那些他实现的技术,即使他不实现,有朝一日别人也会实现,可是JC每次都能凭借他无与伦比的预见性和编程造诣,远在别人之前实现只 能存在在别人想象中的东西,并且还能维持数年领先。

到2004年8月的电脑游戏史上,Farcry标志着建模、贴图时代的结束,DOOM3则代表着光线、阴影时代的开始。

GOD SAIDS "LET THERE BE LIGHT", JC JUST GAVE 3D WORLD LIGHTS.

JC在现实中是J ohn C armack,在3D游戏界,则是无可争辩的J esus C hrist,开头提到他设计6款游戏的历史,和上帝创世一样,完全可以认为是3D游戏界的《创世纪》,现在6款游戏终于完成了,我们的上帝也该休息了,现 在盛传doom3是JC的收山之作。可是不管JC是否真的收山,有一点是肯定的:

JC之前没有FPS游戏,JC之后也不会有


作者: leonliu    时间: 2007-8-6 22:54

引用:
原帖由 卡马克 于 2007-8-6 09:08 发表
我在TG不灵的
起码不会在linux上使用硬盘缓存!





欢迎光临 TGFC Lifestyle (http://club.tgfcer.com/) Powered by Discuz! 6.0.0