Unity 2019.3 Deployed in the Lunarium project

I’m currently working on Unity 2019.3 with a view to going to Unity 2019.4 LTS when launched this spring. I hope to use the new Unity LTS on my next VR project, an illustrated interactive adventure game which will be hand illustrated and painted (think terry Pratchett meets “Last of  the summer wine”), with stories and characters based on the landscape, buildings, characters and funny stories from the village where I live… no real life people will be depicted lol.

Although my current Unity version is okay for preproduction work it is unstable for longer term projects. This okay as my current project is, in many ways, experimental as I am wrestling with the engine and learning how packages, mechanics and design are dependant on each other.

I am mainly interested in VR and mobile development in my current project so I am identifying new unity features and testing them out in my project.

AR and VR

AR Foundationthe framework that enables you to build your application once and deploy it across ARKit- and ARCore-enabled devices, now extends to Magic Leap and HoloLens devices. 
The XR Interaction Toolkit enables you to add interactivity to your AR and VR experiences, across our supported platforms, without having to code the interactions from scratch. It provides a set of monobehaviours/scripts that implement common object and UI interaction scenarios for both AR and VR devices.
Ensure your AR and VR experiences reach the widest possible audience with our modularized XR plugin architecture workflow. 
To achieve highly realistic graphics and lighting effects that let you push the boundaries of high-fidelity VR, check out HDRP for VR

XR Interaction Toolkit 

I am interested in how this will work for Oculus Go as I currently have user tester feedback that suggests that either teleportation or 90 degree turns might work better than looking at a spot in the scene and swiping the control pad. 




Single pass Instancing 


Single Pass Stereo and Stereo Instancing are rendering techniques available for Oculus devices running on Android and PC, respectively.

Single Pass Stereo rendering (also known as Multiview rendering on OpenGL/Vulkan) is a rendering feature for Oculus devices running on Android. It is available with the Unity version 5.6.

In a typical OpenGL stereo rendering, each eye buffer must be rendered in sequence, doubling application and driver overhead. With Single Pass Stereo rendering, objects are rendered once to the left eye buffer, then duplicated to the right buffer automatically with appropriate modifications for vertex position and view-dependent variables such as reflection. It primarily reduces CPU usage, and the GPU performance is unchanged largely. If your application is CPU-bound or draw call bound, we strongly recommend using Single Pass Stereo rendering to improve performance.

Pre-requisites

  • OpenGL ES 3 or Vulkan

Setting Single Pass Stereo Rendering

Depending upon the Unity version that you are using, the navigation for setting Stereo Rendering changes.
  1. In the menu, go to Edit > Project Settings.
  2. Depending upon the Unity version that you are using, follow the navigation steps:
    For Unity versions that support built-in XR (Unity versions 2019.3 or earlier):
    1. From the Project Settings window, select Player, and then select the Android tab to open Android settings.
    2. Expand XR Settings.
    3. Ensure the Virtual Reality Supported check box is selected.
    4. In Stereo Rendering Mode, select Single Pass to enable Single Pass Stereo rendering.
    For Unity versions that support XR Plugin framework (Unity versions 2019.3 and later):
    1. From the Project Settings window, expand XR Plugin Management, and then select Oculus.
      Note: If you cannot view Oculus under XR Plugin Management, it means that you’ve not installed the Oculus XR plugin. Install the Oculus XR plugin to enable the XR support for your app.
    2. Select the Android tab to open Android settings.
    3. In Stereo Rendering Mode, select Multiview to enable Single Pass Stereo rendering.
Note: Some Unity versions lists Single Pass as Multiview.

Additional technical documentation

To understand Single Pass Stereo rendering in detail, go to Single Pass Stereo Rendering and Single Pass Stereo Rendering for Android topics in Unity’s documentation.
For additional technical information about the underlying framework that makes Single Pass Stereo rendering possible in Oculus Integration for Unity, go to the Multiview topic.



Mobile

The Device Simulator (Preview) allows you to simulate how your content will look, as well as preview the behaviors and some physical characteristics, on a broad range of devices. 
With Unity as a Library, you can now insert features powered by Unity directly into your native mobile applications. These features include, but aren’t limited to, 3D or 2D real-time rendering functions for augmented reality, 2D mini-games or 3D models.
On-demand rendering lets you control the rendering loop independently from the rest of our subsystems. This means you have more control to lower power consumption and prevent thermal CPU throttling.
Finally, we have moved the System requirements for Unity 2019.3 to the Unity Manual (they were formerly here). We have also added the details for using the Unity Editor and Player on all supported platforms so you can clearly see what’s required and supported. Note that the minimum OS-supported versions are now 4.4 (API 19) for Android and 10 for iOS, and that OpenGL ES is deprecated on iOS.