最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【起源粉進(jìn)階修煉】V 社游戲引擎畫面渲染發(fā)展的科普

2023-08-13 20:05 作者:B1ueMicr0  | 我要投稿

V 社引擎現(xiàn)在分為三大版本,GoldSource(金源),Source(起源)和 Source 2(起源 2)。它們?nèi)齻€(gè)的隔代差距很大。

其實(shí)三者代表著三個(gè)實(shí)時(shí)渲染的時(shí)代,那么具體是怎么回事呢?

金源 | 起源?| 起源 2

我們總結(jié)一下三款引擎渲染層的特性:

金源

· 最基本的紋理映射(Texture Mapping),該技術(shù)讓二維紋理映射到三維空間內(nèi),俗稱貼圖技術(shù)。

· 低級(jí)光照模型(環(huán)境光 + 漫反射),給予最基本的漫反射光照效果。

· 輻射度算法烘焙的光照貼圖。

起源

· 輻射度算法烘焙的光照貼圖。

· 高級(jí)光照模型(環(huán)境光 + 漫反射?+ 馮氏 Phong 高光),依托起源的新著色器系統(tǒng)來實(shí)現(xiàn)。

· 基于著色器的渲染系統(tǒng)

這個(gè)是值得注意的,不知道你發(fā)現(xiàn)沒有,半條命 2 的宣傳語(yǔ)有一段這樣的話:

“Source 基于著色器的渲染器與 Pixar 公司制作《玩具總動(dòng)員》、《怪物公司》等電影時(shí)使用的一樣,創(chuàng)造出了異常絢麗和真實(shí)的場(chǎng)景,在視頻游戲中前無古人?!?/p>

其實(shí)這個(gè)說法并不嚴(yán)謹(jǐn),但也不算錯(cuò)?,F(xiàn)代實(shí)時(shí)渲染著色器的概念是微軟搞出?Shader Model 后正式引進(jìn),然而計(jì)算機(jī)圖形學(xué)界將渲染管線上的任何一個(gè)部件都定義為了 “著色器”。

也就是從絕對(duì)嚴(yán)謹(jǐn)?shù)慕嵌葋碇v,金源也包含著自己的一套著色器系統(tǒng),但是和我們實(shí)際使用和叫法的習(xí)慣不一樣。玩家們一般討論的著色器是決定?材質(zhì)(Material)表現(xiàn)?的一種程序,很少具體涉及到什么頂點(diǎn)像素幾何計(jì)算著色器。包括接下來談到的也是。

舉個(gè)更形象的例子,這就像英偉達(dá)把自己奉為 GPU(圖形處理器)的發(fā)明者,然而這種說法是偏向于商業(yè)話術(shù),我們都知道 SGI 比英偉達(dá)更早實(shí)現(xiàn) GPU 技術(shù)上的功能,但英偉達(dá)的說法也不算錯(cuò),因?yàn)樽约郝氏仍谏虡I(yè)上用 “GPU” 來宣傳自己。

回到正題,這個(gè)基于著色器的渲染器是什么到底是什么玩意?

這里,我放出 2005 年 PS3 主機(jī)發(fā)布會(huì),黃仁勛的一張演講 PPT:

這里出現(xiàn)了 Texture Mapping(紋理映射,剛剛講金源所提到的)和 Shaders(著色器),顯然,紋理映射的計(jì)算速度非???,在 PS2 級(jí)別主機(jī)上就能流暢運(yùn)行,那個(gè)世代對(duì)應(yīng)著金源引擎。但是問題來了:我的材質(zhì)如何表現(xiàn)得更真實(shí)?如果是人的皮膚材質(zhì),如何體現(xiàn)出它的高光反射效果?

這就需要著色器了。我們來對(duì)比一下紋理映射(金源)和著色器系統(tǒng)(起源)的流程:

左:傳統(tǒng)紋理映射 右:基于著色器的渲染

顯然著色器系統(tǒng)包含了紋理映射的同時(shí),還有一條著色器指令執(zhí)行計(jì)算的管線。在材質(zhì)輸入上,除了紋理,還有法線等。

在著色器中,法線是極其重要的,知道了法線是什么樣就等于知道了光照是什么樣的,因?yàn)槎鄶?shù)著色方程都包含?(n%20%5Ccdot%20l)%5E%2B 這個(gè)式子,也就是 法線 點(diǎn)乘 光源,可以決定光照的明暗。例如起源引擎所使用的 Half-Lambert 漫反射方程,用來求解著色樹的 Diffuse 項(xiàng):

I_d%3DI_i%20%5Ccdot(n%20%5Ccdot%20l_i)

其中:

I_d?:出射光照。

I_i?:入射光照。

n%20%5Ccdot%20l_i?:余弦項(xiàng)。V 社把它的值域限制到了?%5B0%2C1%5D 而不是傳統(tǒng)余弦波瓣的?%5B-1%2C1%5D?,這意味著起源引擎的光照過渡會(huì)比較平緩。

這里放出半條命 2 的著色樹結(jié)構(gòu):

上圖,起源引擎通過基于著色器的渲染系統(tǒng)為 Alyx 實(shí)現(xiàn)了更加真實(shí)的光照效果。

2001?年,英偉達(dá)推出首款可編程著色器的?GPU,配合微軟的 DirectX 8,著色器的靈活性大幅上漲,在那之后,游戲畫質(zhì)開始出現(xiàn)快速增長(zhǎng)的趨勢(shì)。

至于宣傳所使用到的《玩具總動(dòng)員》等等話術(shù),其實(shí)硬要挑刺能挑出來很多,甚至能直接說它是錯(cuò)的,因?yàn)楸旧黼x線渲染(電影)和實(shí)時(shí)渲染(游戲)就完全不是一個(gè)級(jí)別的東西。

不過對(duì)普通玩家來說,這說的確實(shí)沒錯(cuò),起源相對(duì)于金源確實(shí)是從傳統(tǒng)的紋理映射跳到“影視級(jí)”的著色器時(shí)代了。

但同時(shí),基于著色器的渲染系統(tǒng)對(duì)顯卡性能的要求上升了很多。然而對(duì)于 HL2 來說,一開始甚至提供了 DirectX 7 的支持,使得 GeForce 256, GeForce4 MX440? 這類不可編程著色的 GPU 能正常運(yùn)行,隨之而來的也就是畫面打折扣了,例如水面直接成為了一張普通的動(dòng)態(tài)紋理,顯然使用了經(jīng)簡(jiǎn)化的著色器系統(tǒng)??梢哉f起源引擎本身還是比較 scalable 的。

上面就是關(guān)于起源引擎的東西了。起源引擎基于著色器的渲染代表著可編程著色的新時(shí)代,直到今天,我們也仍然受益。接下來,我們就要進(jìn)入現(xiàn)代了。

起源 2

· 可編程性更高的基于著色器的渲染系統(tǒng)。

· 光線追蹤烘焙的光照貼圖。相比于前兩代的輻射度算法,光線追蹤能帶來更加高頻的細(xì)節(jié),烘焙光照更加精細(xì)。

· 基于物理渲染的光照(Physically-Based Rendering,?PBR)

PBR 大家應(yīng)該都不陌生了,作為現(xiàn)代游戲引擎的標(biāo)配技術(shù)之一,這里不過多展開。

簡(jiǎn)而言之,PBR 讓材質(zhì)有了真實(shí)的質(zhì)感,而不僅僅停留于有更加真實(shí)的光照效果。PBR 的基礎(chǔ)是雙向反射分布函數(shù)(BRDF),這里也不展開,感興趣的可以看我寫的 s&box 開發(fā) wiki:?S&box 的著色器 - S&boxWIKI_BWIKI_嗶哩嗶哩 (biligame.com)

這里給出兩張起源 1 和起源 2 的對(duì)比圖,可以直觀地看出起源 1 傳統(tǒng)的光照和起源 2 基于物理渲染的光照有什么區(qū)別:

可以看出,地板和墻壁更有質(zhì)感了。這樣的質(zhì)感是怎么實(shí)現(xiàn)的呢?答案就藏在 PBR 的雙向反射分布函數(shù)里,它可以決定材質(zhì)表面法線的分布,以此來做出不同的材質(zhì)光照的質(zhì)感。(誒又是法線看到?jīng)]有,法線很重要的)

起源 2 使用了基于現(xiàn)實(shí)中總結(jié)物理實(shí)驗(yàn)得出的 GGX?反射分布(它在 1975 年就已經(jīng)被提出,不是 V 社搞的),GGX 使得起源 2 的高光質(zhì)感表現(xiàn)得非常優(yōu)異。更詳細(xì)的資料參見這篇論文:S. Trowbridge and K. P. Reitz, "Average irregularity representation of a rough ray reflection". Journal of the Optical Society of America, 65(5):531–536, May 1975.

起源 2 就相當(dāng)于代表著現(xiàn)在 PBR 渲染的時(shí)代,隨著時(shí)間的推移,硬件性能不斷地呈爆發(fā)式增長(zhǎng),游戲畫面渲染也開始逐步轉(zhuǎn)向基于物理的,符合真實(shí)的復(fù)雜數(shù)學(xué)算法,而不是經(jīng)驗(yàn)性的,絕對(duì)理想化的簡(jiǎn)單算法了。

說了這么多,也差不多該到尾聲了。

開頭我提到,三者代表著三個(gè)實(shí)時(shí)渲染的時(shí)代,具體就是金源的貼圖時(shí)代,起源的著色器時(shí)代以及起源 2 的基于物理渲染時(shí)代了。這三個(gè)時(shí)代都誕生了非常經(jīng)典的優(yōu)秀作品,也見證了游戲技術(shù)的發(fā)展和成熟。

下一個(gè)時(shí)代具體會(huì)是什么樣的,誰(shuí)也不知道。

我們的終極目標(biāo)是實(shí)現(xiàn)完全物理的實(shí)時(shí)渲染,也就是所有場(chǎng)景的光照,反射,陰影等等都是實(shí)時(shí)地通過物理正確的方程來計(jì)算。

然而這是一種極大的算力開銷(從 Portal RTX 就能看出來,然而這玩意也是被砍成殘廢了的,和離線渲染器的超高采樣沒法比),目前我們能做的只有處處妥協(xié)。

但是,說不定哪天加速算法上又有突破了呢?或者是直接不用幾何光學(xué)用波動(dòng)光學(xué)體系了呢?如果只要效果,那咱們耍個(gè)流氓,說不定哪天生成式 AI 做光照被廣泛應(yīng)用了呢?

誰(shuí)也說不準(zhǔn)。

where is your future?

“壞消息是,我們還有很長(zhǎng)一段路要走......

......好消息是,我們還有很長(zhǎng)一段路能走?!?/strong>

—— 選自計(jì)算機(jī)圖形學(xué)圣經(jīng)《Fundamentals of Computer Graphics》

【起源粉進(jìn)階修煉】V 社游戲引擎畫面渲染發(fā)展的科普的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
康保县| 天津市| 台安县| 惠来县| 老河口市| 宿州市| 黔西县| 福贡县| 舞钢市| 托里县| 桐梓县| 黑龙江省| 栾川县| 寻甸| 天水市| 邛崃市| 成安县| 黄冈市| 台中市| 麻阳| 普兰县| 甘洛县| 怀来县| 二连浩特市| 桃园市| 新余市| 临潭县| 阿克陶县| 维西| 巴林左旗| 罗江县| 焉耆| 巩义市| 额尔古纳市| 米脂县| 达尔| 龙里县| 勃利县| 威远县| 麻城市| 荥阳市|