gpt4 book ai didi

graphics - 什么是 vulkan 颜色空间?

转载 作者:行者123 更新时间:2023-12-05 01:09:24 26 4
gpt4 key购买 nike

在创建 vulkan 交换链期间,我一直停留在 VkSwapchainCreateInfoKHR 中的 imageColorSpace 和 imageFormat 参数。我确实了解 imageFormat 是实际像素如何编码和存储在内存中的方式,如果它的颜色不是线性的,那么 vulkan 在着色器中的采样和写入操作期间将其转换为这种颜色。我的硬件仅支持 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,我想这意味着交换链图像中的颜色应该以非线性方式存储,但 VK_FORMAT_B8G8R8A8_SRGB 会导致 gamma 0.44 校正颜色,而 VK_FORMAT_B8G8R8A8_UNORM 工作正常。 imageFormat 与 imageColorSpace 的关系以及 imageColorSpace 指定了什么?

最佳答案

Vulkan 与色彩空间无关。尽管在比特转换为光子之前的某个时刻,色彩空间必须是已知的。这就是为什么在创建交换链时需要它。

imageFormat 指定图像格式(与 vkCreateImage() 中的相同)。 imageColorSpace 是显示图像时 swapchain\display 解释值的方式。

所以如果你有 UNORM,这意味着未指定的颜色空间,它们是很好的原始位。或者更确切地说,这意味着您负责色彩空间(如果图像甚至存储颜色,而不是完全存储其他东西)。如果您将 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR*_UNORM 一起使用,则意味着交换链会占用您的位,并且在出现时会假定它已经是 SRGB。如果是*_SRGB,那么对于swapchain本身没有什么不同,但是会发生的是创建的VkImages是*_SRGB格式,这意味着当使用它们时,颜色会为您线性化(与创建非交换链 VkImage 时发生的情况相同)。

关于graphics - 什么是 vulkan 颜色空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65241749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com