下面就是Jacob Minkoff,之前《美國(guó)末日》的首席設(shè)計(jì)師,解釋的當(dāng)喬爾在戰(zhàn)斗時(shí),這種射線技術(shù)的工作原理:“當(dāng)你按下拳擊鍵的時(shí)候,喬爾的拳頭在游戲世界的周圍發(fā)射出一束射線,同時(shí)發(fā)出這信號(hào)‘附近有什么?’。哦,這附近有一堵墻?;蚴歉浇幸粡堊雷印K匀绻惆聪氯瓝翩I產(chǎn)生互動(dòng),游戲就會(huì)讓喬爾打到一面墻上(或桌子上)。
另外一個(gè)《美國(guó)末日》中關(guān)于射線原理運(yùn)用的例子是,游戲如何利用射線原理來(lái)確認(rèn)艾莉相對(duì)于喬爾所在的位置。
上圖中展示了從喬爾身上發(fā)出的射線是怎樣確認(rèn)艾莉的潛在位置的。 其他的射線則回應(yīng)其他的問題,如某個(gè)點(diǎn)是否被一個(gè)物體擋住了,艾莉是否能看到前面,是否能看到喬爾等等。當(dāng)游戲中的人物穿墻時(shí),說明射線程序出現(xiàn)了問題,沒有給出正確的反饋。
延遲渲染(Deferred Rendering)
在這里,我們確實(shí)不想對(duì)相關(guān)的技術(shù)做深入的解釋,對(duì)這個(gè)概念,我們簡(jiǎn)單地介紹一些皮毛,因?yàn)檫@里面有太多的變量和選項(xiàng)。這項(xiàng)技術(shù)的主要內(nèi)容就是,你在屏幕上看到的東西并不是一步渲染完成的。游戲并不是拍攝一個(gè)虛擬世界并直接呈現(xiàn)在玩家的眼前,而是通過平面分層的形式,分不同的特征和細(xì)節(jié)依次呈現(xiàn)出來(lái)。
下面這張GIF圖片就展示了《殺戮地帶2》是如何依次分層渲染一個(gè)場(chǎng)景的,每一個(gè)層都計(jì)算和處理不同的元素。打個(gè)比方就是,每層依次渲染了光效、陰影、色彩、材質(zhì)等內(nèi)容,以此創(chuàng)造出一張游戲正在模仿的平面2D圖。
這就是后續(xù)處理事項(xiàng)的順序,就像這項(xiàng)技術(shù)名字所表示的那樣,一些效果是在基本的游戲場(chǎng)景渲染完之后才進(jìn)一步渲染到游戲中的,例如游戲中的動(dòng)態(tài)模糊效果和場(chǎng)景中細(xì)微的粒子效果。這些都是在游戲各種著色器和光影效果完成之后,才進(jìn)一步完整逼真地呈現(xiàn)出來(lái)的。
著色器(Shaders)
著色器的種類非常多,我們?yōu)榱撕?jiǎn)單起見就只介紹頂點(diǎn)著色器(vertex shaders)和像素著色器(pixel shaders),展示這些東西可以處理的兩種主要效果——改變游戲中的光影效果或是像素位置。像素映射(Pixel mapping)一般會(huì)影響色彩和光效,同時(shí)也可以在光效下影響表面像素的位置。看下面這張圖:
圖中展示了一個(gè)平滑的球、一個(gè)凹凸貼圖(一般的材質(zhì)都是黑白相間的)以及兩者整合到一起后就可以做出的一個(gè)很像橘子的物體。
真不愧是狗界的kk園區(qū)。
十年磨一劍
你要是《更衣人偶?jí)嬋霅酆印返姆劢z,那接下來(lái)可就要做好破防的準(zhǔn)備了……