關於Unity gamma校正

2021-10-04 20:12:51 字數 2526 閱讀 3245

現實 => 捕捉裝置 => 顯示器 => 顯示影象

encoding decoding

1/2.2 2.2

1.liner空間

本身亮度與顯示的亮度成線性相關 y=x

2.srgb空間(encoding)

輸入與輸出亮度成冪相關 y = x ^ (1/2.2)

3.crt顯示顏色 (decoding)

由於顯示器硬體特點 輸入與輸出的亮度成冪相關 y = x ^ 2.2

後面的顯示器 為了相容

會自己做乙個gamma校正 讓srgb的圖正常顯示

4.srgb剛好補償crt偏暗的顏色

5.unity

a.gamma 模式 不作任何校正 (ps也是此模式)

流程 srgb(1/2.2) ->顯示器(2.2)

b.liner 模式 srgb勾選 認為是srgb空間的 先進行gamma校正 到liner空間

不勾選 認為你是liner空間的 就不處理

在進行所有的計算完成之後

會進行反gamma 提亮 來補償顯示器

流程 srgb(1/2.2) -> unity srgb轉換(2.2) ->unity liner 反gamma(1/2.2) ->顯示器(2.2)

問題:1.ps出的圖到unity liner下面 變亮了

主要是因為 unity liner 最後會做乙個 反gamma 提亮的操作

沒有勾選srgb 流程 srgb(1/2.2) ->unity liner 反gamma(1/2.2) ->顯示器(2.2) 最終結果1/2.2 變亮

勾選了srgb 就是上面的通用流程

2.srgb勾選之後 透明度有誤差

因為透明度是線性的 在「unity srgb轉換(2.2)」這個節點 沒有對alpha進行變換 但是在「unity liner 反 gamma(1/2.2)」這個節點進行了反變換

liner模式 ret = (srccolor^2.2 * srcalpha + dstcolor^2.2 * (1 - srcalpha) ) ^(1/2.2)

gamma模式 ret = srccolor * srcalpha + dstcolor * (1 - srcalpha)

目前只能用pow2.2的方法來修正一下混合問題

以上是我綜合了一大堆我看不懂的文章之後,寫了一點我能看懂的知識

貼一下參照吧

這個參照沒圖也是難受

貼一下我自己修改的shader ui-default的**吧

shader "ui/gammaadjust"

_color (

"tint"

, color)

=(1,1,1,1)

_stencilcomp (

"stencil comparison"

, float)=8

_stencil (

"stencil id"

, float)=0

_stencilop (

"stencil operation"

, float)=0

_stencilwritemask (

"stencil write mask"

, float)

=255

_stencilreadmask (

"stencil read mask"

, float)

=255

_colormask (

"color mask"

, float)=15

_alphaadjust

("alpha adjust"

, float)

=2.2

[toggle

(unity_ui_alphaclip)

] _useuialphaclip (

"use alpha clip"

, float)=0

} subshader

stencil

cull off

lighting off

zwrite off

ztest [unity_guiztestmode]

blend srcalpha oneminussrcalpha

colormask [_colormask]

pass

;struct

v2f;

sampler2d _maintex;

fixed4 _color;

fixed4 _texturesampleadd;

float4 _cliprect;

float4 _maintex_st;

float

_alphaadjust;

v2fvert

(fixed4

frag

(v2f in)

: sv_target

endcg

}}}

color.a = pow(color.a, 2.2); 就加了這麼一句話

搞個material貼到uiimage的material框就行了

gamma校正 OpenCV Gamma校正

gamma校正是一種非常重要的線性變換。對輸入影象的灰度值進行指數變換,進而校正亮度偏差,通常應用於擴充套件暗調的細節。gamma校正可使得影象看起來更符合人眼的特性。當gamma校正的值大於1時,影象的高光部分被壓縮而暗調部分被擴充套件 當gamma校正的值小於1時,影象的高光部分被壓縮而暗調部分...

關於GDAL的幾何校正問題

首先可以參照以下兩處資料 不過我按照上述資料並沒有成功,第乙個資料中給出了可執行的原始碼,但是實際結果並沒有做重取樣,好像只是把原始資料copy了乙份,僅對拷貝做了 投影設定和仿射變換設定,真實資料沒有重取樣。第二個資料中博主給出的原始碼在我這裡不能執行,每次均是執行到chunkandwarpima...

輻射定標 輻射校正 大氣校正 正射校正概念

dn值 digital number 遙感影像像元亮度值,記錄地物的灰度值。無單位,是乙個整數值,值大小與感測器的輻射解析度 地物發射率 大氣透過率和散射率等相關。反映地物的輻射率radiance 地表反射率 地面反射輻射量與入射輻射量之比,表徵地面對太陽輻射的吸收和反射能力。反射率越大,地面吸收太...