Unity Gamma校正

发表于2018-07-01
评论0 5.6k浏览
项目用了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空间下计算。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引