standard-unlit方式,颜色为什么与原贴图不一致呢?

原图,creator中的贴图预览和模型。上面的颜色值都不一样,这是为什么呢?

creator官方的SRGBToLinear似乎会让颜色偏亮一些。

我大概怀疑是effect中的SRGBToLinear函数实现的问题,于是自己gpt了一个srgbToLinear函数

  float srgbToLinear(float srgb) {
    if (srgb <= 0.04045) {
        return srgb / 12.92;
    } else {
        return pow((srgb + 0.055) / 1.055, 2.4);
    }
  }
  vec3 convertSrgbToLinear(vec3 color) {
    return vec3(srgbToLinear(color.r), srgbToLinear(color.g), srgbToLinear(color.b));
  }

颜色接近了一些,但是依然不完全相同。

或者,cocos对于贴图的输入不是以srgb方式进行的吗?

unlit模型也不能让模型上的取色与贴图完全一样吗?

关闭scene的HDR

1赞

哦,的确啊。我以为关了Skybox的Enabled就可以,这HDR和LDR依然管用呢。image
是我这样关对吧?
看上去颜色基本上是一致了。和外面的原图差个1/256