SDL 的文档似乎没有过多提及色彩空间。我没有看到 SDL_SetVideoMode
的任何 SRGB 标志/参数或 SDL_GL_SetAttribute
.在 FrameBuffer 0 上写入时,SDL 是否有可能要求 OpenGL 执行颜色校正? GLUT seems to be able to provide that functionality .
如果 SDL 无法做到,通常的解决方法是什么?我正在考虑使用 GL_FRAMEBUFFER_SRGB
渲染到 sRGB 纹理启用,然后使用 FRAMEBUFFER_SRGB
将其渲染到 FrameBuffer 0禁用。有什么更好的主意吗?
最佳答案
很抱歉在这里重提一个老问题,但我想指出,SDL 2.0.1 将明确让您请求 sRGB 上下文:
SDL_GL_SetAttribute(SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, 1);
// etc.
SDL_Window *win = SDL_CreateWindow(...);
SDL_GL_CreateContext(win);
这适用于 Windows 和 X11(Mac OS X 等,目前不提供此功能)。值得注意的是,在 SDL 2.0.1 提供此功能之前,现代硬件上的大多数 GL 上下文默认情况下已经支持 sRGB。但是你去了。
关于opengl - SDL 可以创建 sRGB OpenGL 上下文吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16357091/