關於 unity 中顏色空間問題的總結

2021-08-14 12:37:14 字數 910 閱讀 9817

首先官方文件肯定是我們參考的重點,最重要的就是這幾篇文章了:

這裡總結一下用法:

有乙個大前提是,顯示器在顯示顏色前,總是會進行一次gamma矯正。

首先是對非線性輸入的紋理資源的處理(這裡主要指的是貼圖,像法線一類的資訊紋理理論上只是為了放資料用的,可以算是線性的),在2017版本中紋理資源上的那個 srgb 選項很重要。

開了,則紋理在取樣時,會被當成是非線性輸入,會進行gamma矯正。

關了,則紋理在取樣時,會被當成線性輸入的,不會矯正了,直接被拿去計算了。

然後是 other settings 中的 color space。

linear 空間下的話:

預設取樣,計算都是在linear空間下。

在shader中計算完成後,將顏色轉換到gamma空間,然後寫入顏色快取,等待顯示器顯示。

然後顯示器會自動經過gamma矯正來顯示顏色。

gamma空間下的話:

預設取樣,計算都是在gamma空間下。

在shader中計算完成後,直接寫入顏色快取,等待顯示器顯示。

然後顯示器會自動經過gamma矯正來顯示顏色。

綜上所述,gamma矯正這一塊,現在被分割成了輸入和輸出2部分。

輸入時:

要合理區分紋理資源是屬於線性的,還是非線性輸入的,好在輸入的時候決定是不是要給它搞成srgb的,

輸出時:

感覺主要是因為在unity沒有這個功能前,就已經存在很多種其它的矯正方式。

比如,自己把矯正**寫在了材質的shader裡,在攝像機上做了特效後處理式的gamma矯正效果。

你得照顧相容一下其他人的專案和感受吧,所以你就要決定要不要最終將顏色轉回到gamma空間去,等著給顯示器用。

因為顯示器也是不講道理的,它最終總會進行一次gamma矯正的,然後才顯示的。

unity 顏色空間linear下色差問題

我們專案美術是在linear下製作資源的,做一些比較真實一點的效果會比較容易些,在editer模式下看是比較精美的,但是打包完放在手機上,明顯有一些色差問題,如圖 在手機上的效果 在editer下的效果 後來找了很久,最終發現是lightmap計算方式不一致導致的,直接修改unity的unitycg...

關於顏色空間

顏色空間模型 rgb域 百科 rgb 超實用的rgb顏色查詢對照表 良心維基百科 rgb顏色空間 維基百科 srgb 維基百科 adobe rgb顏色空間 cmyk域 模式 305545 百科 cmyk模式 顏色模型 20994361 百科 cmyk顏色模型 維基百科 cmyk顏色模型 yuv域 h...

Unity中的顏色

rgb是我們接觸最多的顏色空間,由三個通道表示一幅影象,分別為紅色 r 綠色 g 和藍色 b 這三種顏色的不同組合可以形成幾乎所有的顏色,但是任何顏色都與這三個分量有關,所以連續變換顏色時並不直觀,想對影象的顏色進行調整需要更改這三個分量才行,而自然環境下獲取的影象容易受自然光照 遮擋和陰影等情況的...