问题描述
VkColorSpaceKHR的所有其他可能的值都指定了公认的颜色空间编码,并且我假设使用这些值创建交换链将意味着应用程序提交给呈现队列的最终像素数据将在行的某个位置进行转换,通过已知的EOTF进入解码空间。
规范对VK_COLOR_SPACE_PASS_THROUGH_EXT的定义如下:
“ VK_COLOR_SPACE_PASS_THROUGH_EXT指定按原样使用颜色分量。这旨在允许应用程序为此处未描述的颜色空间提供数据。”
这对我的申请意味着什么?让我们说(完全假设),我正在构建一些奇特的光谱渲染器,并且正在使用一个自定义系统来表示颜色,然后将其全部转换为最终的RGB格式,仅具有三个通道的强度值,与颜色无关空格或任何编码。
按照规范要求,我的图像真的会被“按原样”显示在屏幕上吗?如果是这样,实现如何知道如何处理给定的像素数据?是否会导致我的显示器上的每个像素都设置为原始RGB强度,而没有应用传递函数?
谢谢,而且一如既往,我真的不知道我在说什么,所以请多多包涵。
解决方法
直通表示通过。在显示呈现方面,Vulkan实现是用户与显示引擎之间的中介(即:OS的一部分,用于处理窗口如何访问和操纵屏幕)。 Vulkan传递数据的方式是按原样传递数据。用户正在显示引擎期望的色彩空间中提供数据。