Skip to content

Latest commit

 

History

History
157 lines (99 loc) · 8.22 KB

File metadata and controls

157 lines (99 loc) · 8.22 KB

OpenXR Tutorial

This is a work in progress of the upcoming OpenXR tutorial, do not use this to learn OpenXR yet

Contents

  1. INTRO (understanding & dev env) 1.1. What is the goal of OpenXR 1.2. High Level overview of the components of OpenXR (Application - Loader - API layers - Runtime - Graphics - Input System) 1.3. Setting up a development environment ( Visual Studio & Android Studio & Monado for people without HMDs )
    1. TODO: Add Monado support.
  2. SETUP (Basic structure ready) 2.1. Creating an XrInstance / xrGetSystem (xrCreateInstance) 2.2. Creating an XrSession (xrCreateSession, OpenGL based for code brevity) 2.3. Polling the Event Loop (xrPollEvent and Session States)
  3. GRAPHICS (solid color render at end) 3.1. Creating SwapChains for color and depth (xrEnumerateSwapchainFormats) 3.2. The Renderloop (xrWaitFrame/xrBeginFrame/xrEndFrame/ env.blend.mode) (solid color)
  4. ACTIONS (cube at controller position at end) 4.1. Using Spaces ( xrCreateReferenceSpace/xrLocateSpace ) (draw cube at world origin, view from VIEW space) 4.2. The interaction system. Interaction Profiles, Bindings best practices 4.3. Create Actions and Actions Sets (xrCreateActionSet, xrCreateAction, xrSuggestInteractionProfileBindings) 4.4. How to check if a controller is connected.
  5. EXTENSIONS (extensions debug and hand tracking) 5.1. Using Extensions and Layers xrEnumerateInstanceExtensionProperties, xrEnumerateApiLayerProperties, 5.2. Using xrCreateDebugUtilsMessengerEXT (might consider doing this earlier to show how to get debug messages) 5.3. Extension examples including XR_EXT_HAND_TRACKING cubes at joints.

Phase 1: 15th May to 14th June 2023

1A Design, look and feel 15th-26th May 2023

3-4 potential designs will be commissioned, encompassing colour scheme, layout, font choices, text and menu styles. We propose to use Calland Creative to create these single-page designs; this agency designed our site at simul.co. Due to the technical nature of this project, design is a small, but important part of the process. The designs will be validated internally, then presented to the working group by 5th June.

1B Outlines of Chapters 1.1, 1.2 and 2.1: 15th-22nd May 2023

Chapters 1.1 (What is the Goal of OpenXR), 1.2 (High Level Overview of OpenXR Components) and 2.1 (Creating an XrInstance) will be outlined and presented to the working group by 5th June. NOTE: we propose to incorporate xrCreateDebugUtilsMessengerEXT here, after Chapter 2.1, and will outline it in Phase 1B.

1C Draft Text of Chapter 1.1: 23rd – 29th May 2023

Based on approval and feedback of Phase 1B, Chapter 1.1 (What is the Goal of OpenXR) will be drafted and presented to the working group by 5th June.

1D Draft Text of Chapter 2.1 (with code examples): 30th May – 12th June 2023

Based on approval and feedback of Phase 1B, Chapter 2.1 (Creating an XrInstance) will be drafted and presented to the working group. This will include code examples for each platform (work on these would start from 15th May, to be ready for when the text is drafted). The example code will build and run on each platform. The text and code will be presented to the working group by 5th June.

1E Design Implementation: 6th-14th June 2023

When the final design is chosen by the working group it will be integrated in the site and presented to the group on or before June 19th as a working prototype website. While the Working Group chooses the final design, work will be underway on implementing any feedback from Phases 1B-1D. Throughout Phase 1, we will continue work on the code examples for each platform-graphics API combination, in order that these shall be ready in advance of the text being written.

Phase 2: 15th June to September 14th 2023

2A Outlines of Chapters 2.2, 2.3: 30th May – 19th June

The remainder of Chapter 2, 2.2 (Creating an XrSession) and 2.3 (Polling the Event Loop) will be outlined and presented on or before June 26th. We suggest that Chapter 2.2 contain optional content, depending on the user’s choice of graphics API – the site would show/hide the appropriate code blocks depending on the user’s choice, rather than showing only one.

2B Outlines of Chapters 3.1 and 3.2: 3rd July

Chapters 3.1 (Creating SwapChains) and 3.2 (The Renderloop) will be outlined and presented by June 26th.

2C Draft Text of Chapters 1.2 and 1.3: 13th – 26th June

Chapters 1.2 (OpenXR Components Overview) and 1.3 (Setting up a Development Environment) will be drafted and presented by 26th June.

2D Outline of Chapter 4: 20th June – 3rd July

Chapter 4.1 (Using Spaces), 4.2 (Interaction System), 4.3 (Creating Actions and Action Sets), and 4.4 (Checking for Controllers) will be outlined and presented by June 19th.

2E Outline of Chapter 5: 27th June – 3rd July

Chapter 5.1 (Using Extensions and Layers), and 5.3 (Extension Examples) will be outlined and presented by 10th July (Chapter 5.2, Getting Debug Messages is suggested to be moved to Chapter 2 and will be presented in Phase 1.2.)

2.6 Draft Text of Chapters 2.2 and 2.3: 20th June – 10th July

The complete first draft of Chapter 2 (SETUP), will be presented by 10th July.

2G Draft Text of Chapter 3: 20th June – 24th July 2023

The complete first draft of Chapter 3 (GRAPHICS) will be presented by 17th July.

2H Draft Text of Chapter 4: 3rd – 24th July 2023

The complete first draft of Chapter 4 (ACTIONS) will be presented by 24th July.

2i Draft Text of Chapter 5: 4th – 31st July 2023

The complete first draft of Chapter 5 (EXTENSIONS) will be presented by 31st July. Thus, the first draft of the entire site will be completed by 31st July. The text will be written by Roderick Kennedy and Andrew Richards, who will also generate any images, diagrams etc. If appropriate, we will revert to Calland Creative for any additional design work on these. We will begin the process of seeking external testers: programmers of various levels of experience who will test the site in Phase 2.12.

2J 2nd Draft: 18th July – 14th August, 2023

In this phase, all text should be finalized based on the feedback of the working group. Diagrams and images should be polished to a final standard, and all changes presented to the working group on a weekly basis. The 2nd draft will be presented to the Working Group by 14th August.

2K Internal Testing: 1st August - 15th September, 2023

The site will be tested internally. We will test each supported combination of operating system, target system and graphics API by following the tutorial through and ensuring that there are no missing or unclear steps, and that a final, functional app is produced at all stages.

2L External testing: 15th September – 14th October, 2023

In this phase, the site will be tested externally. A cohort of programmers of various levels of experience will be asked to work through the tutorial, and their feedback will be used to finalize the website. The complete site will be presented to the working group by October 14th.

2M Final Feedback: 9th-31st October, 2023

At this point, the site should be essentially complete. However, any final modifications or corrections required by the working group will be executed, and the site presented to the group as soon as these are complete, in the month of October.