KhronosGroup / KhronosGroup/OpenXR-SDK-Source
The color is brighter on Quest3?
- Dominant language
- Python
- Stars
- 825
- Forks
- 306
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 1
Description
It seems like that on Quest3, the app shows brighter color?
In Openxr Spec, SRGB is recommended:
https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#rendering-swapchain-image-management
And also, in Quest3 official sample code, SRGB color format is also used for rendering: https://github.com/meta-quest/Meta-OpenXR-SDK/blob/main/Samples/XrSamples/XrCompositor_NativeActivity/Src/XrCompositor_NativeActivity.c#L1842
I have also done some experiments, if I follow the instructions that Oculus sample shown to us, I can get desired colors on the screen. That is to say: if I program the glclear value as (0.5,0.5,0.5), the color on Quest3's screen is (127,127,127). It is equal to middle gray 255/2=127.5
But with OpenXR-SDK-Source, the color one the screen is (187,187,187), it is more like gamma correction is applied to (127,127,127).
【Note】While using sRGB in the code, we need to use GL(glDisable(GL_FRAMEBUFFER_SRGB_EXT)) as Quest has done:
https://github.com/meta-quest/Meta-OpenXR-SDK/blob/main/Samples/XrSamples/XrSceneModel/Src/SceneModelGl.cpp#L1089
From my point of view, the color should on the screen should be the same as what I wrote in the code, not gamma corrected.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the linked OpenXR and Meta Quest sample behavior, especially the swapchain sRGB format and the GL_FRAMEBUFFER_SRGB_EXT state shown in the sample files. Reproduce the 0.5 gray clear value on Quest 3 and trace the OpenXR-SDK-Source rendering path; done means the displayed value matches the intended 127/128 gray without unwanted gamma correction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100