遊戲色彩101(入門必看)
筆者基於過往的一個美術向講座整理成本文內容,主要希望幫助美術同學建立起顏色的底層邏輯框架。由於筆者負責的是寫實風格的專案,所有問題均從寫實角度進行思考,因此可能不完全適用於非寫實專案。文章如有錯誤和疏漏,歡迎大家指正和交流。
一、Light & Color
1. Light
Radiometry(輻射度量學)中的光即Electromagnetic radiation(電磁輻射),是客觀物理量,可測量。人可感知的光的波長範圍很小。
2. Color
顏色它不是一個客觀物理量,而是一個感知結果。
對於人來說,人眼接受到光的能量,最終將刺激傳遞給大腦解析,產生出“看到的image”。因為人與人之間的人眼、大腦的差異,對同樣的光,感知到的色彩會不同。
例如下面這件衣服("The dress"),很多人認為是black and blue, 也有很多人認為white and gold。
人的視網膜上的用來感知色彩的細胞主要是Cone cells,它被分為了3類,分別對短、中、長波長的光波有較強的感知能力,這也是為什麼三原色的色彩模型能夠較好的表達顏色。
自然界中,人眼接受到的光一般都是不同的波長的光波疊加到一起的。這個不同波長的光的成分組合,一般用光譜來描述。
同色異譜和色彩還原
同色異譜
前面說了人對色彩的感知過程,是將物理量(光)最終主觀轉換為顏色。實際上,這個過程中,不同的輸入可以有相同的輸出。
同色異譜現象簡單來說就是人感知到的顏色相同,但是光譜組成不同。下圖左邊是拍攝的一張太陽的照片,右邊是顯示器裡顯示的一個太陽,人感知到的色彩類似,但是實際光譜完全不同。
色彩還原(Color Reproduction)
Computer Graphics其實就是計算出一個color image,然後透過顯示器發出的光,利用同⾊異譜現象,讓觀看者看到製作者模擬的畫面。這個過程就是Color Reproduction。
目前所有人造顯示裝置可發出的光的波長、能量這些都是非常有限的,所以無法重現所有的人可感知的色彩。
印刷物、電影銀幕這些其實也是在做Color Reproduction,只不過它們不是自己發光,而是靠反彈光。
二、Color in Game - Overview
我們作為遊戲開發者,其實就是把Color Reproduction從頭到尾做一遍。
對於寫實專案來說,目標就是一個:色彩的高保真(high fidelity)。就跟音響領域裡的HiFi的含義一樣,色彩高保真就是要儘可能還原出人眼看到的顏色(感覺跟“Photorealistic”類似)。
遊戲引擎裡的Color Pipeline:
上面是從COD的ppt里扣出來的一張圖,大部分引擎的這個管線差別不會太大。我個人將引擎內對顏色的處理分為了2個階段:
整個管線的輸入,是各類美術資產(貼圖、模型、材質等)、幾十上百個引擎引數。輸出則是一個image資料,給到顯示驅動顯示到螢幕上。最終螢幕硬體發出的光線,夾雜著各類環境光進入人眼,交由大腦解析,完成了color reproduction。
三、Color Pipeline - 模擬光線的傳播
這部分其實就是基於材質和燈光引數,計算光照,最後算出線性的HDR color的結果。
因為是在模擬光的傳播,這是一個客觀的可測量的過程,所以很多科學技術手段可以用上,例如photogrammetry的各種思路和工具流程。這一步其實對於寫實遊戲來說,很像是在做“計算機模擬”,只是多了一步美術設計。
這裡涉及到的工作內容,絕大部分都是有正確性基礎和物理值參考的:
* 光比、材質的PBR引數
* 引擎基於物理模型實現的lighting model和各種特性(例如procedural sky、volumetric fog等等)的輸入引數
* 其他
所以對於高水平的團隊,這一步可以做到非常準確和可靠。
它要求有很好的科學思路和流程,否則幾乎必然會出問題,最終導致最終效果問題難以定位和收斂(最怕的就是用錯誤的做法去修復另一個錯誤)。而這一步的正確性的保證,能把整個色彩高保真的問題的複雜度大幅降低,因為color pipeline的後續部分,絕大部分都是偏主觀的,沒有絕對的“正確”,很難做到完美的還原真實性。
另外,這一步的輸出是HDR color,它的值可以跨越零到幾萬的範圍,例如在我的測試場景裡的幾個典型的亮度值如下圖所示:
(注意:這算不上是一個標準的燈光場景)
因此,千萬不要基於最終效果去隨意調整燈光引數,他們完全不是線性關係,這也是美術難以駕馭HDR管線的最主要的原因之一。
四、Color Pipeline -顏色後處理
這一步主要包含2部分:
模擬人對顏色的感知行為(Color Perception)
實現顏色資料的轉換
1、模擬人對顏色的感知行為
這一步很難像前面的步驟那樣,有直接可用的物理模型或者直接可獲取的物理參考值,無法量化。
這一步必然需要引入人的主觀判斷,需要使用科學的方法,由色彩感受能力強、有理論知識、掌握必要工具和分析能力的美術來把控,技術側提供方法、理論、工程上的支援。
這一步,它不那麼依賴於團隊的工業化水平,沒涉及到那麼多的分工,也不像資產生產那樣需要長週期驗證。可能一個能力超強的燈光師或者TA,就可以成為一個game changer,花幾天時間對引擎內的引數做下調整就可以讓寫實度上升一個level。我覺得這也是為什麼現在有不少UE5的小團隊遊戲都能把寫實度做的極高的原因之一。
在這一步要做哪些事情呢?其實遊戲業大量參考了攝影界的做法。
(1)曝光
目標效果
其實玩攝影的同學就會很清楚,正確的曝光幾乎是整個畫面好壞的最關鍵的一環。過分的under-exposure或者over-exposure,不僅會導致色彩丟失,更會影響寫實度,比如白天看著不像白天。
下圖是一個典型的under-exposure的例子。大部分物體的固有色都難以分辨,整體光感很奇怪,完全不像是一個晴朗的白天的感受。如果不考慮“強風格化”的話,這個案例的色彩保真度比較低,即使資產、光比等等都做的比較正確。
另外,曝光的結果(亮度縮放過的HDR color)是後續調色和色彩空間轉換步驟的輸入,而後面這部分顏色操作是非線性的,尤其是對輸入當中的那些很亮和很暗的顏色。曝光決定了哪些顏色進入到這些“高非線性區間”,因此對整體結果在另外一個層面又有了巨大的影響。參考下面截圖中不同曝光對於天空顏色的影響:
那麼怎麼確定曝光的值呢?其實這裡有2個方面的訴求:色彩高保真,風格化。
對於風格化來說,其實曝光要跟著風格化調色來一起做。沒深入研究過,這裡就不展開了。
對於色彩高保真來說,一方面可以參考攝影行業的Sunny 16 rule之類的“標準值”,另一方面則可以基於照片或者人眼感受作為reference。總之核心問題就是,不要在曝光的問題上強行參雜美術設計,要以reference為基礎。像情緒、氛圍這些,應該基於其他層面的美術設計去達到目的,例如場景結構、物件設計和擺放、天氣、TOD時間之類的。參考下面的截圖:
相關功能
自動曝光的工作原理是整體縮放畫面中所有畫素的亮度,所以它被歸類為global exposure。其目標是”讓畫面的平均亮度達到一個類似中度灰的亮度“。
它是用來調節畫面曝光的最主要的功能。
引擎層面的”基於物理的渲染“的一個很重要的部分就是physically based camera,所以基本上相機上有的曝光功能和引數,引擎裡都有。
需要說明的是,人的色彩感知系統的”自動曝光“能力是有限的,例如中午大太陽的室外人眼看著會覺得很亮和刺眼,晚上實在太黑了也會看不清。所以必須基於人的這一感知行為進行手動的曝光控制才行。例如下面幾張遊戲截圖裡的大白天就故意調的略為偏亮(over-exposure)。
當畫面中同時存在大面積的很亮和和很暗的區域的時候,自動曝光功能就沒法解決曝光問題了,因為它是對畫面所有畫素亮度的整體縮放。這個問題在一些沒怎麼做過後處理處理影片中可以明顯看到:
而人的色彩感知系統是有很強的區域性調節亮度的能力的,參考下圖(iphone HDR實拍 + 調後期,近似還原了我當時的感受):
可以看到,在自然的光照環境下,人感知到的色彩不太會出現大面積的死黑和爆白。
區域性曝光(local exposure)能對畫面中各子區域施加不同的亮度縮放值,讓原本很黑或者很亮的區域都能保留一些原本的顏色,模擬了人的色彩感知行為,極大的提升了色彩保真度。
UE5已經實現了這個功能(對馬島的方案),能解決相當一部分問題。但是因為演算法關係,難以處理極端情況(引數不能調太高)。所以有一些遊戲也會嘗試一些其他方案來輔助,例如戰神使用了”exposure lights“。另外為了緩解這個問題,大部分遊戲都會降低自然光源和人造光源之間的光比,例如CyberPunk2077和鏡之邊緣都將太陽光亮度降低了100倍。
(2)白平衡
白平衡(white balance)簡單理解為是一種對色彩整體的修正。相機裡都自帶auto white balance功能。如果把它關掉的話,拍出來的照片的色彩會非常un-natural,參考下圖:
攝影師基於自己實際感知到的色彩,對white balance進行修正之後如下圖:
從上面的對比中可以看到,人眼的auto white balance機制從結果上看是有點像de-lighting的,即感知到的色彩一定程度上降低了光源的影響,更接近物體固有色一些(因為進化方向是人需要更好的識別出物體本身的資訊?)。
White balance這個對整體色彩的保真度影響巨大,而且引擎沒有auto white balance的功能,需要手調引數才行。UE4預設的White balance是6500k。
另外它也存在跟曝光類似的問題,即同一個畫面裡可能同時有大片的相反色溫的區域,這個時候一個white balance引數沒法兼顧二者。因為目前也沒發現有什麼解決方案,在此不做展開了。
我沒找到直接測量White balance數值的方法,但是嘗試了使用比較粗糙的方法去做校正。具體做法如下:
1、將白板放在無遮擋的室外,拍攝照片後,透過後期調整,還原出當時我的實際感受到的顏色,此作為reference。
2、在引擎裡試圖還原出室外的光照(方向光+天光),然後也放置一塊白板在無遮擋的室外。
3、調節PPV上的white balance引數,讓白板的顏色儘可能接近reference中的顏色。
我當時收集了9點多和13點多的資料,9點多的白板輕微偏黃,13點多的白板幾乎是無偏的白色,利用上述方法在引擎內校正後的效果大致如下:
(3)調色
調色類似曝光,也是有2個方面的訴求:模擬人的色彩感知行為、風格化。
模擬人的色彩感知行為
UE4使用的這套ACES Filmic Tonemapper其實已經能模擬出一些人的色彩感知行為了,例如高亮色彩的de-saturation,參考官方文件的下圖:
但是引擎做的事情還是很有限的,簡單來說只是做了一些色彩空間轉換和s-curve tonemapping的計算,保證不了色彩的高保真(高質量),因此基本的調色是必須的,可以認為是對色彩的一個基本的修正(color correction)。
當然還是有很多更明顯的感知行為需要我們去模擬,一個常被人談起的例子就是Purkinje effect。
月亮的光是偏暖色溫的(4100K),為什麼看起來是偏藍色的?因為人眼在極暗環境下,對顏色的識別能力會下降,並對”藍色”更敏感。因此有的燈光講座裡,會在夜晚場景的後期調色中,對暗部做藍色增強處理,並且降低暗部整體飽和度,模擬這一感知行為特徵。
風格化調色
這個應該大家都非常熟悉,主要就是為美術表達服務的。以我非常喜歡的CyberPunk2077為例,他們基於對CyberPunk這個世界觀的理解,選擇的調色風格是電影化+強對比。如下圖所示,整體感受就是under-exposure + 高對比度 + 偏高飽和度:
這個風格其實跟人感知到的色彩特徵是不一致的,人感知到的色彩就是所謂的natural,即曝光、對比、飽和度這些都很適中,例如Unrecord、Bodycam這2款超寫實風格的遊戲的調色風格就比較符合這一特點(可能他們基本上沒做風格化調色):
(4) 其它
還有一些比較明顯的視覺特徵可以透過引擎特性來模擬,例如bloom和lensflare,它們對整體畫面的寫實度其實非常重要。
Bloom
瞳孔的結構有點類似快門,光在穿過它時會發生衍射現象,參考下面的影片:
除了模擬衍射之外,它還能強化畫面中高亮的部分從而更好的模擬出真實世界裡光強的”高動態範圍“,也能提升光源本身的表現,總體來說能大幅提高整體畫面的真實感。
Lensflare
Lensflare常常被用來模擬人眼看到超亮光線時候的刺眼效果,例如在比較暗的環境下看到戰術手電筒,在中午看到太陽等等。對寫實度影響很高。
2. 實現顏色資料的轉換
Color pipeline最後需要把色彩資料轉換成顯示驅動可用的資料,一般涉及到色域轉換和資料編碼。
顯示裝置是否支援HDR對這一步的資料處理影響會比較大,一般會分為SDR和HDR兩種流程。
另外需要注意,為了完成色彩高保真的目標,繞不開顯示器的問題。不同顯示器能發出的光譜差別很大,玩家觀看顯示器的環境光照差異也很大,因此必須為玩家提供合理的手動畫面校正工具,這個目前基本也是端遊的標配了:
這個問題的另一方面,則是美術工作階段的色彩高保真問題,比如顯示器校正、引擎內色彩管理等等。這些問題都非常重要,還需要做更深入得研究。
來源:騰訊遊戲學堂
一、Light & Color
1. Light
Radiometry(輻射度量學)中的光即Electromagnetic radiation(電磁輻射),是客觀物理量,可測量。人可感知的光的波長範圍很小。
2. Color
顏色它不是一個客觀物理量,而是一個感知結果。
對於人來說,人眼接受到光的能量,最終將刺激傳遞給大腦解析,產生出“看到的image”。因為人與人之間的人眼、大腦的差異,對同樣的光,感知到的色彩會不同。
例如下面這件衣服("The dress"),很多人認為是black and blue, 也有很多人認為white and gold。
人的視網膜上的用來感知色彩的細胞主要是Cone cells,它被分為了3類,分別對短、中、長波長的光波有較強的感知能力,這也是為什麼三原色的色彩模型能夠較好的表達顏色。
自然界中,人眼接受到的光一般都是不同的波長的光波疊加到一起的。這個不同波長的光的成分組合,一般用光譜來描述。
同色異譜和色彩還原
同色異譜
前面說了人對色彩的感知過程,是將物理量(光)最終主觀轉換為顏色。實際上,這個過程中,不同的輸入可以有相同的輸出。
同色異譜現象簡單來說就是人感知到的顏色相同,但是光譜組成不同。下圖左邊是拍攝的一張太陽的照片,右邊是顯示器裡顯示的一個太陽,人感知到的色彩類似,但是實際光譜完全不同。
色彩還原(Color Reproduction)
Computer Graphics其實就是計算出一個color image,然後透過顯示器發出的光,利用同⾊異譜現象,讓觀看者看到製作者模擬的畫面。這個過程就是Color Reproduction。
目前所有人造顯示裝置可發出的光的波長、能量這些都是非常有限的,所以無法重現所有的人可感知的色彩。
印刷物、電影銀幕這些其實也是在做Color Reproduction,只不過它們不是自己發光,而是靠反彈光。
二、Color in Game - Overview
我們作為遊戲開發者,其實就是把Color Reproduction從頭到尾做一遍。
對於寫實專案來說,目標就是一個:色彩的高保真(high fidelity)。就跟音響領域裡的HiFi的含義一樣,色彩高保真就是要儘可能還原出人眼看到的顏色(感覺跟“Photorealistic”類似)。
遊戲引擎裡的Color Pipeline:
上面是從COD的ppt里扣出來的一張圖,大部分引擎的這個管線差別不會太大。我個人將引擎內對顏色的處理分為了2個階段:
- 模擬客觀世界中光線的傳播
- 顏色後處理
整個管線的輸入,是各類美術資產(貼圖、模型、材質等)、幾十上百個引擎引數。輸出則是一個image資料,給到顯示驅動顯示到螢幕上。最終螢幕硬體發出的光線,夾雜著各類環境光進入人眼,交由大腦解析,完成了color reproduction。
三、Color Pipeline - 模擬光線的傳播
這部分其實就是基於材質和燈光引數,計算光照,最後算出線性的HDR color的結果。
因為是在模擬光的傳播,這是一個客觀的可測量的過程,所以很多科學技術手段可以用上,例如photogrammetry的各種思路和工具流程。這一步其實對於寫實遊戲來說,很像是在做“計算機模擬”,只是多了一步美術設計。
這裡涉及到的工作內容,絕大部分都是有正確性基礎和物理值參考的:
* 光比、材質的PBR引數
* 引擎基於物理模型實現的lighting model和各種特性(例如procedural sky、volumetric fog等等)的輸入引數
* 其他
所以對於高水平的團隊,這一步可以做到非常準確和可靠。
它要求有很好的科學思路和流程,否則幾乎必然會出問題,最終導致最終效果問題難以定位和收斂(最怕的就是用錯誤的做法去修復另一個錯誤)。而這一步的正確性的保證,能把整個色彩高保真的問題的複雜度大幅降低,因為color pipeline的後續部分,絕大部分都是偏主觀的,沒有絕對的“正確”,很難做到完美的還原真實性。
另外,這一步的輸出是HDR color,它的值可以跨越零到幾萬的範圍,例如在我的測試場景裡的幾個典型的亮度值如下圖所示:
(注意:這算不上是一個標準的燈光場景)
因此,千萬不要基於最終效果去隨意調整燈光引數,他們完全不是線性關係,這也是美術難以駕馭HDR管線的最主要的原因之一。
四、Color Pipeline -顏色後處理
這一步主要包含2部分:
模擬人對顏色的感知行為(Color Perception)
實現顏色資料的轉換
1、模擬人對顏色的感知行為
這一步很難像前面的步驟那樣,有直接可用的物理模型或者直接可獲取的物理參考值,無法量化。
這一步必然需要引入人的主觀判斷,需要使用科學的方法,由色彩感受能力強、有理論知識、掌握必要工具和分析能力的美術來把控,技術側提供方法、理論、工程上的支援。
這一步,它不那麼依賴於團隊的工業化水平,沒涉及到那麼多的分工,也不像資產生產那樣需要長週期驗證。可能一個能力超強的燈光師或者TA,就可以成為一個game changer,花幾天時間對引擎內的引數做下調整就可以讓寫實度上升一個level。我覺得這也是為什麼現在有不少UE5的小團隊遊戲都能把寫實度做的極高的原因之一。
在這一步要做哪些事情呢?其實遊戲業大量參考了攝影界的做法。
(1)曝光
目標效果
其實玩攝影的同學就會很清楚,正確的曝光幾乎是整個畫面好壞的最關鍵的一環。過分的under-exposure或者over-exposure,不僅會導致色彩丟失,更會影響寫實度,比如白天看著不像白天。
下圖是一個典型的under-exposure的例子。大部分物體的固有色都難以分辨,整體光感很奇怪,完全不像是一個晴朗的白天的感受。如果不考慮“強風格化”的話,這個案例的色彩保真度比較低,即使資產、光比等等都做的比較正確。
另外,曝光的結果(亮度縮放過的HDR color)是後續調色和色彩空間轉換步驟的輸入,而後面這部分顏色操作是非線性的,尤其是對輸入當中的那些很亮和很暗的顏色。曝光決定了哪些顏色進入到這些“高非線性區間”,因此對整體結果在另外一個層面又有了巨大的影響。參考下面截圖中不同曝光對於天空顏色的影響:
那麼怎麼確定曝光的值呢?其實這裡有2個方面的訴求:色彩高保真,風格化。
對於風格化來說,其實曝光要跟著風格化調色來一起做。沒深入研究過,這裡就不展開了。
對於色彩高保真來說,一方面可以參考攝影行業的Sunny 16 rule之類的“標準值”,另一方面則可以基於照片或者人眼感受作為reference。總之核心問題就是,不要在曝光的問題上強行參雜美術設計,要以reference為基礎。像情緒、氛圍這些,應該基於其他層面的美術設計去達到目的,例如場景結構、物件設計和擺放、天氣、TOD時間之類的。參考下面的截圖:
相關功能
- 自動曝光
自動曝光的工作原理是整體縮放畫面中所有畫素的亮度,所以它被歸類為global exposure。其目標是”讓畫面的平均亮度達到一個類似中度灰的亮度“。
它是用來調節畫面曝光的最主要的功能。
引擎層面的”基於物理的渲染“的一個很重要的部分就是physically based camera,所以基本上相機上有的曝光功能和引數,引擎裡都有。
需要說明的是,人的色彩感知系統的”自動曝光“能力是有限的,例如中午大太陽的室外人眼看著會覺得很亮和刺眼,晚上實在太黑了也會看不清。所以必須基於人的這一感知行為進行手動的曝光控制才行。例如下面幾張遊戲截圖裡的大白天就故意調的略為偏亮(over-exposure)。
- 區域性曝光
當畫面中同時存在大面積的很亮和和很暗的區域的時候,自動曝光功能就沒法解決曝光問題了,因為它是對畫面所有畫素亮度的整體縮放。這個問題在一些沒怎麼做過後處理處理影片中可以明顯看到:
而人的色彩感知系統是有很強的區域性調節亮度的能力的,參考下圖(iphone HDR實拍 + 調後期,近似還原了我當時的感受):
可以看到,在自然的光照環境下,人感知到的色彩不太會出現大面積的死黑和爆白。
區域性曝光(local exposure)能對畫面中各子區域施加不同的亮度縮放值,讓原本很黑或者很亮的區域都能保留一些原本的顏色,模擬了人的色彩感知行為,極大的提升了色彩保真度。
UE5已經實現了這個功能(對馬島的方案),能解決相當一部分問題。但是因為演算法關係,難以處理極端情況(引數不能調太高)。所以有一些遊戲也會嘗試一些其他方案來輔助,例如戰神使用了”exposure lights“。另外為了緩解這個問題,大部分遊戲都會降低自然光源和人造光源之間的光比,例如CyberPunk2077和鏡之邊緣都將太陽光亮度降低了100倍。
(2)白平衡
白平衡(white balance)簡單理解為是一種對色彩整體的修正。相機裡都自帶auto white balance功能。如果把它關掉的話,拍出來的照片的色彩會非常un-natural,參考下圖:
攝影師基於自己實際感知到的色彩,對white balance進行修正之後如下圖:
從上面的對比中可以看到,人眼的auto white balance機制從結果上看是有點像de-lighting的,即感知到的色彩一定程度上降低了光源的影響,更接近物體固有色一些(因為進化方向是人需要更好的識別出物體本身的資訊?)。
White balance這個對整體色彩的保真度影響巨大,而且引擎沒有auto white balance的功能,需要手調引數才行。UE4預設的White balance是6500k。
另外它也存在跟曝光類似的問題,即同一個畫面裡可能同時有大片的相反色溫的區域,這個時候一個white balance引數沒法兼顧二者。因為目前也沒發現有什麼解決方案,在此不做展開了。
我沒找到直接測量White balance數值的方法,但是嘗試了使用比較粗糙的方法去做校正。具體做法如下:
1、將白板放在無遮擋的室外,拍攝照片後,透過後期調整,還原出當時我的實際感受到的顏色,此作為reference。
2、在引擎裡試圖還原出室外的光照(方向光+天光),然後也放置一塊白板在無遮擋的室外。
3、調節PPV上的white balance引數,讓白板的顏色儘可能接近reference中的顏色。
我當時收集了9點多和13點多的資料,9點多的白板輕微偏黃,13點多的白板幾乎是無偏的白色,利用上述方法在引擎內校正後的效果大致如下:
(3)調色
調色類似曝光,也是有2個方面的訴求:模擬人的色彩感知行為、風格化。
模擬人的色彩感知行為
UE4使用的這套ACES Filmic Tonemapper其實已經能模擬出一些人的色彩感知行為了,例如高亮色彩的de-saturation,參考官方文件的下圖:
但是引擎做的事情還是很有限的,簡單來說只是做了一些色彩空間轉換和s-curve tonemapping的計算,保證不了色彩的高保真(高質量),因此基本的調色是必須的,可以認為是對色彩的一個基本的修正(color correction)。
當然還是有很多更明顯的感知行為需要我們去模擬,一個常被人談起的例子就是Purkinje effect。
月亮的光是偏暖色溫的(4100K),為什麼看起來是偏藍色的?因為人眼在極暗環境下,對顏色的識別能力會下降,並對”藍色”更敏感。因此有的燈光講座裡,會在夜晚場景的後期調色中,對暗部做藍色增強處理,並且降低暗部整體飽和度,模擬這一感知行為特徵。
風格化調色
這個應該大家都非常熟悉,主要就是為美術表達服務的。以我非常喜歡的CyberPunk2077為例,他們基於對CyberPunk這個世界觀的理解,選擇的調色風格是電影化+強對比。如下圖所示,整體感受就是under-exposure + 高對比度 + 偏高飽和度:
這個風格其實跟人感知到的色彩特徵是不一致的,人感知到的色彩就是所謂的natural,即曝光、對比、飽和度這些都很適中,例如Unrecord、Bodycam這2款超寫實風格的遊戲的調色風格就比較符合這一特點(可能他們基本上沒做風格化調色):
(4) 其它
還有一些比較明顯的視覺特徵可以透過引擎特性來模擬,例如bloom和lensflare,它們對整體畫面的寫實度其實非常重要。
Bloom
瞳孔的結構有點類似快門,光在穿過它時會發生衍射現象,參考下面的影片:
除了模擬衍射之外,它還能強化畫面中高亮的部分從而更好的模擬出真實世界裡光強的”高動態範圍“,也能提升光源本身的表現,總體來說能大幅提高整體畫面的真實感。
Lensflare
Lensflare常常被用來模擬人眼看到超亮光線時候的刺眼效果,例如在比較暗的環境下看到戰術手電筒,在中午看到太陽等等。對寫實度影響很高。
2. 實現顏色資料的轉換
Color pipeline最後需要把色彩資料轉換成顯示驅動可用的資料,一般涉及到色域轉換和資料編碼。
顯示裝置是否支援HDR對這一步的資料處理影響會比較大,一般會分為SDR和HDR兩種流程。
另外需要注意,為了完成色彩高保真的目標,繞不開顯示器的問題。不同顯示器能發出的光譜差別很大,玩家觀看顯示器的環境光照差異也很大,因此必須為玩家提供合理的手動畫面校正工具,這個目前基本也是端遊的標配了:
這個問題的另一方面,則是美術工作階段的色彩高保真問題,比如顯示器校正、引擎內色彩管理等等。這些問題都非常重要,還需要做更深入得研究。
來源:騰訊遊戲學堂
相關文章
- 設計師必看!如何將色彩正確運用到遊戲中?遊戲
- Jmeter新手入門必看JMeter
- SOAR 101 快速入門指南
- Sahi (1) —— 快速入門(101 Tutorial)
- Python小白必看!新手入門指南Python
- 新手必看的iShowU Instant入門教程
- FreeBSD Command Tools入門必看(轉)
- 遊戲美術:色彩原理遊戲
- Linux 檔案系統之入門必看!Linux
- Java Junit單元測試(入門必看篇)Java
- 三分鐘帶你快速入門極簡色彩學
- 三分鐘幫你快速入門極簡色彩學
- [GAMES101]圖形學入門筆記GAM筆記
- 【入門必看】比特幣到底是什麼?比特幣
- 《Terraform 101 從入門到實踐》 Functions函式ORMFunction函式
- 【機器學習入門與實踐】合集入門必看系列,含資料探勘專案實戰,適合新人入門機器學習
- 入門自然語言處理必看:圖解詞向量自然語言處理圖解
- 【必看】網路安全入門必刷的靶場合集!
- 大資料【學習必看】入門+提升+專案=高薪大資料高薪
- 7大熱門領域,天天高收益!小白入門自媒體必看
- 小白入門Python,必看的一些基礎材料Python
- 【小白必看】Python入門知識之常用關鍵字!Python
- Linux磁碟分割槽瞭解多少?Linux入門必看Linux
- 【網路安全入門必看】常用的審計工具都有哪些?
- 小白必看!入門嵌入式你需要了解這些!
- Java入門程式設計師必看:給陣列進行排序Java程式設計師陣列排序
- 新手入門深度學習?這裡有7本必看書籍深度學習
- 遊戲開發新手入門之DirectX入門(轉)遊戲開發
- Java入門----猜拳小遊戲Java遊戲
- 遊戲設計裡的那些色彩應用遊戲設計
- 【入門必看】Python有有哪些好用的網站開發框架?Python網站框架
- 【入門必看】網路安全工程師需要具備哪些技能?工程師
- 【必看】Python自動化測試框架,Python入門知識!Python框架
- 【Python小白入門必看】Python和VB哪個更簡單?Python
- 網路安全風險評估流程包括哪些步驟?小白入門必看
- 心靈式遊戲:給遊戲多一份積極色彩遊戲
- 《Terraform 101 從入門到實踐》 第五章 HCL語法ORM
- 遊戲程式設計入門指南遊戲程式設計