unity color space 取消了吗
答案:2 悬赏:40 手机版
解决时间 2021-01-30 03:05
- 提问者网友:愿为果
- 2021-01-29 03:07
unity color space 取消了吗
最佳答案
- 五星知识达人网友:野味小生
- 2021-01-29 03:53
这一周都在看Unity的Color Space相关的内容,看明白了,写下来给自己和他们参考,有不对的地方欢迎指正.
显示器所能显示的颜色很有限,于是业界出了sRGB颜色空间,Photo Shop默认的颜色空间就是这个.照相机不用这个,用别的,这里不多说了.
早期的显示器,电压和颜色变化不是线性关系,是幂函数关系:G(x)^Gamma,Gamma取2.2.于是要想正确在显示器上显示颜色,就该对图本身进行一次校正:G(x)^(1/Gamma),这样最终图像在屏幕上显示就是正确的.
用Photo Shop做出的图保存之后,是经过了G(x)^(1/Gamma)校正了的,以便显示在显示器上时正确.接着说Unity的Color Space中的Gamma Space和Linear Space.
在Shader中计算颜色是在线性空间进行的.
Gamma Space:加载贴图(此时贴图是校正了的),采样,计算,再写到缓冲区,显示在屏幕上.直接显示图没有问题,因为两次运算结果是一个线性变换,能反应出原图.但是如果在原图基础上进行了颜色计算,就会:Final = G(x)^(1/Gamma)(原图) * S(x)(线性颜色计算) * G(x)^Gamma(显示器显示颜色) ,颜色如果S(x)变化了,但Final不是线性变化的,带来了颜色显示不准确.
显示器所能显示的颜色很有限,于是业界出了sRGB颜色空间,Photo Shop默认的颜色空间就是这个.照相机不用这个,用别的,这里不多说了.
早期的显示器,电压和颜色变化不是线性关系,是幂函数关系:G(x)^Gamma,Gamma取2.2.于是要想正确在显示器上显示颜色,就该对图本身进行一次校正:G(x)^(1/Gamma),这样最终图像在屏幕上显示就是正确的.
用Photo Shop做出的图保存之后,是经过了G(x)^(1/Gamma)校正了的,以便显示在显示器上时正确.接着说Unity的Color Space中的Gamma Space和Linear Space.
在Shader中计算颜色是在线性空间进行的.
Gamma Space:加载贴图(此时贴图是校正了的),采样,计算,再写到缓冲区,显示在屏幕上.直接显示图没有问题,因为两次运算结果是一个线性变换,能反应出原图.但是如果在原图基础上进行了颜色计算,就会:Final = G(x)^(1/Gamma)(原图) * S(x)(线性颜色计算) * G(x)^Gamma(显示器显示颜色) ,颜色如果S(x)变化了,但Final不是线性变化的,带来了颜色显示不准确.
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-01-29 04:38
插值是根据lerp(a,b,t)中的第三个参数t来返回a和b之间的值 如果t是变化的,比如time.time,则在一秒之内从a变化到b
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯