GPU Gems1 - 22 颜色控制(Color Controls)
這章將在游戲中圖像處理的討論,擴(kuò)展到技術(shù)和藝術(shù)上控制顏色的方法和應(yīng)用,包括將圖像從一些的色彩空間中移入移出,以及快速地給任何2D或3D場(chǎng)景加上精美的色調(diào)。
色彩校正(Color Correction)是幾乎所有印刷和膠片成像應(yīng)用的一部分。色彩校正可用于將彩色圖像從一個(gè)色彩空間移動(dòng)到另一個(gè)色彩空間。
我們?cè)陔娨暋㈦s志和電影中剪刀的大部分圖像,都經(jīng)過(guò)了非常小心的彩色校正和控制。對(duì)于這個(gè)過(guò)程的理解,可以幫助開(kāi)發(fā)者在實(shí)時(shí)應(yīng)用程序中得到同樣華美的視覺(jué)效果。
色彩校正通常有兩種做法:一是各個(gè)通道的校正,分別是改變紅色、綠色和藍(lán)色各成分;二是混色操作,基于紅、綠、藍(lán)各個(gè)成分的同時(shí)操作,得到每個(gè)通道的輸出值。
色彩校正的機(jī)理可以簡(jiǎn)潔而容易地在一個(gè)shader中描述。重要的是,美術(shù)和程序員使用的普通工具就能有效地控制他們。在這章中,運(yùn)用Photoshop創(chuàng)建控制資源,然后通過(guò)像素shader應(yīng)用到實(shí)時(shí)程序中(敲重點(diǎn))。
在Photoshop中提供了一些基于通道校正的工具。如級(jí)別(levels)和曲線(Curves)工具。
其中曲線是仿制了化學(xué)中的交叉處理(cross-processing)外觀,確切地說(shuō),就是在C41化合物中處理E6叫絕所產(chǎn)生的假顏色外觀。這樣的處理已在印刷、電影和電視領(lǐng)域使用多年。
重新創(chuàng)建交叉處理效果的Photoshop曲線?
偽交叉處理 (a)原始圖 (b)曲線調(diào)節(jié)之后?
首先制作紋理
?
RGB灰度范圍和調(diào)節(jié)后的RGB梯度?
然后可以使用下面幾行shader代碼運(yùn)用于輸出顏色,使用色彩校正紋理映射,可以隨意地用曲線工具重新創(chuàng)建任何色彩變化:
float3 InColor = tex2D(inSampler, IN.UV).xyz; float3 OutColor; OutColor.r = tex1D(ColorCorrMap, InColor.r).r; OutColor.g = tex1D(ColorCorrMap, InColor.g).g; OutColor.b = tex1D(ColorCorrMap, InColor.b).b;?也就是說(shuō),使用每個(gè)原始的紅、綠和藍(lán)像素的灰度值,確定在梯度紋理中我們尋找的相關(guān)位置,然后由梯度紋理本身定義對(duì)新顏色的重映射,即由復(fù)雜曲線調(diào)節(jié)所定義的新顏色,如下圖。
?
?可以通過(guò)把輸入RGB值乘上一個(gè)矩陣進(jìn)行不同彩色空間之間的轉(zhuǎn)換。
float4 colorCubePS(vertexOutput IN,sampler2D ColorTex,float3x3 RGBxform) : COLOR {float3 texColor = tex2D(ColorTex, IN.UV);float3 result = mul(RGBxform, texColor);return float4(result, 1.0); } DCC工具所做的彩色立方體變換預(yù)覽?
?
關(guān)鍵詞提煉】
顏色控制(Color Controls)
色彩校正(Color Correction)
基于通道的顏色校正(Channel-Based Color Correction)
灰度變換(Grayscale Conversion)
色彩空間變換(Color-Space Conversions)
圖像處理(Image Processing)
總結(jié)
以上是生活随笔為你收集整理的GPU Gems1 - 22 颜色控制(Color Controls)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GPU Gems1 - 23 景深技术综
- 下一篇: GPU Gems1 - 25 用纹理贴图