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

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

《新神》的像素風(fēng)格和多圖層渲染

2021-02-20 11:41 作者:新神制作組  | 我要投稿

《新神》剛開始開發(fā)的時候,考慮到成本和能力限制,我決定做成 2D 像素風(fēng)格游戲。不過,像素風(fēng)格不代表容易或簡陋,實際上可能比非像素還難做?,F(xiàn)在的像素風(fēng)格已經(jīng)不是 FC 時代那種淳樸的像素風(fēng)格了,比如 17 年 E3 上驚艷世界的《The Last Night》就用到了光照、反射、景深、體積光等現(xiàn)代 3D 游戲技術(shù)。雖然此游戲至今都沒做完,但憑借優(yōu)秀的美術(shù)已賺足了關(guān)注。

The Last Night

《The Last Night》給了我啟發(fā),我決定在像素風(fēng)格基礎(chǔ)上加入 PBR 光照,同時啟用 HDR 渲染。渲染時使用原始分辨率,僅讓物體像素化。這樣一來,2D 物體就有了“厚度”感,簡潔的像素配上光照也顯得很精致。

但要實現(xiàn)這一點并不輕松?!缎律瘛肥请p搖桿射擊游戲,這意味著物體是可以旋轉(zhuǎn)的。另外為了更好的相機控制,畫面需要支持縮放。一般游戲?qū)崿F(xiàn)旋轉(zhuǎn)和縮放都不是問題,但像素游戲就麻煩了,因為像素圖案可能變得邊緣模糊、難以辨識。這與貼圖的采樣原理有關(guān)。

下左圖是直接放大三倍的原始像素圖,看起來沒問題;將它旋轉(zhuǎn)一定角度后就變成了下中圖,這時我們發(fā)現(xiàn)它的像素輪廓變得雜亂;您可能發(fā)現(xiàn)這是因為 Point Filter Mode 的結(jié)果,于是換成了 Bilinear Filter Mode,結(jié)果就是下右圖,雖然看不到雜亂的輪廓,但物體也變得模糊了,因為原圖分辨率不足。

最直接的解決辦法是,將原始圖像放大幾倍再渲染,但這會占用放大倍數(shù)的平方倍的顯存,對工作流也會產(chǎn)生巨大影響。因此我沒有這樣做,我的做法是將像素圖矢量化。在商店資源 Pixel Mesh Builder 的基礎(chǔ)上,我加入了法線、自發(fā)光和平滑度的支持,并且將所有信息存儲在一個 Mesh 上。在渲染時,開啟 MSAA 即可產(chǎn)生既銳利又平滑的像素邊緣,也可以不受限制地旋轉(zhuǎn)和縮放了。

4 in 1

至此像素風(fēng)格的技術(shù)問題基本解決了,但畫面表現(xiàn)力仍然不足。對比《The Last Night》就可以發(fā)現(xiàn),它的畫面富有層次,并且還有虛化效果。于是,我決定加上更多的 2D 圖層。

這方面很多 2D 游戲都做得不錯,其中《Ori》系列給我留下了深刻的印象。之前看過一篇文章,《Ori》的開發(fā)者分享了他們的多圖層實現(xiàn)方案。他們將不同的圖層分別獨立渲染然后混合起來,而不是放在一起渲染。

Ori and the Will of the Wisps

將不同圖層分別獨立渲染的好處是,可以分別設(shè)置每個圖層的渲染質(zhì)量、渲染縮放以及整體顏色系數(shù),還可以將圖層模糊以模擬鏡頭虛化。因為虛化的圖層并不需要渲染的很清晰,因此分辨率不必太高。通過調(diào)節(jié)每一層相機的 Orthographic Size 即可控制渲染縮放,同時也讓每個圖層運動速度產(chǎn)生了差異,模擬出透視效果。整體顏色系數(shù)可以用來微調(diào)各層的亮度和顏色,甚至可以讓前景半透明,以免擋住玩家視線。

在《新神》里,我通過改造 Unity 通用渲染管線實現(xiàn)了多圖層渲染。這里有幾個細節(jié)值得一提。

第一個是支持透明通道的模糊算法。比方說求兩個顏色的平均色,正確結(jié)果應(yīng)該是 (x.rgb*x.a+y.rgb*y.a)/(x.a+y.a)。細節(jié)不好解釋,您可以自己推理一下看看。

然后是模糊半徑。為了在不同分辨率的屏幕上保持鏡頭虛化程度一致,你需要實現(xiàn)一種分辨率無關(guān)的模糊。我做了一些近似處理,不同分辨率下看起來差異不大。

最后是半透明的渲染和混合。游戲的渲染機制決定,在透明 RT 圖層上渲染,以及將 RT 圖層混合起來都需要預(yù)乘 Alpha 通道,我肚子疼就不多作解釋了。

如果您對《新神》感興趣,請支持我們的眾籌,謝謝!傳送門見評論區(qū)。

《新神》的像素風(fēng)格和多圖層渲染的評論 (共 條)

分享到微博請遵守國家法律
威远县| 大化| 金昌市| 云浮市| 滨州市| 钟祥市| 内江市| 五家渠市| 沅江市| 龙门县| 海丰县| 滕州市| 林周县| 罗定市| 家居| 黄平县| 嘉鱼县| 塔河县| 哈巴河县| 阿城市| 霍州市| 闸北区| 聊城市| 通辽市| 常熟市| 绍兴县| 鄂托克旗| 青阳县| 松阳县| 依安县| 调兵山市| 根河市| 乾安县| 贡山| 邯郸市| 肥乡县| 陇川县| 望都县| 蒲城县| 卢龙县| 长白|