ImGui 多重采样
Posted
技术标签:
【中文标题】ImGui 多重采样【英文标题】:ImGui multisampling 【发布时间】:2021-02-08 15:51:32 【问题描述】:我使用多重采样将我的场景渲染到 FBO。我用作 ImGui::Image 内容的结果纹理。但是如何禁用 gui 的多重采样? 我试过了:
glDisable(GL_MULTISAMPLE);
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplSDL2_NewFrame(Game::getWindow());
ImGui::NewFrame();
//...
// Some gui elements
//...
ImGui::Render();
ImGui::UpdatePlatformWindows();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
glEnable(GL_MULTISAMPLE);
但这不起作用。 MSAA实际上在gui绘图时启用(文本模糊)。
【问题讨论】:
【参考方案1】:当涉及到窗口上下文时,您不能在创建窗口后禁用 MSAA。您需要重新创建窗口才能使其生效。
我不确定 FBO 是否需要同样的东西,但是据我所知,在运行时调用 glDisable(GL_MULTISAMPLE)
只会清除 一些 AA 状态,您不能依赖它,因为您打算重新创建窗口以更改 MSAA,所以我猜它可能不会像您期望的那样影响您的 FBO。
There's also an open issue on the ImGui repo 关于处理 AA 和字体的问题,尽管现在似乎“搁置”了。
【讨论】:
以上是关于ImGui 多重采样的主要内容,如果未能解决你的问题,请参考以下文章