Unity Gamma校正
发表于2018-07-01
项目用了PBR做次时代,所以要求光照计算必须在线性空间下计算,在图像预处理中经常通过Gamma校正实现像素修正,下面就和大家介绍下gamma linear空间和gamma校正。
1.开发流程
也就是对于abedo等类似需要美术通过DCC工具产生的。由于美术都是通过显示器来输出,存储空间都在srgb空间下,所以在进行光照处理之前需要power2.2转到linear空间下,在进行光照处理。处理完以后,在进行power1/2.2输出到fbo下。然后显示器进行gamma 校正,就能表现出真实的世界了。
2.哪些资源需要gamma校正
- 存储在srgb空间下的数据都需要进行,距离在于abedo或者其他美术手绘产生的图片。
- 美术通过颜色吸附工具获取的颜色或者顶点色。
- 未开启srgbRead标志的rendertexture。
3.unity相关操作
首先Projectsetting选择linearspace,opengles3.0 。然后图片类勾选srgb标志为图片是srgb空间下的。unity在资源处理时会把图片转化为线性空间,同时对于吸附的颜色也有相同处理。
新建的rendertexture可以选择是否为线性
4.相关问题
- 模拟器不支持opengl3.0 导致无法用线性空间
- ui需要在gamma空间下计算。