sRGB sampling allows the Unity Editor to render Shaders in linear color space when Textures are in gamma color space. When you select to work in linear color space, the Editor defaults to using sRGB sampling. If your Textures are in linear color space, you need to work in linear color space and disable sRGB sampling for each Texture. To learn how to do this, see Disabling sRGB sampling, below.
如需进一步阅读这方面的信息,请参阅以下相关文档:
对旧版 GUI 系统元素的渲染始终在伽马空间中完成。这意味着,对于旧版 GUI 系统,__Texture Type__ 设置为 Editor GUI and Legacy GUI 的纹理在导入时不会移除其伽马校正。
同样重要的是,如果查找纹理、遮罩和其他纹理存在有特殊意义且未应用伽马校正的 RGB 值,则必须绕过 sRGB 采样。这样可以防止被采样纹理的值在用于着色器之前删除不存在的伽马校正,确保使用磁盘上存储的原始值进行计算。Unity 假设 GUI 纹理和法线贴图纹理都是在线性空间中创作的。
为确保将纹理作为线性颜色空间图像导入,请在纹理的 Inspector 窗口中执行以下操作:
为纹理的预期用途选择适当的 Texture Type。
取消选中 sRGB (Color Texture)(如果显示了此选项)。