我用多次采样把我的场景呈现给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);但这不管用。当gui绘图(文本是模糊的)时,MSAA实际上已启用。
发布于 2021-06-21 19:29:48
当涉及到窗口上下文时,您不能在创建窗口之后禁用MSAA。您需要重新创建窗口才能生效。
但是,我不确定FBO是否需要同样的东西,但是,据我所知,在运行时调用glDisable(GL_MULTISAMPLE)只会清除某些AA状态,您不能依赖它,因为它的目的是重新创建您的窗口来对MSAA进行更改,所以我猜它可能不会像您预期的那样影响您的FBO。
关于处理AA和字体的还有一个关于ImGui回购的公开问题,虽然现在似乎是“暂停”的。
https://stackoverflow.com/questions/66104894
复制相似问题