你好,歡迎來(lái)到川北在線
微信
騰訊微博
新浪微博
以體素建構(gòu)三維游戲世界:體素游戲原理分析及技術(shù)探索
時(shí)間:2016-06-24 10:08   來(lái)源:GameRes游資網(wǎng)   責(zé)任編輯:毛青青

  體素除了能應(yīng)用于像《我的世界(Minecraft)》形式的游戲,還可以有更細(xì)致的表現(xiàn),成為下一代的三維游戲世界構(gòu)成方式,本文從技術(shù)角度分析當(dāng)中的原理及相關(guān)技術(shù)。

  引言

  現(xiàn)時(shí),主流三維游戲一般都需要龐大、精致的游戲世界(game world,或稱為游戲關(guān)卡/game level、游戲舞臺(tái)/game stage)。所謂的游戲世界,不單指玩家可見(jiàn)的三維渲染環(huán)境,也包含游戲性系統(tǒng)(游戲機(jī)制、物理碰撞、人工智能等)所需的虛擬環(huán)境。

  多數(shù)三維游戲使用三維三角形網(wǎng)格(3D triangle mesh)建構(gòu)大部分的游戲世界,包括地形、建筑、植被及其他靜態(tài)物件。一些以自然戶外環(huán)境為主的游戲,如大部分RPG、MOBA類型游戲,會(huì)使用到高度場(chǎng)(height field)去表示地形;一些室內(nèi)為主的游戲,如一些FPS、TPS、ACT等,會(huì)使用構(gòu)造實(shí)體幾何(constructive solid geometry, CSG)技術(shù)去建構(gòu)基本的室內(nèi)環(huán)境(在許多游戲引擎中稱為 BSP/binary space partitioning 筆刷)。

  游戲世界的制作占總制作成本的一大部分,而隨著游戲平臺(tái)的性能提升,以及游戲內(nèi)容需求的膨脹,游戲世界的制作成本也因應(yīng)不斷提高。以上的制作方法都各有優(yōu)缺點(diǎn)。三維網(wǎng)格是合乎當(dāng)代硬件的游戲世界表示方式,也是較自由的建模方式,而且有成熟的數(shù)字創(chuàng)作工具(digital content creation tool)如 3ds Max 和 Maya。但其缺點(diǎn)包括建模成本高、僅為表面表示方式(可能無(wú)法判斷一個(gè)任意點(diǎn)在其外還是其內(nèi))、不容易修改(尤其是在展開(kāi)UV之后)、不容易做連續(xù)或離散級(jí)數(shù)的細(xì)致程度(level of detail, LOD)等。高度場(chǎng)和 BSP 的制作成本較網(wǎng)格低,而且較容易修改和實(shí)現(xiàn) LOD,但其適用場(chǎng)合就非常局限。

  有沒(méi)有更好的三維游戲界的制作方式?此問(wèn)題一直是游戲制作的重要探索方向。

  體素

  自2009年《我的世界(Minecraft)》的空前成功,根據(jù)IGN于2013年9月的報(bào)道,Minecraft 在所有平臺(tái)上已售出共三千三百萬(wàn)份。體素(voxel)進(jìn)入開(kāi)發(fā)者的眼球,成為另一種建構(gòu)游戲世界的可行方式,見(jiàn)圖1、2。

  圖1:《我的世界》游戲截屏。

  圖2: 《我的世界》游戲玩家合作制作的《冰與火之歌》中的君臨城。

  簡(jiǎn)單類比,體素就是像素的三維版本。在二維中,我們可使用顏色的二維數(shù)組表示一個(gè)影像(image);在三維中也可以用體素的三維數(shù)組表示一個(gè)柵格化的三維空間,每個(gè)體素儲(chǔ)存一個(gè)比特,表示該空間是實(shí)心還是空心的,如圖3。這種二元體素(binary voxel)是最簡(jiǎn)單的體素形式,但體素還可以儲(chǔ)存其他屬性。例如《我的世界》的體素會(huì)儲(chǔ)存讓空間的材質(zhì)(泥土、石、水等),而在醫(yī)學(xué)上會(huì)把CT掃描得來(lái)的X射線不透光性(opacity)儲(chǔ)存在體素中,如圖4。

  相對(duì)于高度場(chǎng)地形及BSP,體素可以同時(shí)制作一般地表、山洞、建筑物等固體。

  圖3:把一些體素疊起來(lái),灰色立方體是其中之一個(gè)體素。(維基百科圖片)

  圖4:以體積宣染方法去可視化CT掃瞄的體素?cái)?shù)據(jù)。(維基百科圖片)

  破壞與建設(shè)

  由于體素?cái)?shù)據(jù)的結(jié)構(gòu)簡(jiǎn)單而均勻,它相對(duì)于網(wǎng)格來(lái)說(shuō)更容易修改。因此,游戲可以讓玩家建設(shè)游戲世界(這是一種用戶生成內(nèi)容/user-generated content, UGC),也可以讓游戲規(guī)則動(dòng)態(tài)改變游戲世界,例如可破壞物件(destructible object)、地形變形(terrain morphing)等。不單止修改,無(wú)中生有也是可能的──《我的世界》和《魔方世界(Cube World)》(圖5)等游戲都包含程序式生成內(nèi)容(procedurally generated content),后者更可以生成一個(gè)大型的RPG地圖及游戲性內(nèi)容。當(dāng)然,純粹自動(dòng)生成的內(nèi)容不一定合乎游戲設(shè)計(jì)師的要求,但某程度的程序式生成功能可以大幅降低制作成本。

  圖5:《魔方世界》完全以程序隨機(jī)生成內(nèi)容,讓玩家可以不斷探索無(wú)限的世界。整個(gè)游戲僅由一對(duì)夫妻制作。

  更細(xì)致的表現(xiàn)

  前述的游戲例子都是使用二元體素,其棱角非常突出,雖然可視為一種風(fēng)格(如8位游戲機(jī)時(shí)代的象素風(fēng)格),但是否有方法改善呢?其中一個(gè)方法,就如二維影像,我們可以提升體素?cái)?shù)據(jù)的分辨率,例如從每立方米一個(gè)體素提升至每厘米一個(gè)體素,以增強(qiáng)細(xì)致程度。然而,體積數(shù)據(jù)是以立方級(jí)數(shù)增長(zhǎng)的,所需的存儲(chǔ)容量很高。例如一個(gè) 2563 大小的體素空間含一千六百多萬(wàn)個(gè)體素(16M個(gè));而 10243 就會(huì)增長(zhǎng)至過(guò)10億個(gè)體素(1G 個(gè))。即使每個(gè)體素只占1字節(jié),也需要大量?jī)?chǔ)存空間。當(dāng)然,我們可以考慮在一般的應(yīng)用場(chǎng)合中,大量相連的體素是全部空心或?qū)嵭牡,那么我們可以使用一些?shù)據(jù)結(jié)構(gòu)去壓縮這些原始體素?cái)?shù)據(jù),如八叉樹(shù)。2010年 NVidia 就曾發(fā)表研究,展示如何高效地使用 GPU 去光線追蹤以稀疏體素八叉樹(shù)(sparse voxel octree, SVO)表示的嘲。在該研究中,每體素還存儲(chǔ)了顏色及法綫的壓縮數(shù)據(jù)。一個(gè)大教堂模型(Sibenik)壓縮后以 440MB 存儲(chǔ) 40963 的數(shù)據(jù),被渲染時(shí)的光綫追蹤能力達(dá)每秒1億光綫(圖6)。GigaVoxels也是相似的技術(shù)。Atomontage 引擎也是使用含顏色的體素?cái)?shù)據(jù),但以 的方式進(jìn)行壓縮,宣稱可以極高幀率實(shí)時(shí)渲染大型體素嘲(圖7)。

  然而,每體素儲(chǔ)存顏色/法綫的方案,未必符合游戲開(kāi)發(fā)所需。此方案的重點(diǎn),是嘲中每個(gè)細(xì)節(jié)(例如達(dá) 1cm 的精度)都可以獨(dú)立編輯。對(duì)于在科學(xué)應(yīng)用上通過(guò)掃瞄真實(shí)嘲(例如地形、建筑、生物等)得到的體素?cái)?shù)據(jù),這種 性是必須的。然而,游戲通常只需要虛擬的嘲,玩家并不在乎大教堂中的某幅墻的凹凸是否和現(xiàn)實(shí)完全相同。從嘲制作的角度看,雖然嘲能任意雕刻,十分自由,但這種自由度反而難以管理及掌控。情況有如在二維游戲中,可任意繪畫(huà)的非常巨大的地圖。這個(gè)問(wèn)題的爭(zhēng)論點(diǎn)類似在id Software的MegaTexture/虛擬紋理(virtual texturing)技術(shù)所產(chǎn)生的制作及游戲容量問(wèn)題。以下將描述利用等值面提取及數(shù)據(jù)擴(kuò)大解決細(xì)致程度及容量問(wèn)題。

  圖6: 把 Sibenik 模型體素化為40963的稀疏體素八叉樹(shù)(SVO),每個(gè)體素含顏色及法線,以GPU光線追蹤渲染。

  圖7: Atomontage 引擎實(shí)時(shí)渲染大型體素嘲,嘲可以被動(dòng)態(tài)任意破壞。

  等值面提取

  對(duì)于上述談到的棱角問(wèn)題,以光綫追蹤渲染體素時(shí),可以加入一些插值方式及法綫數(shù)據(jù)令效果更為平滑。另一個(gè)渲染方法,是在體素中儲(chǔ)存標(biāo)量數(shù)據(jù),然后提取該標(biāo)量場(chǎng)的等值面(isosurface),生成三維網(wǎng)格,再以普通的光柵化方式渲染。如果類比二維的情況,就如同提取高度場(chǎng)的等高綫(contour line),再把這些等高綫渲染。在三維的情況,我們可以存儲(chǔ)嘲的物質(zhì)密度,或是有符號(hào)距離(signed distance),作為標(biāo)量場(chǎng)。

  給定一個(gè)標(biāo)量場(chǎng),我們可以使用經(jīng)典的移動(dòng)立方體(Marching Cubes, MC)算法去提取等值面。MC 算法十分簡(jiǎn)單,只需掃瞄體素?cái)?shù)據(jù),若等值(isovalue)介乎兩個(gè)相鄰體素的值之間,便使用綫性插值求出中間的等值面頂點(diǎn),最后使用查表去決定如何把這些頂點(diǎn)連接成等值面三角網(wǎng)格。由于 MC 只能生成圓滑的等值面,不能表示銳利的頂點(diǎn)及棱,后來(lái)的對(duì)偶輪廓(dual contouring, DC)可以解決此問(wèn)題,但就需要在體素中加入法綫數(shù)據(jù),效果如圖9所示。

  圖8: 移動(dòng)立方體(Marching Cubes, MC)算法中的15個(gè)立方體組態(tài)。每條棱兩端的值與等值比較后,若一個(gè)大于等值,一個(gè)小于等值,就在該棱上線性插值生成頂點(diǎn),然后按這些組態(tài)生成三角面片。(維基百科圖片)

  圖9: 對(duì)偶輪廓(dual contouring, DC)算法可以同時(shí)保持銳利的頂點(diǎn)及棱

  CryEngine 3和C4 Engine所支持的體素建構(gòu)嘲功能,都使用了這類等值面提取方式。這兩個(gè)引擎都是以體素方式解決高度場(chǎng)地形的缺點(diǎn)(如無(wú)法表示山洞)。下一代的《無(wú)盡的任務(wù)》包括兩個(gè)作品《EverQuest Next》及《EverQuest Next Landmark》整合了Voxel Farm Engine ,全面使用了等值面提取方式的體素去建構(gòu)大型的游戲世界,包括地形、洞穴、建筑物等(圖10),而且還加入破壞/改變游戲環(huán)境的技能設(shè)計(jì)。

  圖10: 《EverQuest Next》的嘲截屏,地形和建筑物都是用體素建模,生成圓滑或尖銳邊緣的網(wǎng)格,再使用紋理映射加強(qiáng)細(xì)節(jié)及營(yíng)造游戲獨(dú)特的美術(shù)風(fēng)格。

  數(shù)據(jù)擴(kuò)大

  使用等值面提取方式后,不需要高分辨率的體素來(lái)產(chǎn)生圓滑的表面,可以說(shuō)一方面解決了棱角的問(wèn)題。但另一方面,我們?nèi)绾卧诓淮蠓黾訑?shù)據(jù)量的情況下,提升細(xì)致程度?其中一個(gè)通用技術(shù)就是數(shù)據(jù)擴(kuò)大(data amplification)──用小量數(shù)據(jù)生成大量數(shù)據(jù)。一般高度圖地形簡(jiǎn)單地采用多層重復(fù)密鋪(tiling)的紋理,也可算是一種簡(jiǎn)單的數(shù)據(jù)擴(kuò)大。這種方法也可以應(yīng)用到等值面提取上,不過(guò)它需要更復(fù)雜的紋理映射方式,例如 C4 Engine 可混合三個(gè)平面投影去混合紋理采樣(tri-planar mapping)。要避免視覺(jué)上的重復(fù)問(wèn)題,還可以考慮 Wang Tile [10] 或者其他紋理生成技術(shù),這可能涉及如何參數(shù)化(parameterize)等值面的問(wèn)題?梢詤⒖磮D11《EverQuest Next》的例子。

  圖11:《EverQuest Next》混合兩個(gè)投影紋理,以映射至任何拓?fù)浣Y(jié)構(gòu)的生成網(wǎng)格。

  除了表面的紋理外,還可以加強(qiáng)幾何方面的復(fù)雜度,例如我們可以使用位移貼圖技術(shù)(displacement mapping)去為表面加上更多細(xì)節(jié)。

  數(shù)字雕刻與其他建模方式

  之前談及許多體素的表示方式,以下再談可如何建立、編輯這些數(shù)據(jù),用圖形學(xué)的述語(yǔ),就是建模(modeling)。體素非常適合數(shù)字雕刻(digital scupting),即是把體素當(dāng)作粘土,提供貼土、推入、拉出、磨平、捏造等工具去制作模型。Mudbox(圖12)和 ZBrush 是現(xiàn)成的數(shù)字雕刻工具,但這類工具通常是基于對(duì)表面網(wǎng)格幾何作出修改,而不能改變模型的拓?fù)浣Y(jié)構(gòu)。采用體素就不會(huì)出現(xiàn)這種拓?fù)鋯?wèn)題,但相對(duì)地其編輯工具還未成熟。

  圖12:使用 Mudbox 在模型網(wǎng)格上進(jìn)行數(shù)字雕刻,F(xiàn)時(shí)這類技術(shù)通常用于角色建模及紋理,通過(guò)法線/位移貼圖去增加細(xì)節(jié)。

  體素的一個(gè)特點(diǎn),是可以簡(jiǎn)單地實(shí)現(xiàn)構(gòu)造實(shí)體幾何(CSG)。為了更容易建模,可以使用CSG去為建筑等人工物建模,在運(yùn)行時(shí)才體素化。這樣比直接雕刻省時(shí),容易修改,而且更能節(jié)省容量,并更適合一些自動(dòng)生成算法。以二維來(lái)類比,就像在Photoshop中使用矢量形狀編輯,需要時(shí)才光刪化成像素。另外,對(duì)于普通的三維網(wǎng)格,也可以進(jìn)行體素化,但并不容易保存原來(lái)的紋理映射。

  高級(jí)渲染技術(shù)

  除了等值面提取及紋理貼圖等技術(shù)外,體素在渲染上還有很多可發(fā)展的技術(shù)。由于體素適合光線追蹤,近年有一些研究使用了體素為基礎(chǔ)的實(shí)時(shí)全局光照,例如體素圓錐追綜(voxel cone tracing)。如果游戲世界本身已經(jīng)是由體素組成,就省卻體素化(voxelization)的步驟。而這種全局光照,除了常見(jiàn)的慢反射表面(diffuse surface)的二次反射,還可以實(shí)現(xiàn)面積光源、光澤反射/折射(glossy reflection/refraction)材質(zhì)等效果,如圖13。

  圖13:利用體素圓錐追綜制造全局光照。光源從上而下,在地面反射至拱門(mén)天花,紅布也有滲色(color bleeding)至天花。另外留意地面材質(zhì)含有光澤反射。(此嘲本身是以三角形網(wǎng)格渲染。)

  游戲性技術(shù)

  當(dāng)然,游戲并不僅是一個(gè)實(shí)時(shí)渲染器,游戲的重點(diǎn)是游戲性(gameplay)。許多二元體素游戲已經(jīng)展示出一些與別不同的游戲性元素,在此不作詳細(xì)分析。但在技術(shù)層次上,我們還需要解決一些動(dòng)態(tài)體素世界的問(wèn)題,主要有物理和人工智能方面。在物理方面,最基本的要考慮等值面與剛體形撞的碰撞檢測(cè)、支撐分析(切割后懸空的部分可能需要掉落,甚至因結(jié)構(gòu)問(wèn)題而斷裂),此外也可研究相關(guān)的流體模擬、燃燒模擬。人工智能方面,最基本是視線查測(cè)及路徑搜尋。體素也可利于進(jìn)行地理上的推理分析。

  結(jié)語(yǔ)

  傳統(tǒng)的游戲世界在游戲性、制作上都有一定限制,基于體素的制作方式可帶來(lái)各種創(chuàng)新,提高游戲品質(zhì)并控制制作成本。然而,顛覆傳統(tǒng)需要各方面的配合,游戲設(shè)計(jì)、關(guān)卡設(shè)計(jì)、美術(shù)制作、游戲性編程都要注入新的思維,也必須輔以扎實(shí)的工具及制作流程。在引擎技術(shù)上,需要解決大規(guī)模世界的多分辨率建模、依 LOD 作資源串流、實(shí)時(shí)渲染、物理模擬、人工智能等各個(gè)方面的需求。

  或許這也是一個(gè)機(jī)遇,可以開(kāi)拓另一條游戲技術(shù)道路,制作未來(lái)具技術(shù)壁壘的創(chuàng)新游戲。

   投稿郵箱:chuanbeiol@163.com   詳情請(qǐng)?jiān)L問(wèn)川北在線:http://m.sanmuled.cn/

川北在線-川北全搜索版權(quán)與免責(zé)聲明
①凡注明"來(lái)源:XXX(非在線)"的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。
②本站所載之信息僅為網(wǎng)民提供參考之用,不構(gòu)成任何投資建議,文章觀點(diǎn)不代表本站立場(chǎng),其真實(shí)性由作者或稿源方負(fù)責(zé),本站信息接受廣大網(wǎng)民的監(jiān)督、投訴、批評(píng)。
③本站轉(zhuǎn)載純粹出于為網(wǎng)民傳遞更多信息之目的,本站不原創(chuàng)、不存儲(chǔ)視頻,所有視頻均分享自其他視頻分享網(wǎng)站,如涉及到您的版權(quán)問(wèn)題,請(qǐng)與本網(wǎng)聯(lián)系,我站將及時(shí)進(jìn)行刪除處理。



圖庫(kù)
合作媒體
金寵物 綠植迷
法律顧問(wèn):ITLAW-莊毅雄律師