KhronosGroup / KhronosGroup/OpenXR-SDK-Source

The color is brighter on Quest3?

Open
#527 7 comments 0 reactions 0 assignees View on GitHub
synced to gitlab
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.