[Unity3d]总结Gamma Space与Linear Space

本文总结了Unity3d中的两种颜色空间——Gamma Space和Linear Space。在Linear Space下,GPU会自动进行颜色空间转换,而在Gamma Space时,GPU不再做颜色转换,纹理颜色空间不明。详细阐述了两种空间在纹理读取、计算和显示过程中的差异。
摘要由CSDN通过智能技术生成

摘要

看了一些gamma相关内容,记录一下目前的理解,主要是针对unity中的两种color space。

正文

在unity的这个路径下Edit->Project Settings->Player->Other Settings,可以选择linear空间或者gamma空间。这两种空间会发生什么事,见下。

当ColorSpace选择LinearSpace时

第一张图:shader中tex2D读取颜色参与计算。
LinearSpace时,除非对指定图片选择了bypass sRGB,否则所有纹理都会变成sRGB格式。
对于sRGB的纹理,GPU会自动将colorG0(偏亮)转换到linear space,即colorL0(偏暗)。也就是说,在此转换之前,存储在纹理中的颜色colorG0是在gamma space的(偏亮)。
shader中tex2D前后发生的事情

第二张图:shader计算结果到写入color buffer。
所有计算应该发生在linear space,计算结束后需GPU会将该像素颜色再次转换到gamma space,再写入color buffer。
shader计算结果到写入color buffer中间发生的事

第三张图:显示器把color buffer显示到眼睛。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值