窗口内imgui渲染的数据颜色变浅

Posted

技术标签:

【中文标题】窗口内imgui渲染的数据颜色变浅【英文标题】:The data rendered of imgui within window get a lighter color 【发布时间】:2021-09-25 15:15:50 【问题描述】:

The data rendered outside the window get a correct color

The data rendered within the window get a lighter color

正如图片所描述的,有谁知道是什么导致了问题?

【问题讨论】:

仅供参考,我遇到了同样的问题,任何认为这是不可重现的人,实际上只是按照 IMGUI 的示例导致了这种行为。 我在几天前解决了这个问题。问题是由 imgui 用于创建交换链的格式是 R8G8B8A8_UNORM 引起的,但我出于我的目的使用了 R8G8B8A8_SRGB。所以我分叉了 imgui 并更新了 imgui 后端的请求格式以启用 sRGB。 backends/impl_vulkan: set VK_FORMAT_R8G8B8A8_SRGB as default。如果您想解决项目中的问题,希望这些信息对您有所帮助。 这几乎肯定是我正在做的,你能自己回答吗?我很乐意投票。 当然可以。谢谢。 【参考方案1】:

颜色较浅的原因是sRGB的色彩空间范围更大。

上述问题是由于 Dear Imgui 使用VK_FORMAT_R8G8B8A8_UNORM 作为创建交换链的最高优先级引起的,但我出于我的目的使用了 'VK_FORMAT_R8G8B8A8_SRGB`。 为了解决问题。您可以选择以下两种方法。

    使用 VK_FORMAT_R8G8B8A8_UNORM 创建您的交换链,就像 Dear Imgui 在后端/impl_vulkan 中使用的那样。 或者您可以更改优先级列表以在后端/impl_vulkan 中选择VK_FORMAT_R8G8B8A8_SRGB,就像我所做的那样:backends/impl_vulkan: set VK_FORMAT_R8G8B8A8_SRGB as default

【讨论】:

以上是关于窗口内imgui渲染的数据颜色变浅的主要内容,如果未能解决你的问题,请参考以下文章

如何在 imgui 窗口中使用 opengl glfw3 渲染?

我的渲染技术进阶之旅关于C++轻量级界面开发框架Dear ImGui介绍

我的渲染技术进阶之旅关于C++轻量级界面开发框架Dear ImGui介绍

我的渲染技术进阶之旅关于C++轻量级界面开发框架Dear ImGui介绍

关于2D渲染的一些小想法

关于2D渲染的一些小想法