ios Metal Core图像内核工作ColorSpace

h79rfbju  于 11个月前  发布在  iOS
关注(0)|答案(1)|浏览(93)

我理解默认情况下,Core image使用扩展线性sRGB作为执行内核的默认工作颜色空间。这意味着Metal Core Image内核中接收(或从采样器采样)的颜色值是线性值,没有应用伽马校正。但是如果我们通过设置禁用颜色管理,

let options:[CIContextOption:Any] = [CIContextOption.workingColorSpace:NSNull()];

字符串
我们是否接收到输入纹理中存在的颜色值(可能已经应用了gamma校正)?换句话说,内核中接收到的颜色值是经过gamma校正的,如果需要,我们需要手动将它们转换为Metal内核中的线性值?

gz5pxeao

gz5pxeao1#

是的,应该是这样:当您禁用颜色管理时,您会收到在输入图像中定义的颜色值,而不会进行任何转换。
Apple似乎专门设计了这个API,用于处理不一定编码颜色值的原始输入数据:
若要请求Core Image不执行颜色管理,请指定NSNull对象作为此键的值。对于不包含颜色数据的图像(如高程图、法向量图和采样函数表),请使用此选项。

  • CIContextOption.workingColorSpace的文档

相关问题