Unity Shader 伽马校正详解

真实世界亮度(线性)     图像亮度   真实亮度在图像差值递减
0.1                                      0.35            0.35
0.2                                      0.48            0.13
0.3                                      0.58            0.1
0.4                                      0.66            0.08
0.5                                      0.73            0.07
0.6                                      0.79            0.06
0.7                                      0.85            0.06
0.8                                      0.90            0.05
0.9                                      0.95            0.05
1                                          1                0.05

线性空间:
真实世界亮度0.2 -> gamma变亮编码到图像0.48 -> gamma矫正变暗解压到线性(真实) 0.2 参与线性计算
->编码到颜色缓冲0.48 ->显示器gamma矫正到0.2。

1. 亮度0.2,存储到gamma图变成0.48爆亮。
2. 通过勾选图片sRGB,采样时unity自动矫正pow(0.48, 2.2) = 0.2,线性值参与计算。
3. pow(0.2, 1/2.2)=0.48存入颜色缓存。
4. 显示器gamma矫正pow(0.48, 2.2)=0.2显示正常。

线性空间总结:
真实世界正常颜色 -> 图片(变亮) -> sRGB采样矫正变暗(正常颜色) shader计算 -> 放入颜色缓存(变亮) -> 屏幕gamma矫正变暗输出(正常颜色)

gamma空间总结:
真实世界正常颜色 -> 图片(变亮) -> shader计算 -> 放入颜色缓存 -> 屏幕gamma矫正变暗输出(正常颜色)

gamma空间线性空间


为什么要在线性空间下计算颜色值?
当计算出了亮度0.5时:
1. 在线性空间下存入颜色缓存为0.73,屏幕矫正显示为0.5,亮度正常。
2. 在gamma空间下存入颜色缓存为0.5,屏幕矫正显示为0.22,亮度变暗。
因此需要在线性空间下进行颜色计算。
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值