February 2025
Volume 25, Issue 2
Open Access
Article  |   February 2025
VR HMD color calibration and accurate control of emitted light using Three.js
Author Affiliations
  • Killian Duay
    Department of Information and Communications Engineering, Tokyo Institute of Technology, Nagatsuta-Cho, Midori-Ku, Yokohama, Japan
    [email protected]
  • Yoko Mizokami
    Department of Imaging Sciences, Chiba University, Yayoi-Cho, Inage-Ku, Chiba, Japan
    [email protected]
  • Takehiro Nagai
    Department of Information and Communications Engineering, Tokyo Institute of Technology, Nagatsuta-Cho, Midori-Ku, Yokohama, Japan
    [email protected]
Journal of Vision February 2025, Vol.25, 4. doi:https://doi.org/10.1167/jov.25.2.4
  • Views
  • PDF
  • Share
  • Tools
    • Alerts
      ×
      This feature is available to authenticated users only.
      Sign In or Create an Account ×
    • Get Citation

      Killian Duay, Yoko Mizokami, Takehiro Nagai; VR HMD color calibration and accurate control of emitted light using Three.js. Journal of Vision 2025;25(2):4. https://doi.org/10.1167/jov.25.2.4.

      Download citation file:


      © ARVO (1962-2015); The Authors (2016-present)

      ×
  • Supplements
Abstract

Virtual reality (VR) can be used to design and create new types of psychophysical experiments. Its main advantage is that it frees us from the physical limitations of real-life experiments and the hardware and software limitations of experiments running on two-dimensional (2D) displays and computer graphics. However, color calibration of the displays is often required in vision science studies. Recent studies have shown that a standard color calibration of a head-mounted display (HMD) can be very challenging and comes with significant drawbacks. These drawbacks include the need to completely disable tone mapping or to use unlit materials when tone mapping is only partially disabled. In this article, we introduce a new approach that allows for successful color calibration of an HMD and overcomes the disadvantages associated with other solutions. We utilize a new VR engine, Three.js, which offers several advantages. This article details our setup and methodology and provides all the elements required to reproduce the method, including the source code. We also apply our method to evaluate and compare three different HMDs: HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3. The results show that the HTC Vive Pro Eye performs excellently, the Meta Quest Pro performs well, and the Meta Quest 3 performs poorly.

Introduction
Virtual reality (VR) allows researchers to design, create, and run experiments innovatively, opening new horizons and addressing some issues encountered in more traditional experiments. Indeed, it can be impossible or laborious to control certain experimental conditions in real-life experiments. For instance, changing the configuration of an experimental room or its lighting can be time-consuming and may potentially disrupt the experiment. Moreover, certain experimental conditions, such as introducing a mismatch between the light field of the background and the target object (Motoyoshi & Matoba, 2012), are impossible to produce in the real world. The utilization of computer graphics displayed on two-dimensional (2D) screens has become a common approach to circumvent these limitations. However, this strategy introduces additional constraints, including a nonimmersive environment and a limited field of view, which hinder the accurate replication of real-life conditions. VR makes it possible to overcome these physical limitations and offers an immersive environment that reproduces certain aspects of reality, such as a wide field of view and depth perception. 
Color calibration refers to the procedure of establishing a relationship between monitor input (RGB reflectances) and monitor output (emitted light) and vice versa. One of the purposes of such calibration is to present a desired luminance and chromaticity on the display. It is often required in experiments. In prior literature, the term “characterization” has typically referred to the process of measuring and modeling the color properties of a display, while “calibration” has been understood as the adjustment of the display to a specific configuration (Brainard, 1989; Brainard, Pelli, & Robson, 2002). However, recent studies have sometimes conflated these terms, leading to inconsistencies in their use (Barrancas, Rodríguez, Aizenman, Bayer, & Gegenfurtner, 2023; Díaz-Barrancas, Gil-Rodríguez, Aizenman, Bayer, & Gegenfurtner, 2023; Gil Rodríguez et al., 2022; Murray, Patel, & Wiedenmann, 2022; Wilson & Hua, 2021; Zaman, Sarker, & Tavakkoli, 2023). As a result, the term “characterization” today may imply a passive process, suggesting that no active adjustments are made and that the color output remains uncontrolled. Despite the absence of standardized definitions, we assume that “calibration” has now evolved into two distinct categories: hardware calibration, which involves altering the display's colorimetric parameters, and software calibration, which adjusts the RGB inputs to achieve a desired XYZ output without modifying the display's settings, which is made possible by prior characterization. In this study, the term “calibration” refers specifically to software calibration. A more detailed explanation of the roles of characterization and calibration in our study can be found in Our method
Recent studies have shown the complexity of performing a standard calibration and accurately controlling the colors on a head-mounted display (HMD) (Díaz-Barrancas et al., 2023; Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023). They explained that the underlying causes are attributable to both hardware and software factors. On the hardware side, HMDs are composed of near-eye displays (NEDs) and complex optical elements that make them difficult to measure with a spectroradiometer or a colorimeter (Gil Rodríguez et al., 2022). On the software side, VR experiences are executed through three-dimensional (3D) engines relying on complex rendering pipelines involving postprocessing routines that break the conditions necessary for a successful standard calibration (Gil Rodríguez et al., 2022; Toscani et al., 2019). As explained by Toscani et al. (2019), these conditions are the luminance additivity, chromaticity constancy, and channel constancy of the displays. These display characteristics are the criteria to be respected for standard calibration, as explained in older studies (Brainard, 1989; Brainard, Pelli, & Robson, 2002). Toscani et al. (2019) showed that the main software issue comes from the tone mapping process. Tone mapping is a postprocessing routine used to approximate the appearance of high dynamic range (HDR) images on standard dynamic range (SDR) displays. Although tone mapping improves the realism of a 3D scene, this disrupts the luminance additivity, chromaticity constancy, and channel constancy of the displays, making standard calibration unsuccessful. While VR offers significant advantages to researchers, the inability to calibrate an HMD poses substantial challenges in fields such as vision research, which necessitate precise control over the physical colors emitted by a display. 
Nevertheless, the previous studies not only raised problems but also proposed solutions to meet the necessary conditions for calibration. Murray, Patel, and Wiedenmann (2022) showed how to perform a successful luminance calibration in Unity. Gil Rodríguez et al. (2022) demonstrated how to use a colorimeter equipped with a special VR lens in order to effectively measure an HMD and overcome the hardware issue. Díaz-Barrancas et al. (2023) showed how to calibrate an HMD by disabling tone mapping in Unreal Engine or environmental postprocessing in Unity, addressing the software problem. Toscani et al. (2019) also demonstrated how to calibrate an HMD by disabling tone mapping in Unreal Engine. More recent studies, which also disable tone mapping or various postprocessing routines, methodologically demonstrated how to achieve high calibration fidelity across different HMDs (HTC Vive Pro Eye, Pimax 8KX DMAS, and Varjo Aero) and engines (Unity and Unreal), while offering a detailed cross-comparison between the various HMDs and engines (Barrancas et al., 2023; Díaz-Barrancas, Rodríguez, Bayer, Aizenman, & Gegenfurtner, 2024). However, even though disabling tone mapping seems like the right solution, Zaman et al. (2023) explained that disabling it globally has a disadvantage. Specifically, it makes the overall rendering appear unrealistic as it changes the behavior of all shaders, materials, and objects in the scene. Tone mapping is employed to simulate HDR rendering; therefore, disabling it results in less realistic SDR visual output. This can be observed in Figures 3a and 3b, where tone mapping is globally disabled and enabled, respectively. Depending on the experimental objectives, it is possible to design virtual scenes that can be presented on SDR displays without luminance clipping. However, such constraints in VR scene design may significantly limit the scope of experiments that can be conducted. Zaman et al. (2023) further noted that disabling tone mapping causes the scene to appear overly bright, with light sources becoming clipped, in contrast to the more realistic rendering achieved through a postprocessing-enabled approach. They suggested that it would be, therefore, beneficial to be able to selectively control which objects in a scene should undergo tone mapping and which do not. By doing so, we could accurately control stimulus colors while maintaining a realistic global scene and background. They proposed a solution and demonstrated how to calibrate an HMD using Unreal Engine and a custom double pathway in the rendering pipeline. This solution allows the tone mapping of the global VR scene but not of specific objects such as the stimulus in a VR experiment. However, although this approach is very interesting and addresses the previously mentioned problem, it has two disadvantages in our view. First, the authors use unlit materials to implement the solution. Unlit materials are self-emissive and thus unaffected by the illuminant in the scene. Their color always remains the same, regardless of the illuminant. This can be a significant drawback in experiments such as VR color constancy studies (Gil Rodríguez et al., 2022; Gil Rodríguez et al., 2024), where the influence of the illuminant on color perception is investigated. Second, this approach seems very complex and difficult to reproduce. 
Figure 1.
 
Illustration of Three.js rendering capabilities. This room can be used for VR psychophysical experiments. Tone mapping is globally enabled in this scene.
Figure 1.
 
Illustration of Three.js rendering capabilities. This room can be used for VR psychophysical experiments. Tone mapping is globally enabled in this scene.
Figure 2.
 
Examples of 3D scenes with different spatial layouts and light intensities. In (a), the light intensity is 5 candelas (cd). In (b), the light intensity is 1 cd. In (c), the light intensity is 5 cd. The white point represents the light source position. All planes have the same RGB reflectances [1, 1, 1]T.
Figure 2.
 
Examples of 3D scenes with different spatial layouts and light intensities. In (a), the light intensity is 5 candelas (cd). In (b), the light intensity is 1 cd. In (c), the light intensity is 5 cd. The white point represents the light source position. All planes have the same RGB reflectances [1, 1, 1]T.
Figure 3.
 
Examples of 3D scenes with different tone mapping settings. In (a), tone mapping is globally disabled. In (b), tone mapping is globally enabled. In (c), tone mapping is globally enabled for the entire scene but locally disabled for the second helmet (from the left).
Figure 3.
 
Examples of 3D scenes with different tone mapping settings. In (a), tone mapping is globally disabled. In (b), tone mapping is globally enabled. In (c), tone mapping is globally enabled for the entire scene but locally disabled for the second helmet (from the left).
In this article, we introduce and present a new approach that overcomes the aforementioned mentioned problems of tone mapping globally disabled or the use of unlit materials coupled to modular tone mapping in previous solutions. Although these solutions are not ineffective and successful HMD color calibrations have been achieved (Barrancas et al., 2023; Díaz-Barrancas et al., 2023; Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023) and allowed color constancy experiments (Gil Rodríguez et al., 2022; Gil Rodríguez et al., 2024), we believe they operate only under suboptimal conditions, which this study aims to address. We demonstrate that it is possible to perform a successful color calibration of an HMD using standard materials (as opposed to unlit materials) while the tone mapping is still applied to the rest of the scene. The strength of this solution lies in what we call modular tone mapping: We can easily choose which objects in a 3D scene should be affected by tone mapping and which should not. This modular tone mapping is an accessible and easy setting that can be implemented in two lines of code, as demonstrated in the code that we provide. This approach allows us to overcome all the previously mentioned problems. First, it enables a global scene to appear realistic under tone mapping. Second, it provides accurate control over the physical color of objects of interest (such as the stimulus in an experiment) thanks to successful calibration. Finally, it ensures that all objects in the scene are adequately influenced by the illuminant and changes in the illuminant (including the stimulus in an experiment). On the other hand, the drawback of this setting is that it might introduce inconsistency in color representation within the rendered scene, which we elaborate on in more detail later. Additionally, our solution offers the possibility to globally disable tone mapping, as was done in the previously cited studies. Our solution is therefore available in two options: option A with tone mapping globally disabled and option B with tone mapping locally disabled. Each of these options has its own advantages and disadvantages, implying different use case scenarios. We describe the flexibility of our solution in more detail in the following sections. Furthermore, this solution has the advantage of being easily reproducible, and the source code and instructions are provided. It can be accessed at https://gitlab.com/kikdu/paper-hmd-calibration-scene
Moreover, unlike other studies, our solution employs Three.js instead of more conventional platforms such as Unreal Engine or Unity. Three.js is a JavaScript application programming interface (API) built on top of OpenGL, WebGL, and WebXR. It allows access to the graphics processing unit (GPU) and runs 3D and VR applications in a web browser. Thanks to the performance of the V8 JavaScript engine and browsers built on Chromium, Three.js is able to render applications with very high graphics quality and a high frame rate. Three.js is partly constrained by the limitations of web browsers, such as per-tab random-access memory (RAM) restrictions, and cannot achieve the maximum rendering quality possible with Unreal Engine when the latter is used to its full potential. However, with appropriate configuration, it can approximate the rendering performance of Unity and other desktop applications. To demonstrate its capabilities, we present an example of a realistic scene (with tone mapping globally enabled) designed for psychophysical experiments in Figure 1. The rendering quality is further illustrated in Figure 3. In addition to providing a solution using a different tool and bringing more options and diversity to the research community, we believe that Three.js has other advantages compared to Unreal Engine or Unity. First, the source code is readily intelligible, allowing full control over everything that happens in the scene. This is attributable to the low-level nature of the library, which closely interfaces with the OpenGL API. In contrast, Unity and Unreal Engine can sometimes appear as black boxes where precise control over all internal processes is not achievable. Second, Three.js VR experiences run in a web browser, making them highly portable to any execution environment thanks to their device-independent nature. This can be advantageous in specific scenarios, such as in a nontethered experiment where the use of an HMD allows for independence from a computer. Finally, although it does not have a graphics editor, Three.js can be less complex to set up and master than Unity or Unreal Engine, which can sometimes feel overwhelming for nonexperts. 
In the following sections, we describe our setup and methodology in detail to facilitate easy reproduction of our procedure. We explain how we measured the HMDs, characterized the displays, performed the actual calibration, and validated it. Similar to recent studies (Díaz-Barrancas et al., 2023; Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023), we demonstrated our approach through three successive and distinct setups. First, we demonstrated and illustrated the problem of global tone mapping. Second and third, we introduced and applied both options of our solution (options A and B), showing how it overcomes this and other previously mentioned problems. We validated our solution by performing a similar calibration test as done in Gil Rodríguez et al. (2022) and Toscani et al. (2019), ensuring consistency and comparability with other recent studies. Additionally, we applied our method to evaluate and compare three different HMDs: HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3. While the first is common, and recent studies have shown that it can be calibrated (Barrancas et al., 2023; Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023), the latter two HMDs have not yet been assessed in research. Therefore, it is important to evaluate whether they can be calibrated and utilized in experiments that require precise color control. The results showed that the HTC Vive Pro Eye performed excellently, the Meta Quest Pro well, and the Meta Quest 3 poorly. We also compared the color reproduction fidelity across the entire lens of each HMD. We demonstrated that while we can precisely control the color in the sweet spot of the lenses, it is much more challenging to do so in the peripheral areas. In our view, this is a crucial detail to consider in VR psychophysical experiments involving colors and a significant flaw in other related works. 
Methods
Calibration of a 3D environment
Calibrating a 3D environment differs from a standard calibration, as defined by Brainard (1989). A standard calibration procedure is based on the relationship between RGB values in each pixel and the characteristics of the display to represent a desired color on the display. On the other hand, calibrating a 3D environment relies on a “relative” color space composed of RGB reflectance values of objects, in which the emitted colors depend not only on the display characteristics but also on scene lighting and the spatial arrangement of objects. As explained by Toscani et al. (2019), the color of the light, its intensity, and the distance between the light and the calibration target define the relative color space (luminance range and gamut) of the 3D environment. Figure 2 illustrates this explanation: All planes share identical RGB reflectances ([1, 1, 1]T); however, their color output is dependent on their distance from the light source in the virtual environment (denoted by the white point), as shown in Figures 2a and 2c. This phenomenon occurs because the light source simulates a physical light source, which exhibits an intensity fall-off with distance. Consequently, a patch with RGB reflectances [1, 1, 1]T (or any other reflectance) will produce different luminance outputs depending on its proximity to the light source, similar to what happens in real-world scenarios. Furthermore, changes in the intensity of the light source affect the luminance as well, as depicted in Figures 2a and 2b. Thus, in this case, the aim of color calibration is to establish a relationship between RGB reflectances (input) and the light reflected by an object in the 3D scene (i.e., the output light presented on the display). Because this output also depends on the position of the object in space and the characteristics of the lighting, calibrating a 3D environment is done for a specific area and layout of that space. Additionally, if these characteristics are changed after the calibration, for example, if the target patch is moved or the light source is modified, the calibration must be corrected by adjusting the luminance of a white patch in the new scene at its new location, while maintaining consistent rendering settings. Consequently, if the calibration is done for a research experiment, it is important to adapt the spatial layout of the calibration room to match the spatial layout of the virtual 3D room hosting the experiment. The code we provide allows this adaptation easily. 
By using the procedure explained here, one can only calibrate a specific object in the scene. After calibration, it is possible to determine the object’s physical color in advance, but this is not possible for all other objects and pixels in the scene. This is because they are located at different distances from the light source and might not share the same properties. Moreover, as explained in the Introduction, the calibration of a 3D VR scene typically occurs in game engines such as Unity or Unreal Engine. Toscani et al. (2019) and Gil Rodríguez et al. (2022) showed that it is necessary to disable the tone mapping postprocessing in those engines in order for the display to achieve sufficiently constant levels of luminance additivity, chromaticity constancy, and channel constancy for a standard calibration. Although this can be used to calibrate an HMD,  Zaman et al. (2023) claimed that this solution is not ideal, as this makes the 3D scene look unrealistic and unnatural. Although they proposed a solution allowing tone mapping to be disabled on specific objects only, their implementation is highly complicated and uses unlit materials. In contrast, our solution aims to address both of these issues. 
Finally, another important consideration when employing VR for research experiments is that the engines utilized in our approach or in the previously cited studies compute reflected RGB colors solely through linear RGB calculations. They do not perform physically correct computations based on spectral distributions. Gil Rodríguez et al. (2024) explain that RGB reflected light is calculated using the following formula:  
\begin{equation} {\rm Reflected}_{RGB} = {\rm Reflectances}_{RGB} \times {\rm Illuminant}_{RGB}, \quad \end{equation}
(1)
where “Reflectances” is defined as the proportion of light of each channel that an object reflects and is a property of the object regardless of illumination. While this rendering technique is employed by the majority of game engines and is capable of generating environments that closely replicate reality with high visual fidelity, it is crucial to clarify that it does not constitute an accurate simulation of real-world color computation based on light spectrum. This limitation is primarily due to the necessity for these engines to render in real time and maintain high frame rates, which, as of the current writing, cannot be achieved by physically correct simulation engines. The purpose of introducing Equation 1 is to roughly illustrate how a real-time graphics engine calculates colors and highlight the major difference between this process and that of a physically based rendering engine, which computes colors using the light spectrum and the reflectance properties of surfaces. This equation was not used directly in any of our calculations. 
Our method
Our solution using Three.js can be used in two different ways: 
In both cases, the tone mapping algorithm used in this study was the implementation of ACES Filmic by Three.js. These two alternatives can be interchanged by adjusting a simple parameter. In both options, the outcome is the disabling of tone mapping for the target object undergoing calibration, thereby enabling a successful color calibration process. However, they each have different advantages and disadvantages. In option A, tone mapping is globally disabled for the entire scene. This ensures consistent object colors throughout the scene, meaning luminance and color there can be physically correct. However, the scene has a narrow luminance dynamic range, making it look unrealistic or unnatural if the scene is in a high dynamic range in nature. This option should be used for experiments requiring strict and consistent color behavior, such as color perception experiments. In option B, tone mapping is applied to the entire scene but locally disabled for specific objects. This allows for more natural-looking 3D scenes with a higher range of luminance due to the tone mapping still being applied to them. However, the disadvantage of this solution is that tone mapping is not applied uniformly across the scene; therefore, two objects with the same reflectances, but different tone mapping settings will have different colors. This can be observed in Figure 3c, where two helmets with the same materials and reflectance properties display markedly different renderings due to the difference in tone mapping. Such discrepancies may alter how observers perceive the scene and the relative colors within it. This approach can be useful for experiments where calibrating the color of specific objects is crucial while maintaining a natural and realistic appearance for the rest of the scene. In addition, unlike Zaman et al. (2023), our solution uses standard lit materials in both options, meaning that the target objects being calibrated still react to the illuminant or changes in the illuminant. 
Figure 3 shows an example of the visual impact of both options on a simple scene. In Figure 3a, the scene appears saturated due to the absence of tone mapping and the larger dynamic range of physical luminance. In Figure 3b, the scene appears more realistic and natural thanks to the tone mapping globally enabled, but a standard calibration cannot be performed successfully because of this setting. In Figure 3c, tone mapping is globally enabled but locally disabled for the second helmet (from the left). As a result, the scene looks more natural, and the second helmet can still be calibrated since it is not affected by tone mapping. Please note that the scenes shown in Figure 3 are used only to illustrate our tone mapping settings and do not represent the scene used for the actual calibration presented in this study. 
The methodology of the calibration process is the same for both options. Similar to other studies (Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023), our approach consists of four steps. First, we take the measurements of the HMD using a spectroradiometer. Second, we characterize the display and its luminance additivity, channel constancy, and chromaticity constancy based on those measurements. Third, if the conditions are met in the second step, we process the data and compute the calibration. Finally, we validate the calibration through a test. Each of these steps and the supporting setup are detailed in the following sections. 
Hardware and software
We utilized and compared three different HMDs: HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3. Table 1 summarizes some of the technical specifications of these HMDs. The VR program was executed on a desktop computer (Windows 10, Intel Core i9-10900K CPU @ 3.70 GHz, 32 GB of RAM, Nvidia Quadro RTX 4000 8 GB). The HTC Vive Pro Eye was tethered to the PC via its original connector and the SteamVR desktop application. The Meta Quest Pro and Meta Quest 3 are standalone HMDs, but in this study, we tethered them to the PC using a Meta Quest Link and the Meta Quest desktop application. For the VR software and 3D engine, we developed our solution with Three.js (release r159). As previously explained, Three.js can be used to develop and execute VR experiences in a web browser. The web browser we used in our procedure was Google Chrome. 
Table 1.
 
Technical specifications of the HMDs used in this study.
Table 1.
 
Technical specifications of the HMDs used in this study.
To take the measurements, we utilized a Topcon SR-5000 HM spectroradiometer equipped with a specific macro lens and a retrofitted lens (LM5JC1M, Kowa Optronics), which allowed us to achieve a clear focus inside the HMD by placing it very close to the HMD lens. The spectroradiometer can be used to measure luminance, chromaticity, and the optical spectrum of LCD, OLED, and related materials. It is equipped with a 1.4-megapixel charge-coupled device (CCD) image sensor, capable of capturing 2D images at a resolution of 1376 × 1024 pixels. The device provides a wavelength resolution of 1 nm within the range of 380 to 780 nm. Full technical specifications are available in the official documentation (Topcon, 2024). Figure 4 shows the measurement setup. The spectroradiometer was controlled through proprietary software. We positioned the spectroradiometer the same distance from the HMD lens as our eye would be when wearing the HMD (2 centimeters from the surface of the lenses). The Meta Quest Pro features a solid and closed headband that makes it impossible to capture at close range of the lens. For this reason and to ensure consistency in measurements, we disassembled the Meta Quest Pro, enabling us to take measurements at the same distance as for other HMDs. Figure 4b shows this particular setup. 
Figure 4.
 
Setups of the spectroradiometer and the HMDs for measurements: (a) HTC Vive Pro Eye and (b) Meta Quest Pro.
Figure 4.
 
Setups of the spectroradiometer and the HMDs for measurements: (a) HTC Vive Pro Eye and (b) Meta Quest Pro.
Finally, we also used an external monitor connected to the desktop computer to control and orchestrate the entire setup. This complete setup included the VR program running inside the HMD and the spectroradiometer software. The measured HMD and the spectroradiometer were positioned in a darkroom, while the computer and monitor used to control the whole setup were positioned outside of the darkroom. 
Calibration scene and measurements
We developed a 3D scene designed for HMD calibration. Figure 5 shows the scene. It is empty, with a background set to RGB reflectances [0, 0, 0]T, an ambient neutral light set to RGB intensities [1, 1, 1]T, a point light source set to RGB intensities [1, 1, 1]T, and a stimulus object. In a 3D environment that does not use ray-tracing rendering techniques and bouncing lights, the ambient light illuminates all objects in the scene equally, simulating indirect lighting and Global Illumination (GI). On the other hand, the point light source acts as a traditional direct lighting. The stimulus object is a flat square with a perfectly Lambertian material. It is located in front of the camera in the virtual world and aligned with the sweet spot of the right lens of the HMD (we used the right eye for our measurements). In VR, the notion of the camera corresponds to the position of the user’s eyes in the virtual world. The point light is located behind the camera and is aligned with the stimulus and the camera. The stimulus object and the point light follow the camera orientation, and they are always positioned respectively in front of and behind the camera, aligned with the sweet spot of the lens, regardless of the position or orientation of the HMD in the real world. This detail is important for achieving stable and consistent measurements. The sweet spot of the lens is where the user’s eye is located when wearing the HMD and is also where the focus and the luminance are highest. 
Figure 5.
 
Calibration room. The stimulus is shown in red. The white point and white diamond represent the light position. The intersection of the orange and white lines indicates the VR camera position. The white line represents its orientation, and the orange lines represent its field of view. The grid, white diamond, white point, and orange and white lines are only visualization aids in editor mode. They are not present in the actual view displayed in the HMD.
Figure 5.
 
Calibration room. The stimulus is shown in red. The white point and white diamond represent the light position. The intersection of the orange and white lines indicates the VR camera position. The white line represents its orientation, and the orange lines represent its field of view. The grid, white diamond, white point, and orange and white lines are only visualization aids in editor mode. They are not present in the actual view displayed in the HMD.
We measured the focus and the luminance using the spectroradiometer. We observed that the sweet spot is perfectly in the middle of the lenses in the HTC Vive Pro Eye and slightly in the top-right and top-left areas of the lenses, respectively, for the left eye and right eye in the Meta Quest Pro and Meta Quest 3. This can be seen in the first row of Figure 16. Figure 6 shows an example of the view of the HTC Vive Pro Eye from the spectroradiometer and how we aligned the VR camera, the stimulus, the HMD lens, and the spectroradiometer for measurements. The displayed cross is the helper we used to align everything before measurements. 
Figure 6.
 
View of the stimulus captured by the spectroradiometer. The VR camera, stimulus, HMD lens, and spectroradiometer are perfectly aligned.
Figure 6.
 
View of the stimulus captured by the spectroradiometer. The VR camera, stimulus, HMD lens, and spectroradiometer are perfectly aligned.
Figure 7.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with globally enabled tone mapping. Additionally, the rightmost panel shows the same for gray, where all RGB channels are simultaneously used (the continuous line) in addition to the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE).
Figure 7.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with globally enabled tone mapping. Additionally, the rightmost panel shows the same for gray, where all RGB channels are simultaneously used (the continuous line) in addition to the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE).
Figure 8.
 
Measured spectra of three channels separately for different RGB reflectances (0.25, 0.5, 0.75, 1.0) with globally enabled tone mapping. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25).
Figure 8.
 
Measured spectra of three channels separately for different RGB reflectances (0.25, 0.5, 0.75, 1.0) with globally enabled tone mapping. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25).
Figure 9.
 
Chromaticity coordinates (x, y) of the three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping globally enabled.
Figure 9.
 
Chromaticity coordinates (x, y) of the three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping globally enabled.
Figure 10.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally enabled. The red crosses indicate the measured values, and the black dots indicate the values predicted by our calibration function.
Figure 10.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally enabled. The red crosses indicate the measured values, and the black dots indicate the values predicted by our calibration function.
Figure 11.
 
Boxplots of color differences ΔE00 between the 24 validation pairs of measured data and prediction data (a) for HTC Vive Pro Eye with tone mapping globally enabled and (b) HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally disabled (option A) and locally disabled (option B).
Figure 11.
 
Boxplots of color differences ΔE00 between the 24 validation pairs of measured data and prediction data (a) for HTC Vive Pro Eye with tone mapping globally enabled and (b) HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally disabled (option A) and locally disabled (option B).
Figure 12.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively. Additionally, the rightmost panels show the same for gray, where all RGB channels are simultaneously used (the continuous line) and the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE). In the case of Meta Quest 3, as a maximum luminance level has been detected, the data included in the fitting extend to the first observation of the threshold only. This approach is taken to prevent distortion of the linear regression analysis.
Figure 12.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively. Additionally, the rightmost panels show the same for gray, where all RGB channels are simultaneously used (the continuous line) and the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE). In the case of Meta Quest 3, as a maximum luminance level has been detected, the data included in the fitting extend to the first observation of the threshold only. This approach is taken to prevent distortion of the linear regression analysis.
Figure 13.
 
Measured spectra of each of the three channels for varying RGB reflectances (0.25, 0.5, 0.75, 1.0) with tone mapping locally disabled. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25). In the case of Meta Quest 3, as a maximum luminance level has been detected, the presented RGB reflectances have been adapted to 0.25, 0.5, 0.65, and 1.0. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 13.
 
Measured spectra of each of the three channels for varying RGB reflectances (0.25, 0.5, 0.75, 1.0) with tone mapping locally disabled. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25). In the case of Meta Quest 3, as a maximum luminance level has been detected, the presented RGB reflectances have been adapted to 0.25, 0.5, 0.65, and 1.0. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 14.
 
Chromaticity coordinates (x,y) of three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 14.
 
Chromaticity coordinates (x,y) of three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 15.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally disabled (option A) and locally disabled (option B). The green dots indicate the measured values for option A, the red crosses indicate the measured values for option B, and the black dots indicate the values predicted by our calibration function. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 15.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally disabled (option A) and locally disabled (option B). The green dots indicate the measured values for option A, the red crosses indicate the measured values for option B, and the black dots indicate the values predicted by our calibration function. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 16.
 
Color uniformity. First row: luminance across the area of the lens. Every scale belongs to the image on the left of it, and the unit is cd/m2. Second row: mean average color differences ΔE00 across the area of the lens with tone mapping globally disabled (option A) and locally disabled (option B). The results for all three HMDs are shown in columns.
Figure 16.
 
Color uniformity. First row: luminance across the area of the lens. Every scale belongs to the image on the left of it, and the unit is cd/m2. Second row: mean average color differences ΔE00 across the area of the lens with tone mapping globally disabled (option A) and locally disabled (option B). The results for all three HMDs are shown in columns.
Using the arrow keys on the keyboard, it is possible to change the color of the stimulus. To take measurements for calibration, the stimulus displays the red channel from RGB reflectances [0, 0, 0]T to [1, 0, 0]T in 21 successive and incremental steps. After the red channel, it repeats the same process for the green and blue channels. Finally, it displays all three channels together from RGB reflectances [0, 0, 0]T to [1, 1, 1]T in 21 incremental steps. This calibration scene allows us to take 84 measurements. In Three.js, the RGB reflectances are defined in the linear RGB color space, while the scene is configured to use sRGB (IEC61966-2-1:1999) as the output color space. Considering the display’s gamma characteristics, which are expected to align with those defined by sRGB, the measured output luminance for each channel should increase almost linearly with the RGB reflectances. Consequently, simple linear interpolation would yield an accurate prediction of luminance for any given RGB reflectance. For this reason, we determined that 21 measurements per channel were sufficient. 
Calibration process
Following the methodology outlined by Toscani et al. (2019), we first characterized the behavior of the software and the display to verify that they comply with standard calibration conditions as defined by Brainard (1989). We evaluated the luminance additivity, channel constancy, and chromaticity constancy of the red, green, and blue channels based on the measurements. We used the calibration scene in order to take the 84 measurements of the red, green, blue, and gray channels separately, as described in Calibration scene and measurements. The spectroradiometer allowed us to capture the XYZ tristimulus values and spectral distribution of each stimulus. 
If the necessary calibration conditions were met, the calibration was then performed following a standard calibration model, such as that described by Díaz-Barrancas et al. (2024). As explained in the cited study, this model aims to establish an accurate relationship between input (RGB reflectances) and output (XYZ tristimulus values). This relationship allows us then to convert any intended XYZ values into RGB input or to predict the XYZ output based on any RGB input. 
We used the 84 measurements previously taken to compute the calibration matrix and functions. First, we performed a one-dimensional piecewise linear interpolation between adjacent measurements of the luminance measurements (Y component of the XYZ tristimulus values) and built lookup tables (LUTs) that map RGB reflectances to luminance outputs and vice versa. Before proceeding with the interpolation, we subtracted the luminance value measured with the RGB reflectances [0, 0, 0]T from each other luminance measurement. Finally, we normalized each LUT to have values in a range from 0 to 1. We performed that operation and built a LUT for each channel separately, such as  
\begin{equation} {\rm LUT}_{R}(R) = Y_R,\quad {\rm LUT}_{R}^{-1}(Y_R) = R, \quad \end{equation}
(2)
 
\begin{equation} {\rm LUT}_{G}(G) = Y_G,\quad {\rm LUT}_{G}^{-1}(Y_G) = G, \quad \end{equation}
(3)
 
\begin{equation} {\rm LUT}_{B}(B) = Y_B,\quad {\rm LUT}_{B}^{-1}(Y_B) = B, \quad \end{equation}
(4)
where R, G, and B are the RGB reflectances of primary colors (inputs), and YR, YG and YB are the normalized luminance (outputs). As explained in Calibration scene and measurements, the R, G, and B components of the RGB reflectances are given in linear RGB color space in Three.js, the scene is configured to use sRGB as the output color space, and in combination with the gamma properties of the display, the output luminance is expected to increase linearly. Therefore, our model operates under the assumption that RGB inputs are linear. This constitutes the main difference between our approach and the model described in Díaz-Barrancas et al. (2024); we do not perform a linearization of the RGB reflectances. Second, we computed the calibration matrix such as  
\begin{equation} {\bf M} = \left[\begin{array}{@{}c@{\quad}c@{\quad}c@{}} X_{R_{max}} - X_{0} & X_{G_{max}} - X_{0} & X_{B_{max}} - X_{0} \\ Y_{R_{max}} - Y_{0} & Y_{G_{max}} - Y_{0} & Y_{B_{max}} - Y_{0} \\ Z_{R_{max}} - Z_{0} & Z_{G_{max}} - Z_{0} & Z_{B_{max}} - Z_{0} \end{array}\right], \quad \end{equation}
(5)
with \([X_{R_{max}},Y_{R_{max}},Z_{R_{max}}]^{T}\), \([X_{G_{max}},Y_{G_{max}},Z_{G_{max}}]^{T}\), and \([X_{B_{max}},Y_{B_{max}},Z_{B_{max}}]^{T}\) being the XYZ tristimulus values of the displayed stimulus of RGB reflectances [1, 0, 0]T, [0, 1, 0]T, and [0, 0, 1]T, respectively. The vector [X0, Y0, Z0]T corresponds to the XYZ tristimulus values of the measured black (RGB reflectances [0, 0, 0]T). Finally, the calibration functions are given by  
\begin{equation} \left[\begin{array}{@{}c@{}}X\\ Y\\ Z \end{array}\right] = {\bf M}\cdot \left[\begin{array}{@{}c@{}} {\rm LUT}_{R}(R)\\ {\rm LUT}_{G}(G)\\ {\rm LUT}_{B}(B)\\ \end{array}\right] + \left[\begin{array}{@{}c@{}} X_0\\ Y_0\\ Z_0 \end{array}\right] , \quad \end{equation}
(6)
 
\begin{equation} \left[\begin{array}{@{}c@{}} Y_R\\ Y_G\\ Y_B \end{array}\right] = {\bf M}^{-1}\cdot \left(\left[\begin{array}{@{}c@{}} X\\ Y\\ Z\\ \end{array}\right] - \left[\begin{array}{@{}c@{}} X_0\\ Y_0\\ Z_0 \end{array}\right] \right) , \quad \end{equation}
(7)
 
\begin{equation} \left[\begin{array}{@{}c@{}} R\\ G\\ B \end{array}\right] = \left[\begin{array}{@{}c@{}} {\rm LUT}_{R}^{-1}(Y_R)\\ {\rm LUT}_{G}^{-1}(Y_G)\\ {\rm LUT}_{B}^{-1}(Y_B)\\ \end{array}\right]. \quad \end{equation}
(8)
 
As a result, we can predict the XYZ tristimulus for any given RGB reflectances using Equation 6. We can also reciprocally compute the RGB reflectances needed to produce any XYZ tristimulus using Equations 7 and 8. In the Equations 6 and 7, the vector [X0, Y0, Z0]T is the measured XYZ tristimulus values for the RGB reflectances [0, 0, 0]T. Additionally, the relationship between the final RGB values of the image (not the reflectances) and XYZ tristimulus values can also be described in the same way as with standard calibration. 
Validation scene and measurements
The validation scene is almost identical to the calibration scene. The only distinction lies in the set of stimulus colors. Instead of displaying the red, green, and blue channels separately, the validation scene displays a set of colors used for validating the calibration process. This set was inspired by Toscani et al. (2019). The RGB reflectances of the validation set represent a large cube and a small cube in the three-dimensional RGB color space. The large cube vertices range from RGB reflectances [0.2, 0.2, 0.2]T to [0.8, 0.8, 0.8]T, and the small cube vertices range from RGB reflectances [0.4, 0.4, 0.4]T to [0.6, 0.6, 0.6]T. In addition to this first set, which has been used in previous studies (Gil Rodríguez et al., 2022; Zaman et al., 2023), we added eight low-luminance colors to make the test more complete. Indeed, calibration errors are often greater in low luminance. Following the same logic with the vertices of a cube in the RGB space, these eight colors are a combination of cube vertices ranging from RGB reflectances [0.1, 0.1, 0.1]T to [0.3, 0.3, 0.3]T. The validation color stimulus set, therefore, consists of 24 different colors spanning the entire RGB gamut and luminance range. A validation set comprising 24 colors may be insufficient to fully represent the gamut of an HMD or to thoroughly assess its calibration. While we acknowledge this limitation, we believe that the selected set is adequate for our current objectives. Specifically, our goal is to calibrate the HMD for potential psychophysical experiments on color perception conducted using stimuli where extremely low or high luminance does not occur. Of course, the validation set should be adapted and expanded as needed to align with the specific requirements of each use case. 
Validation process
We used the same validation method as Gil Rodríguez et al. (2022) and Toscani et al. (2019). First, we used the validation scene to take the measurements of the 24 colors in the validation set, as described in Validation scene and measurements. Then, we compared those measurements with the predictions of our calibration function introduced in Calibration process. To compare them, we computed the color difference ΔE00 between the 24 measured values and the 24 predicted values by using CIEDE2000. The CIELab color space is a perceptually uniform space, and the CIEDE2000 formula quantifies the distance between two colors within this space, where one unit of CIEDE2000 represents a perceptual step in color difference (Luo, Cui, & Rigg, 2001; Sharma & Bala, 2017). Therefore, a CIEDE2000 value between 0 and 1 indicates that two colors are perceptually indistinguishable. Since the terms for thresholds like “acceptably close” or “just noticeable difference” (JND) vary depending on the field and application, we did not reference them in this study. Instead, we adhered strictly to the original definition of perceptual uniformity as described by the CIELab color space and its corresponding color difference formulas (Sharma & Bala, 2017; Luo et al., 2001). To compute the color difference, the XYZ measurements were first converted into CIELab values. This conversion was performed using the measured white point in each setup, corresponding to the measurements of the color with RGB reflectance [1.0, 1.0, 1.0]T. These 24 color differences were then averaged into a single color difference score, referred to as the validation score. Hence, a validation score smaller than 1 indicates an excellent color calibration, as it is below the unit of perceptible difference between two colors for the human visual system. 
Experimental setups
To demonstrate and illustrate our methodology, we applied it to three different experimental setups: 
  • Three.js with tone mapping globally enabled (for both the entire scene and the measured target object)
  • Three.js with tone mapping globally enabled (for the entire scene) but locally disabled (for the measured target object)
  • Three.js with tone mapping globally disabled (for both the entire scene and the measured target object)
The aim of the first setup is to again demonstrate and illustrate the problem of tone mapping discussed in Toscani et al. (2019)Gil Rodríguez et al. (2022), and Zaman et al. (2023). The aim of the second and third setups is to demonstrate that our approach enables successful calibration by using respectively the option B and option A introduced in Our method. It is unnecessary to demonstrate the two options independently, as their outcomes would be identical. Indeed, as explained in Our method, tone mapping is disabled for the target object of the calibration in both cases. Evaluating both options would be akin to testing the same parameters twice, yielding identical results. However, for the sake of transparency, we evaluated both options and present the results for each. Nonetheless, in order to save time and not repeat the calibration measurements twice, we only applied the validation process to evaluate option A. Indeed, since calibration and characterization are expected to be similar, the data measured to evaluate option B (calibration matrix, LUT tables, and calibration functions) should give the same results when evaluating option A. In other words, only the 24 colors of the validation set were remeasured in the setup used to demonstrate the effectiveness of option A, and the calibration data from option B were used to predict these measurements and calculate the validation score. 
Results
Calibration with tone mapping globally enabled
The first experimental setup aims to demonstrate how tone mapping interferes with successful calibration by violating key requirements, including luminance linearity, luminance additivity, channel constancy, and chromaticity constancy. In this setup, the tone mapping was simply enabled globally for the entire scene and every object in the scene. As the aim is to demonstrate the issue of color calibration at the software level (i.e., with tone mapping globally enabled, in contrast and comparison with the next section, where it is disabled), we used only one HMD as an example (HTC Vive Pro Eye). The HTC Vive Pro Eye was chosen because preliminary tests established that it offered the best performance for calibration and was, therefore, the most suitable to illustrate the issues of tone mapping without exaggerating them with poor color characteristics. 
Characterization of the display
Following the process described in Calibration process, we initially characterized the display and the software. Figure 7 shows the relationship between RGB reflectances and luminance output for the three channels separately (red, blue, and green). In addition, the sum of the RGB luminance (i.e., gray) is also shown in the rightmost panel; the dashed line represents the luminance additivity (sum of luminance independently measured for red, green, and blue channels), and the bold line shows the measured luminance when all RGB channels were presented simultaneously. The red, green, and blue panels also show the results of fitted lines (linear regression), the coefficient of determination (R2), and the root mean square error (RMSE). Please note that the fitted line is used solely to illustrate the luminance linearity in the presented figures and was not used to construct the LUT tables described in Calibration process. As previously mentioned, a one-dimensional piecewise linear interpolation was used to build the LUT tables. The three primary channels are not increasing linearly, which would have been the expected behavior, as explained in Calibration scene and measurements. The fitted lines for the red, green, and blue channels show poor linearity with relatively high RMSE. Additionally, with excellent additivity behavior, the dashed line would ideally perfectly align with the solid line in the rightmost panel. However, the luminance additivity is found to be very poor in this setup. Figure 8 shows the spectra of the three channels individually for varying RGB reflectances. The continuous lines represent the measured spectra for the different RGB reflectances, while the dashed lines represent the spectra predictions obtained by multiplying the lowest measured spectrum by a linear scaling factor. The linear scaling factor was calculated by dividing the radiance of the test reflectances (0.5, 0.75, 1.0) by the radiance of the reference reflectance (0.25) at specific wavelengths (450 nm for blue channel, 550 nm for green channel, and 630 nm for red channel). Linear scalings of the lowest spectrum result in spectra that perfectly fit the spectra measured for higher RGB reflectances for the red and blue channels. This behavior suggests very good channel constancy for those channels. However, the green channel seems much less constant. Two extra peaks of radiance that are not linearly increasing can be observed. In other words, the red and blue channels seem to interfere with the green channel. This suggests a lack of independent scaling for the green channel, which may interfere with calibration. Finally, Figure 9 shows the chromaticity coordinates (x, y) of the three channels with normalized RGB reflectances higher than 0.20 on the CIE 1931 chromaticity diagram. In the case of good chromaticity constancy, the dots of the same color should overlap. The chromaticity constancy is satisfactory for the red and blue channels but poor for the green channel, as expected from the spectrum in Figure 8
Calibration results and validation
This setup with tone mapping globally enabled showed poor luminance additivity, channel constancy, and chromaticity constancy. For those reasons, standard calibration is not expected to be performed effectively and not to yield satisfactory results. Nevertheless, we proceeded with the calibration to demonstrate this issue. We employed the calibration method described in Calibration process and the validation method described in Validation process. The outcome was an average ΔE00 of 11.482 as a validation score, indicating poor calibration performance and a significant, perceptible color difference between predictions and measurements. Figure 10 shows the discrepancies between predictions and measurements on the CIE 1976 UCS chromaticity diagram. The red crosses represent the measurements, and the black dots represent the predictions. It is evident that predictions and measurements do not closely align, which would be the expected result in a successful calibration. This score is compatible with the results obtained by a previous study in a similar setup on Unreal Engine (Zaman et al., 2023). Table 2 shows the details of this score (median, minimum value, maximum value, and standard deviation), and Figure 11 shows the 24 values constituting the validation score in a boxplot. 
Table 2.
 
Mean average, median, minimum, maximum, and standard deviation of color differences ΔE00 between measured data and prediction data for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally enabled, globally disabled, and locally disabled.
Table 2.
 
Mean average, median, minimum, maximum, and standard deviation of color differences ΔE00 between measured data and prediction data for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally enabled, globally disabled, and locally disabled.
Calibration with tone mapping locally disabled (option B)
The second experimental setup with tone mapping locally disabled is designed to illustrate and validate the option B of our approach and its advantages. In this setup, we measured and calibrated the three different HMDs described in Hardware and software
Characterization of the display
Following again the procedure described in Calibration process, we first characterized the displays and the software. In this instance, Figure 12 demonstrates a very good linear relationship between RGB reflectances and luminance output for the HTC Vive Pro Eye, aligning with the expected behavior as previously discussed. The R2 and RMSE scores of the fitted lines for the red, green, and blue channels also indicate this excellent linearity. The linearity is slightly less consistent for the three primary channels of the Meta Quest Pro and the Meta Quest 3. This can be seen in the higher RMSE of the fitted lines. It is also noted that the Meta Quest 3 seems to reach a maximum level of luminance, which is not problematic and has been similarly observed by Gil Rodríguez et al. (2022) in a different setup. Regarding luminance additivity, the HTC Vive Pro Eye and the Meta Quest 3 exhibit slight overadditivity in high luminance, but this remains acceptable. On the other hand, the Meta Quest Pro shows slight subadditivity, yet this is also still satisfactory. Figure 13 shows an excellent channel constancy for the HTC Vive Pro Eye. However, there are small extra peaks of radiance for the Meta Quest Pro and Meta Quest 3, which could be interferences from other channels. This suggests a lack of independent scaling for the primary channels, which may interfere with calibration. Although these extra peaks might be an issue, they follow the linear scaling, which should reduce their negative impact on calibration. Finally, Figure 14 illustrates excellent chromaticity constancy across all three HMDs, with the dots nearly perfectly overlapping. 
Calibration results and validation
This characterization demonstrated satisfactory levels of luminance additivity, channel constancy, and chromaticity constancy for the three HMDs. With the conditions for standard calibration met, we subsequently applied the calibration procedure described in Calibration process. To evaluate the results of the calibration, we ran the validation procedure described in Validation process. Figure 15 shows the results for all three HMDs on the CIE 1976 UCS chromaticity diagram. A perfect overlap between the red crosses (measurements for option B, which is evaluated in this section) and black dots on the HTC Vive Pro Eye diagram suggests that the calibration is successful and that the HMD and the software can produce and control colors effectively. Although slightly worse, the Meta Quest Pro also shows satisfactory results. On the other hand, the results for the Meta Quest 3 suggest that the calibration is not successful and is approximative. Indeed, the red crosses and black dots do not overlap in some areas of the diagram, such as the green or blue regions. Ultimately, we computed the validation score (ΔE00) as defined in Validation process. Table 2 shows the results for all three HMDs. These results confirm the suggestions made from the CIE 1976 UCS diagram. The HTC Vive Pro Eye performs excellently with a score of 0.889, which is below the unit of perceptual difference for the human visual system (Luo et al., 2001; Sharma & Bala, 2017). The Meta Quest Pro performs less well, with a score of 3.039. Finally, the Meta Quest 3 has an inferior score of 5.675. In addition, Table 2 shows also the details of these scores (median, minimum value, maximum value, and standard deviation), and Figure 11 shows the 24 values constituting the validation scores in boxplots. When comparing these results with more recent research, the performance of the HTC Vive Pro Eye appears to be marginally inferior to that reported in certain other studies (Barrancas et al., 2023; Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Zaman et al., 2023). While it is challenging to draw definitive conclusions, this slight discrepancy may be attributable to differences in the devices used to capture luminance and chromaticity or variations in the graphics rendering engines, which represent the primary distinction between our studies (Three.js vs. Unity or Unreal Engine). However, in both cases, the average ΔE00 remains below 1.0, a value more than excellent and more than adequate for the intended applications. The results of the other HMDs cannot be compared, as they were not tested in the other studies. 
These scores were obtained in the sweet spot of the lenses. We previously defined the sweet spot of the lens as the area where the user’s eye is positioned by default and where the luminance can reach the highest values. We also computed the validation score at other spots on the different lenses to compare the color reproduction fidelity across the entire lens area. Figure 16 illustrates these different scores for all three HMDs (the numbers reported in black are the validation scores for option B, which is evaluated in this section). It also shows the maximum luminance level of the lenses per area. As previously explained, we captured the data by placing the spectroradiometer at the same distance from the lens as our eye would be positioned if we were wearing the HMD (except for the Meta Quest Pro). We captured the maximum luminance levels by measuring a perfectly white stimulus covering the entire lens. It is observed that the best average score for each HMD is where the luminance reaches the highest value, which is also where the user’s eye is theoretically positioned. It is also observed that the color reproduction fidelity of the Meta Quest Pro and Meta Quest 3 varies drastically across the entire lens. They achieve scores exceeding 20, indicating that the colors in those regions are completely different. These results are directly explained by the large variation in luminance across the lenses, which is considered to be induced by lens distortion. On the other hand, the reproduction is more stable on the HTC Vive Pro Eye, and the differences are smaller. Although smaller, the differences in color reproduction fidelity across the three HMDs are still significant. These results suggest that it is much more challenging to control colors in the peripheral regions, especially in the Meta Quest Pro and Meta Quest 3, even if it is possible to precisely control the color at the center of the lenses. Díaz-Barrancas et al. (2024) also investigated the uniformity of luminance and chromaticity across the entire lens. Although the methodology differed slightly, it is notable that the results for the HTC Vive Pro Eye are consistent: Luminance peaks at the center of the lens and decreases toward the lens periphery, while chromaticity shifts at the lens periphery, within a range of 0 to 10 ΔE00. Although the other assessed HMDs are different from our measurements (Pimax 8KX DMAS and Varjo Aero), it is noteworthy that the pronounced luminance drop-off observed at the lens edges in the Meta Quest Pro and Meta Quest 3 has also been documented in these HMDs. The HTC Vive Pro Eye appears to be the only device that demonstrates consistent luminance uniformity across the entire lens. 
Calibration with tone mapping globally disabled (option A)
The third experimental setup, in which tone mapping is globally disabled, is designed to illustrate and validate the option A of our approach and its advantages. In this setup, we measured and calibrated the three different HMDs described in Hardware and software. As explained in Experimental setups, we only applied the validation process to evaluate option A. We measured the 24 colors of the validation set in this setup but we used the same calibration data (calibration matrix, LUT tables, and calibration functions) obtained in Calibration with tone mapping locally disabled (option B) to predict the measurements and compute the validation score. 
Calibration results and validation
To evaluate the results of the calibration of option A, we ran the validation procedure described in Validation process. Figure 15 shows the results for all three HMDs on the CIE 1976 UCS chromaticity diagram. A perfect overlap between the green dots (measurements for option A, which is evaluated in this section) and black dots on the HTC Vive Pro Eye diagram suggests that the calibration is reiteratively successful. Although the Meta Quest Pro performed slightly worse, it still produced satisfactory results upon reevaluation. The results for the Meta Quest 3 suggest once more that the calibration is not successful and is approximative. Repeatedly, we computed the validation score (ΔE00) as defined in Validation process. Table 2 shows the results for all three HMDs. The HTC Vive Pro Eye performs excellently with a score of 0.905, which is still below the unit of perceptual difference for the human visual system (Luo et al., 2001; Sharma & Bala, 2017). The Meta Quest Pro consistently underperforms, with a score of 3.102. Finally, the Meta Quest 3 demonstrates an even lower performance, with a score of 5.684. In addition, Table 2 shows also the details of these scores (median, minimum value, maximum value, and standard deviation), and Figure 11 shows the 24 values constituting the validation scores in boxplots. These results are similar to those obtained in option B and demonstrate that the calibration results for the target object are similar for both options. 
Similar to the previous section, Figure 16 illustrates the different scores across the lenses for all three HMDs (the numbers reported in orange are the validation scores for option A, which is evaluated in this section). It is evident once again that the color reproduction fidelity of the HMDs varies significantly across the entire lenses, and similar conclusions can be drawn. 
Discussion
This study aimed to propose a framework for HMD color calibration that overcomes some of the issues of previous solutions. We presented a comparative analysis between different HMDs and their outcomes under varying tone mapping conditions, highlighting the strengths of our approach. Our results offer insightful implications for HMD choices and calibration strategies. 
The findings from the globally enabled tone mapping setup highlighted significant limitations in the HMD’s ability to maintain consistent color channel behavior. The poor luminance additivity, channel constancy, and chromaticity constancy underscore a fundamental problem in achieving reliable calibration under these conditions. The validation process yielded a high average ΔE00 of 11.482, indicating a noticeable discrepancy between expected and observed color outcomes. This substantial discrepancy suggests that global tone mapping introduces complexities that prevent traditional calibration methods from working. These results are consistent with previous studies (Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023). 
Contrasting these results, the locally disabled tone mapping setup (referred to as option B in our study) provided a more favorable environment for calibration. Here, the tone mapping applied globally except on the stimulus allowed for more controlled conditions. This technique demonstrated a marked improvement in calibration accuracy, as reflected by the near-perfect overlap between predicted and measured values and the average ΔE00 of 0.889 in devices like the HTC Vive Pro Eye. A calibration result of this nature may be considered ideal, as the average color difference falls below the unit of perceptual difference of the human visual system (Luo et al., 2001; Sharma & Bala, 2017). These results highlight the potential of our approach and modular tone mapping in overcoming the limitations observed previously. As explained, a number of related studies have proposed solutions for HMD color calibration by disabling tone mapping. We believe, as Zaman et al. (2023) also pointed out, that this solution has the disadvantage of making the overall rendering appear unrealistic as it disables the simulation of HDR rendering. Zaman et al. (2023) also proposed a solution enabling modular tone mapping, but their solution seemed complex to reproduce and above all used unlit materials that do not react to light and are therefore impractical for studies in the field of color vision. Our approach enables modular tone mapping using standard lit materials. 
Moreover, our solution also allows tone mapping to be globally disabled (referred to as option A in our study) as in related studies (Barrancas et al., 2023; Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Toscani et al., 2019). We have provided the results of the validation process for option A, demonstrating that the results of the calibration are similar to option B and thus validating the option A as a viable solution as well. We have also provided a qualitative comparison of options A and B that shows the visual difference of a scene between them (Figure 3). Option A should be used in scenarios where precise color control and consistency within the scene is important, such as in color constancy experiments. On the other hand, option B should be used in experiments where it is important to have precise control over the color of a target object while maintaining a very natural and realistic background. It should be remembered that option B can introduce inconsistencies in color representation within the scene and that this should not be overlooked in human perception experiments. 
It should also be remembered that in both cases, only a small spatial portion of the scene can be calibrated, due to the nature and constraints of calibrating a 3D environment. However, as previously explained, our method and calibration functions also allow to predict luminance and chromaticity of any object in the scene based on the RGB values output by the display. Finally, it should also be noted that this method can accurately control the color of a flat patch only. If the object has a complex shape, it is only possible to precisely control the color of a restricted portion of its surface, while the remaining part of the object color will be altered by the shading or shadows. 
These are not the only advantages of our solution. We believe that our solution also has the advantage of being implemented using a new engine never before utilized for color calibration in HMDs: Three.js. Although the superiority of this engine over Unity or Unreal cannot be objectively demonstrated, as numerous factors come into play, we nonetheless consider it to offer several benefits. First, introducing a new option to the field of vision research can only be beneficial and may serve researchers who are more inclined to work with Three.js. Second, while Unity or Unreal Engine can sometimes feel like black boxes, Three.js is lightweight, transparent, and open-source, making it easier to maintain control over everything and to know exactly what is happening in our scenes. Third, since Three.js runs in the web browser, it is highly portable and can be used in a wide range of scenarios. Lastly, although somewhat subjective, Three.js may be less complex to set up and master compared to Unity or Unreal Engine, which can sometimes feel overwhelming. 
Our analysis also revealed device-specific performance variations that merit consideration. The HTC Vive Pro Eye consistently showed excellent performance in terms of calibration and color reproduction accuracy, in line with the results of previous studies (Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Zaman et al., 2023), albeit marginally worse. The Meta Quest Pro showed good results. In contrast, the Meta Quest 3 exhibited poor calibration performance, making it unsuitable for accurate control of colors. Moreover, we showed that the color reproduction accuracy depends greatly on the region of the lens. The sweet spot area of the lenses consistently showed way better results than the peripheral areas, in line once again with what has been demonstrated by Díaz-Barrancas et al. (2024). These variations underscore the importance of device-specific considerations in the development and application of psychophysical experiments using VR. 
Conclusion
This study introduced a new approach to calibrate VR HMDs, aiming to resolve some issues present in previous methods. We showed that it is possible to perform successful color calibration and accurately control stimulus colors without the drawbacks of previous solutions. Indeed, our approach can disable tone mapping only on specific objects in the scene, allowing for a globally realistic scene while accurately controlling the physical color of a stimulus. Our approach can also be used to disable tone mapping for the entire scene globally instead of at the specific object level. In this sense, our approach is very flexible and adaptable to various scenarios needed by researchers. We also explained that another advantage of our solution is the use of standard Lambertian materials, which exhibit normal behavior with respect to lighting, unlike the unlit materials used in a previous study offering also a modular tone mapping solution (Zaman et al., 2023). While previous studies have already utilized Lambert materials in their approach disabling tone mapping (Barrancas et al., 2023; Díaz-Barrancas et al., 2024; Gil Rodríguez et al., 2022; Toscani et al., 2019; Zaman et al., 2023), the present study is the first to incorporate Lambertian materials within a modular tone mapping framework. 
Moreover, we developed our solution using Three.js instead of the commonly used Unity or Unreal Engine. To our knowledge, this methodology is new in vision science studies and is intrinsically interesting by bringing more diversity and options to researchers. In addition, this 3D engine offers other advantages, such as transparency, portability, and ease of use. We also provide source code to ensure easy reproduction of our method. 
Finally, we showed a comparison of the calibration performances for three different HMDs. We highlighted that the HTC Vive Pro Eye performs excellently, the Meta Quest Pro performs well, and the Meta Quest 3 performs poorly. We also showed that the color reproduction fidelity varies significantly across the lenses. It is optimal where the user's eye is positioned by default, but it drops in the peripheral areas. This is especially the case for the Meta Quest Pro and Meta Quest 3. Therefore, we warned that even if it is possible to precisely control the color produced in the center of the lenses, it is much more challenging to control it in the peripheral regions. This is something to take into account when designing psychophysical experiments. Indeed, it is unlikely that an observer would look at the scene or a stimulus only through the center of the lens. 
In conclusion, this study offers a framework and insightful information for the design and utilization of VR in vision research. The ability to calibrate and control color accurately in VR HMDs without other drawbacks could significantly enhance research by providing new ways to design and run psychophysical experiments. Future research should explore the integration of this method into real-world applications, such as VR psychophysical experiments where color accuracy is critical. 
Acknowledgments
Supported by JST SPRING, Japan Grant Number JPMJSP2106 to KD, and JSPS KAKENHI Grant Number 23K28174 and 21KK0203 to TN. 
Commercial relationships: none. 
Corresponding author: Takehiro Nagai. 
Address: Department of Information and Communications Engineering, School of Engineering, Institute of Science Tokyo, 4259-G2-1 Nagatsuta-cho, Midori-ku, Yokohama, Kanagawa 226-8502, Japan. 
References
Barrancas, F. D., Rodríguez, R. G., Aizenman, A., Bayer, F. S., & Gegenfurtner, K. R. (2023). Color calibration in virtual reality using different head mounted displays. Journal of Vision, 23(9), 5257, https://doi.org/10.1167/jov.23.9.5257.
Brainard, D. H. (1989). Calibration of a computer controlled color monitor. Color Research & Application, 14(1), 23–34.
Brainard, D. H., Pelli, D. G., & Robson, T. (2002). Display characterization. Signal Process, 80, 2–067.
Díaz-Barrancas, F., Gil-Rodríguez, R., Aizenman, A., Bayer, F., & Gegenfurtner, K. (2023). Color calibration in virtual reality for unity and unreal. 2023 IEEE Conference on Virtual Reality and 3D User Interfaces Abstracts and Workshops (VRW), Shanghai, China (pp. 733–734), https://doi.org/10.1109/VRW58643.2023.00209.
Díaz-Barrancas, F., Rodríguez, R. G., Bayer, F. S., Aizenman, A., & Gegenfurtner, K. R. (2024). High-fidelity color characterization in virtual reality across head mounted displays, game engines, and materials. Optics Express, 32(13), 22388–22409. [PubMed]
Gil Rodríguez, R., Bayer, F., Toscani, M., Guarnera, D., Guarnera, G. C., & Gegenfurtner, K. R. (2022). Colour calibration of a head mounted display for colour vision research using virtual reality. SN Computer Science, 3, 1–10. [PubMed]
Gil Rodríguez, R., Hedjar, L., Toscani, M., Guarnera, D., Guarnera, G. C., & Gegenfurtner, K. R. (2024). Color constancy mechanisms in virtual reality environments. Journal of Vision, 24(5), 6, https://doi.org/10.1167/jov.24.5.6 [PubMed]
Luo, M. R., Cui, G., & Rigg, B. (2001). The development of the CIE 2000 colour-difference formula: CIEDE2000. Color Research & Application, 26, 340–350, https://doi.org/10.1002/col.1049.
Motoyoshi, I., & Matoba, H. (2012). Variability in constancy of the perceived surface reflectance across different illumination statistics. Vision Research, 53(1), 30–39. [PubMed]
Murray, R. F., Patel, K. Y., & Wiedenmann, E. S. (2022). Luminance calibration of virtual reality displays in unity. Journal of Vision, 22(13), 1. [PubMed]
Sharma, G., & Bala, R. (2017). Digital color imaging handbook. Boca Raton, FL: CRC Press.
Topcon. (2024). Sr-5000 /5000h, 2d spectroradiometer sr-5000 series. Retrieved October 17, 2024, from https://www.topcon-techno.co.jp/en/products/sr-5000-5000h/
Toscani, M., Gil, R., Guarnera, D., Guarnera, G., Kalouaz, A., & Gegenfurtner, K. R. (2019). Assessment of OLED head mounted display for vision research with virtual reality. 2019 15th International Conference on Signal-Image Technology & Internet-Based Systems (SITIS), Sorrento, Italy (pp. 738–745), https://doi.org/10.1109/SITIS.2019.00120.
Wilson, A., & Hua, H. (2021). Design of a pupil-matched occlusion-capable optical see-through wearable display. IEEE Transactions on Visualization and Computer Graphics, 28(12), 4113–4126.
Zaman, N., Sarker, P., & Tavakkoli, A. (2023). Calibration of head mounted displays for vision research with virtual reality. Journal of Vision, 23(6), 7, https://doi.org/10.1167/jov.23.6.7. [PubMed]
Figure 1.
 
Illustration of Three.js rendering capabilities. This room can be used for VR psychophysical experiments. Tone mapping is globally enabled in this scene.
Figure 1.
 
Illustration of Three.js rendering capabilities. This room can be used for VR psychophysical experiments. Tone mapping is globally enabled in this scene.
Figure 2.
 
Examples of 3D scenes with different spatial layouts and light intensities. In (a), the light intensity is 5 candelas (cd). In (b), the light intensity is 1 cd. In (c), the light intensity is 5 cd. The white point represents the light source position. All planes have the same RGB reflectances [1, 1, 1]T.
Figure 2.
 
Examples of 3D scenes with different spatial layouts and light intensities. In (a), the light intensity is 5 candelas (cd). In (b), the light intensity is 1 cd. In (c), the light intensity is 5 cd. The white point represents the light source position. All planes have the same RGB reflectances [1, 1, 1]T.
Figure 3.
 
Examples of 3D scenes with different tone mapping settings. In (a), tone mapping is globally disabled. In (b), tone mapping is globally enabled. In (c), tone mapping is globally enabled for the entire scene but locally disabled for the second helmet (from the left).
Figure 3.
 
Examples of 3D scenes with different tone mapping settings. In (a), tone mapping is globally disabled. In (b), tone mapping is globally enabled. In (c), tone mapping is globally enabled for the entire scene but locally disabled for the second helmet (from the left).
Figure 4.
 
Setups of the spectroradiometer and the HMDs for measurements: (a) HTC Vive Pro Eye and (b) Meta Quest Pro.
Figure 4.
 
Setups of the spectroradiometer and the HMDs for measurements: (a) HTC Vive Pro Eye and (b) Meta Quest Pro.
Figure 5.
 
Calibration room. The stimulus is shown in red. The white point and white diamond represent the light position. The intersection of the orange and white lines indicates the VR camera position. The white line represents its orientation, and the orange lines represent its field of view. The grid, white diamond, white point, and orange and white lines are only visualization aids in editor mode. They are not present in the actual view displayed in the HMD.
Figure 5.
 
Calibration room. The stimulus is shown in red. The white point and white diamond represent the light position. The intersection of the orange and white lines indicates the VR camera position. The white line represents its orientation, and the orange lines represent its field of view. The grid, white diamond, white point, and orange and white lines are only visualization aids in editor mode. They are not present in the actual view displayed in the HMD.
Figure 6.
 
View of the stimulus captured by the spectroradiometer. The VR camera, stimulus, HMD lens, and spectroradiometer are perfectly aligned.
Figure 6.
 
View of the stimulus captured by the spectroradiometer. The VR camera, stimulus, HMD lens, and spectroradiometer are perfectly aligned.
Figure 7.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with globally enabled tone mapping. Additionally, the rightmost panel shows the same for gray, where all RGB channels are simultaneously used (the continuous line) in addition to the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE).
Figure 7.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with globally enabled tone mapping. Additionally, the rightmost panel shows the same for gray, where all RGB channels are simultaneously used (the continuous line) in addition to the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE).
Figure 8.
 
Measured spectra of three channels separately for different RGB reflectances (0.25, 0.5, 0.75, 1.0) with globally enabled tone mapping. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25).
Figure 8.
 
Measured spectra of three channels separately for different RGB reflectances (0.25, 0.5, 0.75, 1.0) with globally enabled tone mapping. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25).
Figure 9.
 
Chromaticity coordinates (x, y) of the three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping globally enabled.
Figure 9.
 
Chromaticity coordinates (x, y) of the three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping globally enabled.
Figure 10.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally enabled. The red crosses indicate the measured values, and the black dots indicate the values predicted by our calibration function.
Figure 10.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally enabled. The red crosses indicate the measured values, and the black dots indicate the values predicted by our calibration function.
Figure 11.
 
Boxplots of color differences ΔE00 between the 24 validation pairs of measured data and prediction data (a) for HTC Vive Pro Eye with tone mapping globally enabled and (b) HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally disabled (option A) and locally disabled (option B).
Figure 11.
 
Boxplots of color differences ΔE00 between the 24 validation pairs of measured data and prediction data (a) for HTC Vive Pro Eye with tone mapping globally enabled and (b) HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally disabled (option A) and locally disabled (option B).
Figure 12.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively. Additionally, the rightmost panels show the same for gray, where all RGB channels are simultaneously used (the continuous line) and the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE). In the case of Meta Quest 3, as a maximum luminance level has been detected, the data included in the fitting extend to the first observation of the threshold only. This approach is taken to prevent distortion of the linear regression analysis.
Figure 12.
 
Relationship between RGB reflectances and luminance output for the three channels (red, blue, and green channels) separately with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively. Additionally, the rightmost panels show the same for gray, where all RGB channels are simultaneously used (the continuous line) and the sum of the luminance of red, green, and blue channels (the dashed line) to check luminance additivity. The red, green, and blue panels also show the results of a fitted line, the coefficient of determination (R2), and the root mean square error (RMSE). In the case of Meta Quest 3, as a maximum luminance level has been detected, the data included in the fitting extend to the first observation of the threshold only. This approach is taken to prevent distortion of the linear regression analysis.
Figure 13.
 
Measured spectra of each of the three channels for varying RGB reflectances (0.25, 0.5, 0.75, 1.0) with tone mapping locally disabled. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25). In the case of Meta Quest 3, as a maximum luminance level has been detected, the presented RGB reflectances have been adapted to 0.25, 0.5, 0.65, and 1.0. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 13.
 
Measured spectra of each of the three channels for varying RGB reflectances (0.25, 0.5, 0.75, 1.0) with tone mapping locally disabled. The continuous lines represent the measured spectra for the different RGB reflectances. The dashed gray lines represent the predicted spectra obtained by linearly scaling the lowest spectrum by a factor specified in the legends. The factor is calculated by dividing the radiance measured at a specific wavelength for a test reflectance (0.5, 0.75, 1.0) by the radiance measured at the same wavelength for the reference reflectance (0.25). In the case of Meta Quest 3, as a maximum luminance level has been detected, the presented RGB reflectances have been adapted to 0.25, 0.5, 0.65, and 1.0. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 14.
 
Chromaticity coordinates (x,y) of three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 14.
 
Chromaticity coordinates (x,y) of three channels with RGB reflectances higher than 0.20 on CIE 1931 chromaticity diagram with tone mapping locally disabled. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 15.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally disabled (option A) and locally disabled (option B). The green dots indicate the measured values for option A, the red crosses indicate the measured values for option B, and the black dots indicate the values predicted by our calibration function. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 15.
 
Chromaticity coordinates of 24 validation colors on CIE 1976 UCS chromaticity diagram with tone mapping globally disabled (option A) and locally disabled (option B). The green dots indicate the measured values for option A, the red crosses indicate the measured values for option B, and the black dots indicate the values predicted by our calibration function. The results for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 are presented in (a), (b), and (c), respectively.
Figure 16.
 
Color uniformity. First row: luminance across the area of the lens. Every scale belongs to the image on the left of it, and the unit is cd/m2. Second row: mean average color differences ΔE00 across the area of the lens with tone mapping globally disabled (option A) and locally disabled (option B). The results for all three HMDs are shown in columns.
Figure 16.
 
Color uniformity. First row: luminance across the area of the lens. Every scale belongs to the image on the left of it, and the unit is cd/m2. Second row: mean average color differences ΔE00 across the area of the lens with tone mapping globally disabled (option A) and locally disabled (option B). The results for all three HMDs are shown in columns.
Table 1.
 
Technical specifications of the HMDs used in this study.
Table 1.
 
Technical specifications of the HMDs used in this study.
Table 2.
 
Mean average, median, minimum, maximum, and standard deviation of color differences ΔE00 between measured data and prediction data for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally enabled, globally disabled, and locally disabled.
Table 2.
 
Mean average, median, minimum, maximum, and standard deviation of color differences ΔE00 between measured data and prediction data for HTC Vive Pro Eye, Meta Quest Pro, and Meta Quest 3 with tone mapping globally enabled, globally disabled, and locally disabled.
×
×

This PDF is available to Subscribers Only

Sign in or purchase a subscription to access this content. ×

You must be signed into an individual account to use this feature.

×