Giter VIP home page Giter VIP logo

chaosikaros / ovva Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 0.0 5.08 MB

Omnidirectional Virtual Visual Acuity (OVVA) is a new user-centric VR clarity metric. OVVA measures and compares the virtual visual acuity of the central, focal area of a VR HMD and environments and their degradation in the noncentral areas.

License: MIT License

C# 43.98% ShaderLab 48.12% HLSL 7.90%
benchmark visualization vr ovva unity ieeevr hmd measurement optical ppd

ovva's Introduction

Omnidirectional Virtual Visual Acuity (OVVA):

A User-centric Visual Clarity Metric for Virtual Reality Head-mounted Displays and Environments

IEEE VR 2024 (TVCG journal track) paper

Overview

Users' perceived image quality of virtual reality head-mounted displays (VR HMDs) is determined by multiple factors, including the HMD's structure, optical system, display and render resolution, and users' visual acuity (VA). Existing metrics such as pixels per degree (PPD) have limitations that prevent accurate comparison of different VR HMDs. One of the main limitations is that not all VR HMD manufacturers released the official PPD or details of their HMDs' optical systems. Without these details, developers and users cannot know the precise PPD or calculate it for a given HMD. The other issue is that the visual clarity varies with the VR environment.

Our work has identified a gap in having a feasible metric that can measure the visual clarity of VR HMDs. To address this gap, we present an end-to-end and user-centric visual clarity metric, omnidirectional virtual visual acuity (OVVA), for VR HMDs. OVVA extends the physical visual acuity chart into a virtual format to measure the virtual visual acuity of an HMD's central focal area and its degradation in its noncentral area. OVVA provides a new perspective to measure visual clarity and can serve as an intuitive and accurate reference for VR applications sensitive to visual accuracy. Our results show that OVVA is a simple yet effective metric for comparing VR HMDs and environments.

Key Features

Installation & Set-up

The sample project is built using Unity 2021.3.17f1. You can open the sample project directly or import the Unity package.

Dependencies:

  • OpenXR Plugin
  • TextMeshPro

Steps:

  1. Install the above Unity package dependencies.
  2. Import the Unity package of OVVA.

OVVA Test Procedure

  1. Adjust your HMD to the most comfortable position that allow you to see letter clearly.
  2. The recognition task generates all 8 E letters on a ring first. You can start it by click on the Confirm button. When the test starts, all E letters will disappear and show up one by one randomly. Please indicate the orientation of the current E letter using directional buttons. In the first stage for CVVA measurement, be careful and do not make mistake, it is sensitive to mistakes.
  3. In the second stage for CVVA degradation measurement, the test can be end if any letters on the ring fall outside your field of vision. The ring should display 8 letters in total.
  4. Upon completion, you will receive an image for the interpretation of CVVA and its degradation. You can also find this image and raw OVVA data recording in “OVVA\OVVA_Data\OVVADataset”.

Getting Started

The example scenes are located in the Examples folder. It is recommended to build them and run instead of running in the Unity editor.

OBSI

Scene: OBSI VR.unity

We introduce optotype-based standard images (OBSI) to reveal and highlight the key software factors that cause the non-uniform distribution of image quality in VR environments.

Image11

Image5

OVVA Test with Keyboard (available demo: "OVVA.Windows.exe.zip" in release page)

Scene: OVVA VR.unity

This is a remake version of OVVA test used in experiment. It contains tips UI with buttons for in-app instruction.

Attention: This is a VR application based on OpenXR, it should be run as a PC VR application.

Input:

  • Directional buttons = Arrow keys
  • Confirm button = Space

Settings:

  • Eye: Select the eye condition for the OVVA test (e.g., 'Both' condition means no eye is blocked, 'L' means the right eye's view will be obscured by a black texture)
  • Stage2 Repetition: Adjust the number of repetitions for stage 2. A higher repetition number can help generate a more accurate heatmap.

OVVA Analysis Example

Scene: OVVA Analysis.unity

This scene is an example of batch processing for multiple raw OVVA data recordings.

Image6

Optotypes Comparison

Scene: Optotypes comparison.unity

This scene is used to compare different rendering methods in Unity editor. Set the resolution to 1920*1080, change the scale to observe pixel-level details. The rotation angle of the optotypes can be changed in runtime by modifying the "rotation angle" on the inspector of "OptotypesComparison".

Known issues

  1. In the first stage for CVVA measurement, if users clicked on wrong directional button for letter with recognizable orientation, they need to restart the task. The radial distance of the ring's center is adjusted using the bisection method in this stage. This is an approximation method used to find the roots of an equation by repeatedly dividing the interval. Correct answers increase the radial distance, while incorrect ones decrease it. Therefore, the first stage requires a 100% recognition rate to ensure the correct bisection method steps.

Future Work

  1. Improve the in-app instruction.
  2. Boost performance of OBSI generator and OVVA heatmap generator.
  3. Develop an online database for collection of public OVVA data.
  4. Create a VR HMD name database for the filing system of OVVA database.
  5. Change the recording file format from CSV to JSON.
  6. Improve the OVVA test procedure by involving Bayesian methods to increase the level of fault tolerance.
  7. Add input device support of VR controller by Unity's XR Interaction Toolkit (XRI).

Contributions

We welcome community contributions to this repository.

Citations

@ARTICLE{10458404,
  author={Wang, Jialin and Shi, Rongkai and Li, Xiaodong and Wei, Yushi and Liang, Hai-Ning},
  journal={IEEE Transactions on Visualization and Computer Graphics}, 
  title={Omnidirectional Virtual Visual Acuity: A User-centric Visual Clarity Metric for Virtual Reality Head-mounted Displays and Environments}, 
  year={2024},
  volume={},
  number={},
  pages={1-11},
  keywords={Visualization;Measurement;Resists;Rendering (computer graphics);Optical imaging;Image resolution;Optical sensors;Virtual reality;Head-mounted displays;Measurements;Visual clarity;Passthrough;Render resolution;Frame rate},
  doi={10.1109/TVCG.2024.3372127}}

Link to Paper

Contact: [email protected]

ovva's People

Contributors

chaosikaros avatar oayellowo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ovva's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.