PBR--RTR4笔记--第八章 光与颜色
這只是筆記,有很多理解和翻譯錯誤的,請謹慎參考。請以原書為準。
8.0 說明
? 這章很重要,系統的講解了colorspace相關知識,隨后介紹了tone-mapping、Explosure.
? color space是從光波波長和輻射的曲線一步一步過渡到RGB顏色空間的.其中重要的中間顏色空間為 XYZ顏色空間,經過它可以實現所有RGB顏色空間的轉換.隨后又對RGB顏色空間進行介紹,重要的RGB顏色空間為(顏色空間所表示的范圍逐一遞增):sRGB,DCI-P3,ACEScg.
? 在了解關于tone-mapping的曲線時可以參考提供的引文,其中尤其關注目前被廣泛使用的"filmic tone-mapping".這個曲線在unity和UE4中都能找到對應源碼.他們都是基于ACES開源項目([ampas/aces-dev][https://github.com/ampas/aces-dev],以后會基于這個項目詳細解析color space)完成的.都是在ACEScg顏色空間進行的計算.其中unity的參數被寫死了沒有暴露出來,UE4暴露了若干參數,經過簡單理解就能將UE4的實現移植到unity中,效果良好(參考https://blog.csdn.net/gqkly/article/details/84800955).
8.1 LigthQuantities
人眼可見光波長范圍:[400,700]nm
單位換算
| radiant | φ | watt(W) |
| irradiance | E | Wm2\frac{W}{m^2}m2W? |
| radiant intensity | I | Wsr\frac{W}{sr}srW? |
| radiance | L | W(m2?(sr))\frac{W}{(m^2*(sr))}(m2?(sr))W? |
- radiant flux: 輻射通量Φ?\Phi?Φ?,
- Irradiance:輻射度EEE.每平米的輻射.E=dΦdAE = \frac{d\Phi}{dA}E=dAdΦ?,單位wm2\frac{w}{m^2}m2w?
- radiant intensity:輻射強度III.描述每個立體弧度的watts強度,I=dΦdωI=\frac{d\Phi}{d\omega}I=dωdΦ?
- radiance:輻射,LLL.一條光線的電磁輻射度量.L=d2ΦdAdωL=\frac{d^2\Phi}{dAd\omega}L=dAdωd2Φ?.這個是垂直于射線的區域的測量值.如果應用于其他表面,就必須使用余弦校正,在"projected area"使用的就是校正值.該值是攝像機、眼睛的感知值,對rendering來說非常重要,shading方程的目的就是計算表面上點到攝像機的光線的radiance.LLL的值就是第5章介紹的cshadedc_{shaded}cshaded?中的Physicall based equivalent.輻射度的公制單位是瓦特每平方米每弧度角.
- solid angle:在三維空間,一個solid angle是從球心到球面的圓錐,范圍為:[0,4π]?[0,4\pi]?[0,4π]?,二位表面為[0,2π]?[0,2\pi]?[0,2π]?
? 環境中的輻射可以看作是五個變量(或六個變量,包括波長)的函數,稱為輻射分布.其中三個分別為:location,兩個direction.
? 在shading方程里,radiance常為L0(x,d?)L_0(x,\vec d)L0?(x,d)或Li(x,d?)L_i(x,\vec d)Li?(x,d)–輻射來自點xxx或者攝入它.方向向量d?\vec dd為ray的方向–指向xxx,但在LiL_iLi?函數里d?\vec dd為光線方向的反方向—為了方便計算、點乘.
? 當忽略空氣影響(比如fog)radiance將不受距離衰減.也就是一個面上任何一點到view的輻射是一樣的.大多數光波是復合光.這被抽象為SPDs(spectral power distributions)–光在不同波長上的能量分布.
? 所有輻射量都有光譜分布,因為這些分配是波長上的密度,它們的單位是原始數量除以納米。例如,輻照度的光譜分布以瓦特為單位。每平方米每納米由于使用完整的SPD進行渲染非常困難,特別是在交互速率下,在實踐中,輻射量用三重RGB表示…
8.1.2 Photometry
? 光速測定法
? Luminance 描述亮度.HDR電視亮度范圍為[500,1000] nits.天空為8000nits,60-watt 燈泡為12000nits,太陽為600000nits.
| radiant flux:watt(W) | luminous flux:lumen |
| irradiance:W/m2 | illuminance: lux (lx) |
| radiant intensity: W/sr | luminous intensity: candela (cd) |
| radiance: W/(m2sr) | luminance: cd/m2 = nit |
8.1.3 Colorimetry
? 比色法
? CIE(commission International d’Eclairage),color-matching ,color-matching functions—將spectral power distribution(光譜功率分布)轉換為三原色.
? 645 nm for r, 526 nm for g, and 444 nm for b
? 可見色范圍內,給出一個光強,,通過上圖獨處RGB三原色.但是這三個r,g,b光不能直接表示所有的可見色因為其中有負值.CIE通過color-matching functions得到三個正的假設光源.三條曲線是原始r,g,b顏色linear混合的color-matching functions.
? 這類color-matching function的貢獻項為x ̄(λ)\overline {x}(\lambda)x(λ)、y ̄(λ)\overline {y}(\lambda)y?(λ)、z ̄(λ)\overline {z}(\lambda)z(λ),如圖8.6.color-matching function ?y ̄(λ)\overline {y}(\lambda)y?(λ)和圖8.4一樣–因為這條曲線的輻射已經轉換為亮度(luminance).
?
? 和前面的顏色匹配函數一樣,x ̄(λ)\overline {x}(\lambda)x(λ)、y ̄(λ)\overline {y}(\lambda)y?(λ)、z ̄(λ)\overline {z}(\lambda)z(λ) 用乘法和積分將任意 SPDs(λ)?SPD s(\lambda)?SPDs(λ)?轉換為三個值:
? X=∫380780s(λ)x ̄(λ)dλ,X=\int_{380}^{780}s(\lambda)\overline {x}(\lambda)d\lambda,X=∫380780?s(λ)x(λ)dλ, Y=∫380780s(λ)y ̄(λ)dλ,Y=\int_{380}^{780}s(\lambda)\overline {y}(\lambda)d\lambda,Y=∫380780?s(λ)y?(λ)dλ,Z=∫380780s(λ)z ̄(λ)dλ.Z=\int_{380}^{780}s(\lambda)\overline {z}(\lambda)d\lambda.Z=∫380780?s(λ)z(λ)dλ.
? X,Y,ZX,Y,ZX,Y,Z是CIE XYZ顏色空間的值,它通常用來轉換為luminance(brightness)和色度.色度是與亮度無關的東西,相同色度可能具有不同亮度.為了這個目的,CIE定義了一個二位的色度顏色空間–將顏色投影到X+Y+Z=1X+Y+Z=1X+Y+Z=1平面上,這個顏色空間的坐標稱為x,y,zx,y,zx,y,z:
? x=XX+Y+Z,Y=YX+Y+Z,z=ZX+Y+Z=1?x?y.?x=\frac{X}{X+Y+Z},Y=\frac{Y}{X+Y+Z},z=\frac{Z}{X+Y+Z}=1-x-y.?x=X+Y+ZX?,Y=X+Y+ZY?,z=X+Y+ZZ?=1?x?y.?
? 從原點輻射出來的每條射線都有同樣的色度值,他們的亮度不同.所以這里可以映射到一個平面(這里選擇的是X+Y+Z=1X+Y+Z=1X+Y+Z=1).
z通常省略,x,y色度坐標在CIE 1930 chromaticity diagram被推廣.如圖8.8,曲線的輪廓顯示了可見光譜的范圍,曲線的底部的直線稱為紫線(purple line).黑點光源D65的色調–白點,用來定義白色或無色.
? 已知顏色P1(x,y)P_1(x,y)P1?(x,y)(色調),從P0P_0P0?白點到該點繪制一條射線與包圍曲線交與P2P_2P2?,P0P_0P0?到P1P_1P1?的距離與P1P_1P1?到P2?P_2?P2??的距離的關系是顏色的純度,也就是越靠近邊緣的顏色三原色越單一.但這種術語在圖形渲染中很少用,常用的是飽和度(saturation)和色調(hue)–分別于純度和光波長相關.在[[1706]][1706]討論了飽和度和色調.
? 色度描述了一個平面,第三維維YYY–亮度.這被稱為xyYxyYxyY坐標系系統.色度幫助理解rending和rending系統的缺陷.電視或電腦屏幕顯示某個R,G,B顏色集合…
? 色度圖中三角形區域為典型的顯示器顯示色域.色度圖的一個重要性質是可以將顯示系統的極限顏色通過直線連接起來.在[[1706]][1706]中有討論.
? 有幾個rendering相關的RGB顏色空間(每個都通過R,G,B和一個white point定義).這里使用一個叫CIE 1976 UCS(uniform chromaticity sacale)圖(圖8.9)來討論和比較他們.這個圖是CIELUV顏色空間的一部分–(和另一個顏色空間CIELAB)被CIE采用用于提供XYZ顏色空間的統一替代方案.在CIE XYZ顏色空間相同amount的不同顏色對更多(可達20倍),CIELUV改進這點,將比率降低到最大值的四倍.如果是為了比較RGB空間的范圍,這種增加的知覺一致性使得1976年的圖表比1931年的圖表好得多.近來在統一顏色空間的研究有了ICTCPIC_TC_PICT?CP?和JzazbzJ_za_zb_zJz?az?bz?顏色空間.這些顏色空間更加通用–尤其是在高亮度和色調的渲染模型中.但這些顏色空間的色度圖還沒有被廣泛采用,所以這里以CIE 1976 UCS圖為例.
? 上圖三個RGB顏色空間,sRGB在real-time readering中最常用.注意,本章使用"sRGB color space"是指具有sRGB原色和白點的線性顏色空間,而不是5.6討論nonlinear sRGB 顏色編碼.大多數計算機顯示器為使用sRGB顏色空間,同樣的原色和白點也適用于rec.709顏色空間,用于HDTV顯示器,因此對游戲機很重要.但,更多顯示器使用更廣色域.某些顯示器為了照片編輯設計而使用Adobe 1998 color space.為未來的電影設計的DCI-P3顏色空間也被廣泛使用.Apple的產品線就使用了這個顏色空間.DCI-P3常被用做UHD實際顏色空間,盡管ultra-high definition(UHD)內容和顯示器使用極寬的色域Rec. 2020 color space,它很接近第三顏色空間–ACEScg.
? ACEScg顏色空間由Academy for motion Picture Arts和 Sciences(AMPAS)為電影的計算機圖像渲染開發.它不是用作顯示的顏色空間,而是用于渲染,渲染后的顏色會轉換為顯示顏色空間.
? 雖然目前sRGB顏色空間在實時渲染領域無處不在,使用更廣顏色空間的時候也在增加.最直接的好處是針對廣域顯示器的應用,即使是針對sRGB或rec.709顯示器的應用也有優勢.在不同顏色空間中執行的常規渲染操作(如乘法)會產生不同結果,證據表明,在DCI-P3或ACESCG空間中執行這些操作比在線性SRGB空間中執行這些操作產生更準確的結果.
? 從RGB空間到XYZ空間的轉換是線性的,可以使用從RGB空間的primaries和白點派生的矩陣來完成.通過矩陣求逆和級聯,矩陣能將XYZ顏色空間的值轉換為任意RGB顏色空間值或者在兩個RGB顏色空間轉換.這些顏色超出了色域,即在目標RGB空間中不可復制.可以使用各種方法將這些顏色映射到目標RGB色域中。
? 一種常用的轉換時將RGB顏色轉換為luminance亮度值.因為luminance時系數Y,這個操作是RGB-to-XYZ轉換中"Y"分量的操作.換句話說,它是RGB系數和RGB-to-XYZ矩陣的中間行的點積(dot product),假設使用sRGB顏色和Rec.709顏色空間,這個方程為:
? Y=0.2126R+0.7152G+0.0722B.Y=0.2126R+0.7152G+0.0722B.Y=0.2126R+0.7152G+0.0722B.
? 再次看光度曲線,如第271頁圖8.4所示.這條曲線,代表一個標準的觀察者的眼睛對各種光線的反應.波長,乘以三個主色系的光譜功率分布,每一條生成的曲線都是完整的。這三個結果的權重構成了上面的亮度方程.灰度強度值不相等的原因部分紅色、綠色和藍色是因為眼睛對各種各樣的光的波長.
? 色度學可以告訴我們兩種顏色刺激是否匹配,但它不能預測他們的外表。給定的XYZ顏色刺激的外觀在很大程度上取決于關于照明、周圍顏色和以前的條件等因素.Color apperance models(顏色外觀模型,CAM)如CIECAM02試圖解決這些問題,以及防止這種錯誤和預測最終顏色值.
? 顏色外觀建模是視覺感知更廣泛領域的一部分,包括遮蓋等效果.這就是放置在物體上的高頻高對比度圖案往往隱藏瑕疵的地方.換言之,像波斯地毯這樣的紋理將有助于偽裝色帶和其他著色工件,這意味著這樣的表面需要花費更少的渲染工作.
8.1.4 Rendering with RGB Colors
? 嚴格地說,RGB值代表的是感性的而不是物理量,將它們用于基于物理的渲染在技術上是一個類別錯誤。正確的方法是對光譜量進行渲染計算,通過密集采樣或投影到適當的基礎上表示,并僅在結束時轉換為RGB顏色.
? 例如,最常見的渲染操作之一是計算從對象重新導入的燈光。物體的表面通常會比其他波長的光再吸收更多,正如其光譜再吸收曲線所描述的那樣。嚴格正確的顏色計算方法入射光將入射光的SPD乘以每個波長的光譜反射,得到SPD。重新受影響的光線,然后將其轉換為RGB顏色。相反,在RGB渲染器中,燈光和曲面的RGB顏色相乘在一起,得到重新受影響的燈光的RGB顏色。在一般情況下,這并不能給出正確的結果。
?
? 上圖顯示了設計用于投影屏幕的材料的光譜反射率。下面兩個圖顯示了具有相同RGB顏色的兩個光源的光譜功率分布:中間圖中的一個RGB激光投影儀和底部圖中的d65標準光源。由于屏幕材料的反射峰與投影機的主反射峰一致,因此它將重新吸收大約80%的激光投影機發出的光。但是,它將反射來自d65光源的不到20%的光,因為光源的大部分能量在屏幕的反射峰之外。該場景的RGB渲染將預測屏幕將為兩個燈光反射相同的強度。
?
? 我們的例子展示了一種設計用于激光投影儀的屏幕材料。它在窄帶內具有與激光投影機波長匹配的高反射率,在大多數其他波長上具有低反射率。這會使它反射來自投影機的大部分光,但會吸收來自其他光源的大部分光。在這種情況下,RGB渲染器將產生嚴重錯誤。
? 然而,圖8.10所示的情況遠不是典型的。實踐中遇到的表面光譜反射曲線更平滑,如圖8.11所示。典型的光源SPD類似于D65光源,而不是示例中的激光投影儀。當光源SPD和表面光譜反射均平滑時,由RGB渲染引入的誤差相對較小。
? 在預測性渲染應用程序中,這些細微的錯誤可能很重要。例如,兩條光譜反射曲線在一個光源下可能具有相同的顏色外觀,但在另一個光源下沒有。例如,在對修理過的車身零件進行噴漆時,這個問題被稱為偏聚故障或光源偏聚現象。在試圖預測這種效果的應用程序中,RGB渲染不合適。
? 在與渲染軟件中這些錯誤會很嚴重,例如,兩條光譜反射曲線在一個光源下可能具有相同的顏色外觀,但在另一個光源下沒有.這個問題被稱為偏聚故障或光源偏聚現象.在對修理過的車身零件進行噴漆時試圖預測這種效果的應用程序中常用,RGB渲染不合適.
? 但在主流渲染系統、尤其是交互式軟件中,RGB渲染工作良好.即使是離線渲染的超現實電影也只是最近才開始采用光譜渲染,而且還遠未普及.
? 本節僅涉及色彩科學的基礎知識,主要是為了使人們認識到光譜與三重色之間的關系,并討論設備的局限性。下一節將討論相關主題“渲染場景顏色到顯示值的轉換”。
8.2 Screne to Screen
? 后續章節聚焦PBR,對于虛擬場景,基于物理的渲染的目標是計算場景中真實存在的輻射度。然而,到那時這項工作還遠遠沒有完成。仍然需要確定顯示器幀緩沖區中最終像素值。在這一節中,我們將討論這個決定中涉及的一些考慮因素。
8.2.1 High Dynamic Range Display Encoding
? 281.本節建立在5.6基礎上(它解釋了顯示編碼).本節討論HDR,需要基礎知識:color gamuts(色域,也就是顏色空間).
? 5.6討論的顯示編碼基于standard dynamic range(SDR)的使用sRGB顯示標準的顯示器,SDR電視使用Rec. 709 和Rec .1886標準.二者都有相同的RGB gamut和white point(D65).相似的(不完全相同)的非線性編碼曲線,它們參考白亮度等級也相似(80 cd/m2cd/m^2cd/m2 for sRGB,100 cd/m2?cd/m^2?cd/m2? for Rec.709/1886).示器和電視制造商并沒有嚴格遵守這些亮度規格,他們實際上傾向于生產具有更亮白色水平的顯示器.
? HDR使用Rec. 2020和Rec. 2100標準.Rec. 2020定義了一個更廣的色域,見8.12,whte piont仍為(D65).Rec. 2100定義了兩個非線性顯示編碼:perceptual quantizer(PQ,感知量化器)和hybrid log-gamma(HLG,混合對數伽馬).HLG在渲染領域鮮有使用,我們會聚焦PQ–峰值亮度為10000 cd/m2?cd/m^2?cd/m2?.
? 盡管峰值亮度和色域對編碼很重要,它們在實際顯示中也會造成一些問題.實際很少有HDR顯示器的峰值亮度等級達到了1500 cd/m2cd/m^2cd/m2.應用中,顯示器的峰值色域更接近DCI-P3(見8.12)而不是Rec. 2020.因此,HDR顯示器從標準規降低到實際顯示功能執行內部的tone(映射)和色域匹配(gammut mapping).此映射可能受應用程序傳遞的元數據的影響,以指示內容的實際動態范圍和范圍.
? 軟件實現上有三條路線將圖像轉換到一個HDR顯示器.但根據顯示器和操作系統不過所有方案都能可行.
? 1.HDR10–被HDR顯示器和操作系統普遍支持.framebuffer的每個像素占32bits(RGB:10bits*3,alpha:2bits),它使用PQ非線性編碼和Rec. 2020顏色空間.每個HDR10 顯示器模型有自己的tone mapping–沒有標準化和文檔化.
? 2.scRGB(linear variant)–只有windows操作系統支持.名義上,它使用sRGB圖元和white level,盡管兩者都可以超過,因為標準支持小于0和大于1的rgb值。幀緩沖區格式為每個通道16位,并存儲線性RGB值。它可以與任何HDR10顯示器一起工作,因為驅動程序轉換為HDR10。它主要用于方便和向后兼容sRGB。
? 3.Dolby Vision(杜比視頻高動態技術)-專有格式,在顯示器或顯示器上尚未廣泛支持任何控制臺(在編寫時)。它使用定制的每通道12位幀緩沖格式,并使用PQ非線性編碼和Rec.2020顏色空間。顯示內部色調映射是跨模型標準化的(但不是文件化).
?
? Lottes支出有第四種方法:如果仔細調整曝光和顏色,則可以通過常規的SDR信號路徑驅動HDR顯示器,效果良好。
? 對于scRGB以外的任何選項,作為顯示編碼步驟的一部分,應用程序需要將像素RGB值從渲染工作空間轉換為Rec.2020,需要3 x 3矩陣轉換,并應用PQ編碼,這比Rec.709或sRGB編碼功能要貴一些[497][497]。帕特里[1360][1360]給出了一個價格低廉的PQ曲線近似值。在HDR顯示器上合成用戶界面(UI)元素時需要特別小心,以確保用戶界面清晰、亮度舒適[672][672]
8.2.2 Tone Mapping
? 5.6和8.2.1會討論顯示編碼–將線性輻射值轉換顯示器物理硬件的非線性編碼值的技術顯示編碼所應用的函數與顯示器的光電傳遞函數(EOTF)相反,它確保輸入的線性值與線性輻射匹配.由顯示器發出.我們之前的討論重點為在渲染和顯示編碼之間發生的一個重要步驟,我們現在準備探討這個步驟.
? tone mapping(色調映射) 或 tone reproduction是將屏幕輻射值轉換為顯示器輻射值的過程.這個過程的轉換成為"end-to-end transfer function"或"scene-to-screen transfer function".image state的關鍵是理解tone mapping.這有兩個基礎的image states.Scene-referred images 指場景輻射值;display-referred images指顯示輻射值.Image state與編碼無關.任何狀態的圖像有可能是線性編碼也可能是非線性編碼.圖8.13展示了圖像狀態、色調映射和顯示編碼的方式在圖像處理管道中,處理從初始渲染到最終顯示的顏色值。
?
? 關于色調映射的目標,有幾個常見的誤解。這并不是為了確保場景到屏幕的轉換是一種身份轉換,而是為了在顯示器上完美地再現場景輻射值。它也不能將場景的高動態范圍中的每一點信息“擠壓”到低動態范圍中。盡管考慮到場景和顯示動態范圍之間的差異,但顯示的動態范圍確實起著重要作用。
? 為了理解tone mapping,最好將之視為圖像復制實例.圖像復制的目標是創建一個(盡可能近距離,給定顯示屬性和視角)原觀察場景的復制的圖像.
? 有一種圖像復制的目標略有不同.首選圖像復制旨在創建一個顯示參考圖像,在某種意義上比原始場景看起來更好.將在8.2.3討論.
? 再現與原始場景相似的感性印象的目的是具有挑戰性的是,考慮到典型場景中的亮度范圍超過了顯示能力的幾個數量級。AT的飽和度(純度)至少場景中的一些顏色也可能遠遠超過顯示功能.然而,攝影、電視和電影確實產生了令人信服的效果。與文藝復興時期的畫家一樣,原始場景的感性相似性。這一成就利用人類視覺系統的某些特性是可能的.
? 覺視系統補償絕對亮度的偏差,一種能力稱為適應。由于這種能力,一個戶外場景的復制顯示在昏暗的房間里的屏幕上可以產生與原始場景相似的感覺,盡管復制品的亮度小于原版的1%。然而,適應提供的補償是不完善的。在較低的亮度水平下,感知對比度降低(Stevens EECT),感知對比度也降低。(亨特·??铺?#xff09;
? 然而,相比之下,這種增長加劇了一個現有的問題。由于場景的動態范圍通常比顯示器的動態范圍大得多,因此我們必須選擇一個亮度值的窄窗口進行復制,該窗口上下的值將被剪裁為黑色或白色。增強對比度會進一步縮小此窗口。為了部分抵消暗值和亮值的剪切,軟滾動用于恢復陰影和高光細節。
? 所有這些都會導致一個乙狀結腸(S形)音調再現曲線,類似于光化學薄膜提供的曲線。這不是意外。柯達和其他公司的研究人員仔細調整了光化學薄膜乳劑的性能,以產生有效且令人滿意的圖像復制。由于這些原因,在討論聲調映射時經常出現形容詞“電影化”。
? 曝光的概念對于色調映射至關重要。攝影,曝光指控制落在lm或傳感器上的光量。然而,在渲染中,曝光是在引用的場景上執行的線性縮放操作。在應用色調復制轉換之前的圖像。暴露的棘手方面確定要應用的比例因子。調子的復制轉換和曝光是緊密聯系在一起的。音調變換通常是用期望它們將應用于已曝光的場景參考圖像一定的方式。
? 通過曝光縮放然后應用色調復制變換的過程是一種全局色調映射,其中相同的映射應用于所有像素。相比之下,局部色調映射過程使用不同的映射,基于周圍像素和其他因素,將像素映射到像素。實時應用程序幾乎只使用全局色調映射(少數例外),因此我們將重點討論這種類型,討論第一色調復制轉換,然后曝光。
? 重要的是要記住,場景引用的圖像和顯示引用的圖像是根本不同的。物理操作僅在對場景引用的數據執行時有效。由于顯示的局限性以及我們討論過的各種感知效果,兩種圖像狀態之間總是需要進行非線性變換。
Tone Reproduction Transform
? scene-referred 指根據場景烘焙得到的圖像
? display-referred 指顯示器用到的圖像
? 色調復制變換.將場景-輸入圖像值通過一維曲線映射為顯示輸出圖像.這條曲線可以獨立作用于R、G、B或亮度.在前一種情況下,結果將自動顯示在顯示范圍內,因為每個顯示引用的RGB通道值都將介于0和1之間。但是,在RGB通道上執行非線性操作(尤其是剪切)可能會導致飽和度和色調的偏移,以及亮度的期望偏移。喬爾根尼和馬登指出,飽和狀態的轉變在知覺上是有益的。大多數復制轉換用來抵消史蒂文斯效應(以及環繞和觀看都是效果)的對比度增強將導致相應的飽和增強,這也將抵消狩獵效應。然而,色調變化通常被認為是不可取的,現代色調轉換試圖通過在色調曲線后應用額外的RGB調整來減少它們。
? 通過將tone 曲線作用于亮度(luminance),色調(hue)和飽和度(saturation)能夠避免或減少偏移(shifts).但這可能會導致顯示圖像的顏色超過顯示器的RGB色域–需要映射回去.
? 調映射的一個潛在問題是,將非線性函數應用于場景引用的像素顏色可能會導致某些抗鋸齒技術出現問題。這個問題在5.4.2討論.
? 這有一些關于tonemap曲線的介紹和論文索引
? Reinhard tone 算法[1478][1478]是最早應用于實時渲染的色調映射轉換. 它讓較暗值不變,讓較亮的值漸進的編委白色.Drago等提出了一個類似的tone-mappinng算法[375][375]–調整輸出顯示的亮度以適應HDR顯示器.Duiker創建了用于視頻游戲的一個柯達膠片近似曲線[391,392][391,392].這個曲線后來被Hable[628][628]修改添加了更多控制參數,用于休息"Uncharted 2"(神秘海域2).這個曲線影響深遠,一些游戲中都用了"Hable filmic curve".Hable后來又提出了一個新的更好的曲線[634][634].
? Day[330][330]創建了一個s型曲線被用于Insomniac Games和Call of Duty:Advanced Warfacre.Gotanda[571,572][571,572]創建了一個模擬膠片和數碼相機的響應.
傳感器。這些曲線被用于Star Ocean 4等游戲.lottes[1081][1081]指出,顯示器對顯示器有效動態范圍的影響是顯著的,并且高度依賴于室內照明條件.因此,提供用戶可調整的tone-mapping曲線很重要.他提出了一種tone復制轉換,支持這種可用于SDR和HDR顯示器的調整.
? Academy Color Encoding System(ACES)由Science and Technology Council of the Academy of Motion Picture Arts(電影藝術學院科學技術委員會)為電影和電視行業提供色彩管理管理而擬定的標準.第一部分是參考渲染轉換(reference rendering transform,RRT),它將場景參考值轉換為標準設備中性輸出空間中的顯示參考值(稱為輸出顏色編碼規范(output color encoding specification,OCES)).第二部分是輸出設備轉換(output device transform,ODT),將OCES轉換為最終顯示編碼.有許多不同的ODTs,每種都為特定的顯示設備和觀察情況設計的.RRT和適當的ODT的串聯創建了整體轉換.這種模塊化結構便于處理各種顯示設備和觀察條件.Hart[672]建議對需要同時支持SDR和HDR顯示的應用程序進行ACES tone mapping轉換.
? 雖然ACES是為電影和電視機設計的,但它在實時軟件中應用正快速增長.UE[1802][1802]默認支持ACES tone mapping(見TonemapCommon.hlsl).Unity[1801][1801]也支持它(見[Unity-Technologies/PostProcessing][https://github.com/Unity-Technologies/PostProcessing.git]的ColorGrading.cs和Colors.hlsl Lut2DBaker.shader).和Patry[1359][1359]一樣,Narkowicz給出了一個適配SDR和HDR ODTs的ACES RRT[1260, 1261][1260, 1261].Hart[672][672]給出了一個參數可控的ACES ODTs來支持大量不同的設備.
? HDR顯示器的Tone mapping需要注意,應為顯示器也有自己的色調映射.Fry[497][497]展示了Frostbite (寒霜)游戲引擎中用到的一系列tone mapping轉換.它們對SDR顯示器應用了相對激進的色調映射曲線,對使用HDR10信號路徑的顯示器應用了較不激進的色調映射曲線(根據顯示器的峰值亮度有一些變化),而對使用杜比視覺路徑的顯示器不應用色調映射(換句話說,它們依賴內置的杜比視覺色調映射顯示器.Frostbite tone 映射曲線被設計為中性的–沒有對對比度和色調的明顯的改變.目的是通過應用color grading(見8.2.3),應用任何所需的對比度和色調調整.為此,色調映射轉換時在ICTCP?IC_TC_P?ICT?CP??顏色空間[364][364]進行–改顏色空間旨在實現色度軸(chrominance)和亮度軸(luminance axes)之間的均勻性和正交性.Frostbite 通過變換色調映射亮度并隨著亮度趨近白色(display white)而逐漸降低飽和度,這提供了一種沒有色調(hue)偏移的感覺得變換.見[安柏霖的博文寒霜引擎的HDR渲染探索][https://blog.csdn.net/toughbro/article/details/78148891].
? 具有諷刺意味的是,為了在之前的轉換中利用色調變化而得到的資源(如重效果)出現問題后,寒霜團隊最終修改了轉換,使用戶能夠重新引入某種程度的色調變化,以顯示所引用的顏色.
Exposure
? 曝光.(之后我會嘗試結合unity,ue4,overwatch的bloom來分析bloom是怎么回事以及實際中應該如何考慮效果和效率).
? 計算曝光的通用的技術家族依賴于場景亮度值.為了避免阻塞,通常使用采樣上一幀的結果.
? 遵循Reinhard等的建議[1478][1478]早起實現中使用的一個度量是場景平均亮度值的對數平均(log-average),通常,曝光是通過計算幀的對數平均數來確定的[224,1674][224,1674],這個對數平均值通過后處理passes中的一系列降采樣直到最后一個值得到.
? 使用平均值會導致對異常值敏感,比如少量明亮的像素會影響整個幀的曝光.之后的實現嘗試通過使用亮度值的柱狀圖來解決這個問題,柱狀圖中的數據點可用于改進結果.比如,在一個接一個的橙色
隨后的實現通過使用亮度值的柱狀圖來改善這個問題.而不是平均值,柱狀圖允許計算中位數,這是更強大的。柱狀圖中的其他數據點可用于改進結果.例如,The Orange Box(半條命2)中基于第95個百分位和中位數的啟發式方法被用來確定暴露量[1821][1821].Mittring描述了使用計算著色程序生成亮度柱狀圖[1229][1229]。
? 但是目前討論的技術的問題是:像素的亮度對于得到曝光而言是一個錯誤的單位.如果我們看看攝影實踐,例如Ansel Adams的分區曝光法(Zone System)[10][10]以及如何使用入射光度表來設置曝光,那么很明顯,最好單獨使用光照(不受表面反照率的影響)來確定曝光[757][757].這么做是有效的,因為相機曝光是用來抵消光線的.這就產生了一種主要顯示物體表面顏色的印刷品,這與人類視覺系統的顏色恒定性(color constancy)相對應.這種方式處理曝光能確保傳遞給tone transform正確的值.比如大多數電影或電視廠商的tone transforms采用曝光場景值0.18映射到顯示值0.1–期望0.18表示主場景18%灰度值[1418, 1602][1418, 1602].
? 這個模擬已經在開始使用了.比如合金裝備5(MetalGear Solid V:Ground Zeroes)有一個基于光照強度的曝光系統[921][921].在許多游戲中,靜態曝光級別是根據已知的場景照明值為環境的不同部分手動設置的.這樣做可以避免曝光中的意外動態變化.
Color Grading
? 8.22中提及再加工圖像,目的是為了讓它比原圖像看起來更好.通常,這涉及到對圖像顏色的創造性操作,這一過程稱為顏色分級(color grading).(注意與tone mapping聯系與區分).
? 數字色彩分級技術在電影行業已經應用了一段時間.早起例子如電影"逃獄三王"(O Brother, Where Art Thou?(2000))和"天使愛美麗"(Amelie(2001)).Color Grading通常通過交互操作示例場景圖像中的顏色來執行,直到實現所需的創造性“外觀”.然后在一個快照或序列中的所有圖像上重新應用相同的操作序列.Color Grading從電影到游戲都有,現在在那里被廣泛使用[392, 424, 756, 856, 1222][392, 424, 756, 856, 1222].
? Selan[1601][1601]演示了如何“烘焙”從Color Grading或圖像編輯應用程序到三維顏色查找表(LUT)的任意顏色轉換.這個表將輸入的R,G,B視為x,y,z坐標在表中查找對于的點的值作為輸出顏色.英雌該技術可以用于任何需要根據輸入得到輸出的映射–只要不超過LUT的限制.Selan的烘焙過程從獲取一個標識LUT(將每個輸入顏色映射到相同顏色的標識LUT)開始,然后將之“切片”以創建二維圖像.然后將此切片的LUT圖像加載到Color Grading應用程序中,并對其應用拒絕所需創造性外觀的操作.需要注意的是,只對LUT應用顏色操作,避免空間操作,如模糊.然后將編輯的LUT保存下來,“打包”成三維GPU(或2D)紋理,在渲染應用程序中用于動態應用相同的顏色轉換以渲染像素.Iwanicki[806][806]提出了一種巧妙的方法,可以在使用最小二乘法最小化的LUT中存儲顏色轉換時減少采樣誤差.
?
? 上圖是神秘海域4的一個場景圖像.上側圖像無Color Grading.左下為display-referred(post-tone-mapping)color grading.右下為scene-referred(pre-tone-mapping)color grading.
? 在之后的出版中,Selan[1602][1602]區分了兩種color grading方式.一種方法是對scene-referred顏色進行color grading.另一種方法是對通過顯示預覽轉換的display-referred數據執行color grading.雖然display-referred color grading更簡單,但是scene-referred color grading可以產生更高的精細度結果.
? 當實時軟件采用color grading時,display-referred方法已經占據主導地位[756,856][756,856].然而,由于其較高的視覺質量,場景參考方法自那時起就獲得了吸引力[198,497,72][198,497,72],如圖8.16所示.通過Scene-referred 數據進行color gradign還能降映射曲線烘焙到LUT[672][672]以節省計算了–如神秘海域4的做法[198][198].
? 在LUT前,scene-referred 數據必須壓縮到[0,1][1601][1601][1601].寒霜引擎的知覺量化器(perceptual quantizer OETF)就是用于這個目的,盡管能用更簡單的曲線.Duiker[392][392]使用了一個對數曲線,Hable建議使用一次或兩次平方根計算.
? Hable[635][635]對常見的顏色分級操作和實施注意事項進行了很好的概述.
總結
? 光的輻射通過 CIE XYZ得到CIE XYZ顏色空間的三顏色值 CIEXYZCIE_{XYZ}CIEXYZ?
CIEXYZCIE_{XYZ}CIEXYZ?可以通過。。得到亮度和色度
通過XYZ顏色空間中轉,以原點和白點輔助,可以實現任意RGB顏色空間轉換.
比如亮度計算公式就是RGB-to-XYZ的Y分量的計算
擴展
? 色度學和顏色科學的圣經是Wyszecki和斯蒂爾斯的[1934][1934].其他良好的比色法參考包括通過Hunt[789][789]和Fairchild[456][456]的彩色外觀模型.Selan的白皮書[1602][1602]對圖像復制和.“場景到屏幕”問題.希望進一步了解此主題的讀者通過Hunt[788][788]和數字色彩管理來復制色彩作者:喬爾根尼和馬登[537][537]為優秀的參考文獻.里面的三本書安塞爾亞當斯攝影系列[9,10,11][9,10,11],尤其是底片,提供了一個理解的藝術和科學長征攝影如何影響理論和實踐的圖像復制到今天.最后,Reinhard等人的《彩色成像:基礎和應用》[1480][1480]一書對整個研究領域進行了全面的概述.
引用
[9]: Adams, Ansel, The Camera, Little, Brown and Company, 1980. Cited on p. 291
[10]: Adams, Ansel, The Negative, Little, Brown and Company, 1981. Cited on p. 289, 291
[11]: Adams, Ansel, The Print, Little, Brown and Company, 1983. Cited on p. 291
[198]: Brinck, Waylon, and Andrew Maximov, “The Technical Art of Uncharted 4,” SIGGRAPH
production session, July 2016. Cited on p. 290
[224]: Calver, Dean, “Deferred Lighting on PS 3.0 with High Dynamic Range,” in Wolfgang Engel,ed., ShaderX3, Charles River Media, pp. 97{105, 2004. Cited on p. 288
[330]: Day, Mike, “An Effcient and User-Friendly Tone Mapping Operator,” Insomniac R&D Blog,Sept. 18, 2012. Cited on p. 286
[364]: Dolby Laboratories Inc., “ICtCp Dolby White Paper,” Dolby website. Cited on p. 276, 287
[375]: Drago, F., K. Myszkowski, T. Annen, and N. Chiba, \Adaptive Logarithmic Mapping for
Displaying High Contrast Scenes,’ Computer Graphics Forum, vol. 22, no. 3, pp. 419{426,
[391]: Duiker, Haarm-Pieter, and George Borshukov, \Filmic Tone Mapping," Presentation at Electronic Arts, Oct. 27, 2006. Cited on p. 286
[392]: Duiker, Haarm-Pieter, “Filmic Tonemapping for Real-Time Rendering,” SIGGRAPH Color
Enhancement and Rendering in Film and Game Production course, July 2010. Cited on
p. 286, 288, 289, 290
[424]: Endres, Michael, and Frank Kitson, "Perfecting The Pixel: Re ning the Art of Visual Styling,"Game Developers Conference, Mar. 2010. Cited on p. 289
[456]: Fairchild, Mark D., Color Appearance Models, Third Edition, John Wiley & Sons, Inc., 2013.Cited on p. 276, 278, 291
[497]: Fry, Alex, “High Dynamic Range Color Grading and Display in Frostbite,” Game Developers Conference, Feb.{Mar. 2017. Cited on p. 283, 287, 288, 290
[537]: Giorgianni, Edward J., and Thomas E. Madden, Digital Color Management: Encoding Solutions,Second Edition, John Wiley & Sons, Inc., 2008. Cited on p. 286, 291
[571]: Gotanda, Yoshiharu, “Star Ocean 4: Flexible Shader Management and Post-Processing,”
Game Developers Conference, Mar. 2009. Cited on p. 286
[572]: Gotanda, Yoshiharu, “Film Simulation for Videogames,” SIGGRAPH Color Enhancement and Rendering in Film and Game Production course, July 2010. Cited on p. 286
[628]: Hable, John, “Uncharted 2: HDR Lighting,” Game Developers Conference, Mar. 2010. Cited on p. 286, 288
[634] Hable, John, “Filmic Tonemapping with Piecewise Power Curves,” Filmic Worlds Blog, Mar.26, 2017. Cited on p. 286
[667]: Harada, Takahiro, Jay McKee, and Jason C. Yang, “Forward+: A Step Toward Film-Style
Shading in Real Time,” in Wolfgang Engel, ed., GPU Pro4, CRC Press, pp. 115{135, 2013.
Cited on p. 887, 895, 896, 897, 904
[672]: Hart, Evan, “UHD Color for Games,” NVIDIA White Paper, June 2016. Cited on p. 161,
165, 278, 281, 283, 287, 290
[756] Hoffman, Naty, “Color Enhancement for Videogames,” SIGGRAPH Color Enhancement andRendering in Film and Game Production course, July 2010. Cited on p. 289, 290
[757]: Hoffman, Naty, “Outside the Echo Chamber: Learning from Other Disciplines, Industries,and Art Forms,” Opening keynote of Symposium on Interactive 3D Graphics and Games,Mar. 2013. Cited on p. 284, 289
[788]: Hunt, R. W. G., The Reproduction of Colour, Sixth Edition, John Wiley & Sons, Inc., 2004.
Cited on p. 291
[806]: Iwanicki, Micha l, “Lighting Technology of The Last of Us,” in ACM SIGGRAPH 2013 Talks,
ACM, article no. 20, July 2013. Cited on p. 229, 289, 467, 476, 486, 498
[856] Kaplanyan, Anton, “CryENGINE 3: Reaching the Speed of Light,” SIGGRAPH Advances in
Real-Time Rendering in Games course, July 2010. Cited on p. 196, 289, 290, 848, 849, 887,
892
[921]: Kojima, Hideo, Hideki Sasaki, Masayuki Suzuki, and Junji Tago, “Photorealism Through the Eyes of a FOX: The Core of Metal Gear Solid Ground Zeroes,” Game Developers Conference, Mar. 2013. Cited on p. 289
[1081]: Lottes, Timothy, "Advanced Techniques and Optimization of -HDR- VDR Color Pipelines,"Game Developers Conference, Mar. 2016. Cited on p. 281, 286, 1010
[1222] Mitchell, Jason, Gary McTaggart, and Chris Green, “Shading in Valve’s Source Engine,”
SIGGRAPH Advanced Real-Time Rendering in 3D Graphics and Games course, Aug. 2006.
Cited on p. 289, 382, 402, 499
[1229]: Mittring, Martin, “The Technology Behind the `Unreal Engine 4 Elemental Demo’,” Game Developers Conference, Mar. 2012. Cited on p. 288, 371, 383, 495, 526, 536, 571
[1260]: Narkowicz, Krzysztof, “ACES Filmic Tone Mapping Curve,” Krzysztof Narkowicz blog, Jan.
6, 2016. Cited on p. 287
[1261]: Narkowicz, Krzysztof, “HDR Display|First Steps,” Krzysztof Narkowicz blog, Aug. 31, 2016.Cited on p. 287
[1359]: Patry, Jasmin, “HDR Display Support in Infamous Second Son and Infamous First Light
(Part 1),” glowybits blog, Dec. 21, 2016. Cited on p. 287
[1360]: Patry, Jasmin, “HDR Display Support in Infamous Second Son and Infamous First Light
(Part 2),” glowybits blog, Jan. 4, 2017. Cited on p. 283
[1418]: Pines, Josh, “From Scene to Screen,” SIGGRAPH Color Enhancement and Rendering in
Film and Game Production course, July 2010. Cited on p. 285, 289
[1478]: Reinhard, Erik, Mike Stark, Peter Shirley, and James Ferwerda, \Photographic Tone Reproduction for Digital Images," ACM Transactions on Graphics (SIGGRAPH 2002), vol. 21,
no. 3, pp. 267{276, July 2002. Cited on p. 286, 288
[1480]: Reinhard, Erik, Erum Arif Khan, Ahmet Oguz Akyuz, and Garrett Johnson, Color Imaging:Fundamentals and Applications, A K Peters, Ltd., 2008. Cited on p. 291
[1601]: Selan, Jeremy, “Using Lookup Tables to Accelerate Color Transformations,” in Matt Pharr,ed., GPU Gems 2, Addison-Wesley, pp. 381{408, 2005. Cited on p. 289, 290
[1602]: Selan, Jeremy, “Cinematic Color: From Your Monitor to the Big Screen,” VES White Paper,Cited on p. 166, 283, 289, 290, 291
[1674]: Sousa, Tiago, “Adaptive Glare,” in Wolfgang Engel, ed., ShaderX3, Charles River Media,
pp. 349{355, 2004. Cited on p. 288, 527
[1706]: Stone, Maureen, A Field Guide to Digital Color, A K Peters, Ltd., Aug. 2003. Cited on p. 276
[1802]: Unreal Engine 4 Documentation, Epic Games, 2017. Cited on p. 114, 126, 128, 129, 262, 287, 364, 611, 644, 920, 923, 932, 934, 939
[1821]: Vlachos, Alex, “Post Processing in The Orange Box,” Game Developers Conference, Feb.Cited on p. 288, 538
總結
以上是生活随笔為你收集整理的PBR--RTR4笔记--第八章 光与颜色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Mac制作iPhone铃声教程,iT
- 下一篇: 百会:物联网推动CRM创造新型服务