[探討]遊戲中的"底片顆粒" --一種致敬膠片電影"質感"的畫面後處理

在電影拍攝數字化之前,電影的放映往往是使用膠片,或者膠片的數字拷貝

早年使用膠片拍攝的電影由於感光層材料的問題,所以畫面往往呈現的非常有顆粒感

這從技術層面分析叫"噪點"

這是一張星際穿越的IMAX膠片掃描圖,可以看到庫柏(Cooper)的臉部呈現了很多的顆粒感

這就是我們所說的"噪點"

Adobe

雖然從技術的角度來說"噪點"這個東西大概算不上什麼好東西

不過因爲畫面有顆粒感(噪點)的影視作品是很多人回憶的一個重要要素,所以很多人稱其爲"質感"

很多遊戲也通過一些方法制作了"底片顆粒"的畫面選項

通過圖形學的數學算法來模擬老膠片老電影的顆粒感

我們這一期來探討一下底片顆粒畫面選項的實現邏輯

生成噪點紋理

常見的噪聲類型有Perlin noise、Simplex noise、Gaussian noise等。最常用的是僞隨機噪聲或高斯噪聲。

僞隨機數生成器(PRNG)

計算機的操作是確定性的,因此無法產生真正的隨機數。

所以,計算機使用僞隨機數生成器(PRNG)來生成一系列假的隨機的數字。

這些生成器,熟悉編程語言的朋友們都知道,使用到了種子數的算法,你以爲是隨機的,其實帶有確定性.

不過我實在是太菜了,只知道個大概,所以沒辦法再帶大家深入瞭解這個了

2. 生成均勻分佈的隨機數

高斯噪聲需要服從正態分佈,因此需要將均勻分佈的隨機數轉換爲正態分佈。

matlab的rand,當然做遊戲不是用matlab做的,只是舉例

3. 將均勻分佈轉換爲正態分佈

爲了生成高斯噪聲常常將均勻分佈的隨機數轉換爲正態分佈的隨機數

時間變化Temporal Variation

爲了避免靜態的噪聲圖像看起來不自然,很多遊戲會在每一幀中對噪聲進行微小調整。這麼搞可以模仿電影中的隨機顆粒抖動

貌似還可以通過噪聲圖來生成新的噪聲圖。

遊戲中被大家詬病的另一個選項"TAA抗鋸齒"其實也可以被理解爲時間變化Temporal Variation的一種應用

從某乎順來的圖

基於亮度的權重

許多底片顆粒效果會根據圖像的亮度進行加權。暗處顆粒通常更明顯,亮處顆粒就被減弱。通過這種亮度的權重,噪聲分佈會更自然一點點。

分辨率與縮放

爲了模擬真實膠片的顆粒感,噪聲的分辨率可能比屏幕分辨率低。通過在更低分辨率下采樣並縮放回原始分辨率,可以使顆粒看起來更加自然,避免過於細膩或平滑

圖源機器之心

你應該開嗎?

我個人認爲,如果你不太懂什麼質感不質感這種概念,只追求畫面的清秀,最好就不要開"底片顆粒",把他全部關掉

如果你喜歡復古電影那種感覺,那這個畫面選項可以很好的復刻那種效果

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com