Я пытаюсь понять, как включить профиль sRGB для буферов кадров по умолчанию на Android. В Android SDK неясно, как это сделать на практике. Например, здесь парень утверждает, что достаточно установить внутренний формат текстуры на sRGB. . Но он явно ошибается, потому что я попробовал это, и это ничего не меняет.
Хронос предоставляет это расширение как часть EGL. Я пытался добавить эти флаги в конфиги поверхности. :
final int EGL_GL_COLORSPACE_KHR = 0x309D;
final int EGL_GL_COLORSPACE_SRGB_KHR = 0x3089;
int attribs[] = {
EGL10.EGL_LEVEL, 0,
EGL10.EGL_RENDERABLE_TYPE,EGLExt.EGL_OPENGL_ES3_BIT_KHR,
EGL10.EGL_COLOR_BUFFER_TYPE, EGL10.EGL_RGB_BUFFER,
EGL10.EGL_RED_SIZE, 8,
EGL10.EGL_GREEN_SIZE, 8,
EGL10.EGL_BLUE_SIZE, 8,
EGL10.EGL_DEPTH_SIZE, maxDepth,
EGL10.EGL_SAMPLE_BUFFERS, 1,
EGL10.EGL_SAMPLES, 4,
EGL_GL_COLORSPACE_KHR ,EGL_GL_COLORSPACE_SRGB_KHR //
На самом деле, я обнаружил здесь и в других онлайн-демонстрациях, что эта настройка действительно используется. Кроме того, iOS позволяет настроить FBO по умолчанию на sRGB с флагом:
kEAGLColorFormatSRGBA8
Есть ли другой способ включения sRGB на устройстве Android, чем это расширение? (Конечно, другой альтернативой является гамма-коррекция в шейдере, но это именно то, чего я не хочу делать)
Подробнее здесь: [url]https://stackoverflow.com/questions/44589807/opengl-srgb-configuration-on-android[/url]
Я пытаюсь понять, как включить профиль sRGB для буферов кадров по умолчанию на Android. В Android SDK неясно, как это сделать на практике. Например, здесь парень утверждает, что достаточно установить внутренний формат текстуры на sRGB. . Но он явно ошибается, потому что я попробовал это, и это ничего не меняет.
Хронос предоставляет это расширение как часть EGL. Я пытался добавить эти флаги в конфиги поверхности. :
[code] final int EGL_GL_COLORSPACE_KHR = 0x309D; final int EGL_GL_COLORSPACE_SRGB_KHR = 0x3089; int attribs[] = { EGL10.EGL_LEVEL, 0, EGL10.EGL_RENDERABLE_TYPE,EGLExt.EGL_OPENGL_ES3_BIT_KHR, EGL10.EGL_COLOR_BUFFER_TYPE, EGL10.EGL_RGB_BUFFER, EGL10.EGL_RED_SIZE, 8, EGL10.EGL_GREEN_SIZE, 8, EGL10.EGL_BLUE_SIZE, 8, EGL10.EGL_DEPTH_SIZE, maxDepth, EGL10.EGL_SAMPLE_BUFFERS, 1, EGL10.EGL_SAMPLES, 4, EGL_GL_COLORSPACE_KHR ,EGL_GL_COLORSPACE_SRGB_KHR //
На самом деле, я обнаружил здесь и в других онлайн-демонстрациях, что эта настройка действительно используется. Кроме того, iOS позволяет настроить FBO по умолчанию на sRGB с флагом:
kEAGLColorFormatSRGBA8
Есть ли другой способ включения sRGB на устройстве Android, чем это расширение? (Конечно, другой альтернативой является гамма-коррекция в шейдере, но это именно то, чего я не хочу делать)