精品久久久久久中文字幕,国产一区二区三区大片,国产精品视频一区二区三区四区国,国产性一乱一性一伧一色

Metaverse系列2:3D引擎是什么鬼?
2021-11-08 by uino 10.1K 行業知識 技術分享

今天聊聊BIGANT中的G。 這里的G是Game,也就是3D游戲引擎的意思,我們簡稱為3D引擎。

優锘的同學都聽過3D引擎,但很多人可能并不清楚這到底什么?如果你問李鑒、井剛,他們會跟你叨叨一些聽不太懂的話,比如:

3D引擎封裝了3D實時交互和渲染能力,包括圖像渲染、光影追蹤、法線烘培、骨骼模擬、射線碰撞、點面控制…通過渲染接口和底層顯卡交互…

就像念經一樣,不知你什么感覺,反正我聽完后有點尷尬,我特么連渲染都不知道是啥,你跟我說這些?

3D引擎到底是啥?有啥用?是怎么發展起來的?我們的T3D和ThingJS又是個啥?和業界3D引擎有啥關系?為了搞清楚這些問題,我肝了一個禮拜,嘗試用白話給大家解釋一下。

聽到"引擎"兩個字,你可能首先會想到汽車引擎,這是汽車的核心部件,提供動力的,如果沒有引擎,那么汽車就只能是一個模型,趴窩里不能動。3D模型也一樣。你用3DMax軟件制作了一個非常逼真、精美的3D模型,還有光影和動畫效果,甚至每一根發絲都是那么真實。但它是“死”的,你們不能互動,這就很差些意思。
image.png
而引擎就是給3D模型賦予了人機交互的能力,讓模型“活”起來。你可以在滿是廢墟的街道上奔跑,尋找補給,街道兩邊的建筑和光影效果都是“實時渲染”出來的,你可以利用3D引擎“編排劇情”,通過和游戲人物(NPC)互動來觸發不同的分支任務。有些任務會引發激烈的槍戰,你可以增加一大堆跑酷動作,比如“下蹲”、“奔跑”、“跳躍”、“飛翔”、“拾取”、“射擊”、“爆炸”、“躲避”等等,而且這些能力并不需要開發大量代碼,3D引擎都幫你實現了。
src=http___04imgmini.eastday.com_mobile_20200227_20200227045258_f38c76b7a1835286f9b3f33df1c0c743_1.gif&refer=http___04imgmini.eastday.gif

這就是3D引擎的能力,它給3D模型賦予了“交互方法、物理定律、劇情腳本、AI智能”,讓你不需要編寫很多代碼,就能讓3D模型在“體”、“相”、“用”三方面逼近現實世界真實的人和物,讓人感覺模型“活”了。而且與汽車引擎不同,汽車沒引擎不能跑,但游戲沒引擎是可以運行的。游戲引擎其實更像汽車工廠,本質上是一種開發游戲的軟件。

其實在三十多年前,電子游戲出現的早期,沒有游戲引擎也能開發出好游戲,我們熟悉的瑪麗兄弟、魂斗羅,都是程序員用簡陋的代碼編輯器,從零開始一行一行代碼寫出來的。
src=http___5b0988e595225.cdn.sohucs.com_images_20171220_da3ee6a8be9f466d9aa043118368d573.gif&refer=http___5b0988e595225.cdn.sohucs.gif
那時,用戶的期望很低,游戲的玩法也是很簡單,所以允許使用這種作坊式的粗糙方法。但后來游戲市場規模越來越大,用戶要求越來越高,游戲玩法也越來越復雜,這就導致游戲的代碼量變得非常巨大,程序員們發現每次做游戲都一行行敲代碼也TM太累了,能不能設計一套代碼庫,把最基礎、最常用的功能都封裝好,這樣下次做新游戲就不用重頭再來了。一開始,這種想法只是在一些游戲公司中的一小撮程序員中做直覺性的嘗試,程序員在開發某個功能時多留一個心眼,把未來可能重用的部分單獨剝離出來。這種嘗試就像荒野中微微閃現的星火,但這些零散的可重復利用的代碼塊還遠遠稱不上"引擎"。

終于,1993年一個改變時代的大神出現了,他就是約翰·卡馬克,ID Software的創始人。他設計了人類第一款3D引擎,帶領團隊在短短幾年內就創造了《DOOM》、《德軍總部》、《雷神之錘》、《狂怒》等如雷貫耳的游戲大作。今天,卡馬克被譽為FPS之父、3D游戲之父。
image.png

卡馬克和其他程序員不同(其他程序員都是先做再說,邊做邊想),咱卡哥不一樣,他在動手開發游戲之前就先設計了一整套基礎代碼的框架和開發規范,并將所有的基礎代碼寫好,還留下了方便調用的接口,比如圖像渲染接口、3D加速接口、軌跡控制接口等,這樣其他程序員在開發游戲時就可以像拼樂高積木一樣,快速搭建出各種游戲應用。這樣就使得游戲的規劃更合理,功能更穩定,并且游戲開發者只需要將精力聚焦游戲規則本身,提升了游戲開發效率。而這個基礎代碼庫就是最早的3D游戲引擎。

卡馬克開發的世界上第一款3D游戲《德軍總部3D》讓人們看到了一個全新的游戲世界、感受到極為震撼到游戲體驗。我們看看下圖感受一下~
image.png

你被震撼了嘛?如果沒有,想想這可是三十年前,那時我還在玩土,都沒見過電腦啥樣。這款游戲一出現,玩家驚呼原來游戲還能這么玩!一下子引爆了大量的3D游戲需求。

后來有一家叫“烏鴉”的游戲開發公司突發奇想,跑來找卡馬克,說你能不能把這個游戲引擎授權給我?我給你錢。卡馬克說,行。于是烏鴉公司就用這款引擎快速開發了不少暢銷游戲。這一出就把其他游戲廠商的思路也打開了,大家發現原來還有3D引擎這么個東西,還可以直接拿來用啊!于是游戲行業就誕生了一個新的細分市場:3D游戲引擎。所以,這幾乎是卡馬克憑借一人之力開創的市場,如今這個市場已經達到萬億的規模。

不過有錢的地方就有江湖。在卡馬克和他的3D游戲如日中天之時,他的競爭對手也在慢慢浮現。此后的三十年是一場漫長的游戲引擎戰爭,數十款游戲引擎在市場中激烈搏殺,直到今天還未塵埃落定,但兩大巨頭已經緩緩隱現。大家可以看一段下面的小視頻,隔著屏幕都能感受引擎江湖的血雨腥風。

今天的3D引擎已遠遠超出最初的形態,除了可復用的代碼庫(稱為引擎內核),還逐步演進出一整套工具平臺。后續我們聊聊UE引擎(Unreal)的史詩成長故事,歡迎大家點贊或留言。

主站蜘蛛池模板: 张家川| 琼海市| 永兴县| 邵阳县| 铁力市| 彝良县| 阳东县| 德格县| 铜山县| 孟州市| 南漳县| 衡水市| 剑河县| 卢氏县| 海淀区| 宜君县| 彰化市| 咸宁市| 临泉县| 宁国市| 财经| 贵溪市| 阿坝| 馆陶县| 松潘县| 佳木斯市| 荣成市| 汉源县| 乌拉特后旗| 宣城市| 永泰县| 米脂县| 巴青县| 梁平县| 云梦县| 太康县| 涞源县| 常山县| 江北区| 寿阳县| 仪陇县|