Oculus Quest Development with Houdini Unity and USD

Oculus Quest Development with Houdini, Unity and USD

Part One

This is the first in a series of articles where I look at Oculus Quest Development with Houdini, Unity, and USD. USD is Pixar’s comprehensive scene format, Universal Scene Description. I first saw the power of USD a few years ago during a Pixar demonstration that showed its power. For example, it was able to render scenes with 20+ million polygons in real-time. Now that Houdini 18 has Solaris, which is built on USD, it is now possible to easily read and write USD files.

Oculus Quest Development with Unity

First, let’s look at the Oculus Integration package in Unity. We want to make sure that we have the correct settings. In my examples, I am working in Unity 2019.3.f6. First, I always switch the platform to Android when creating a new project for the Quest. Next, I set the texture compression to ASTC. This can take time depending on how many textures there are in the project.

Oculus Quest Player Settings in Unity


Next, we want to make sure the player settings are correct. With the player settings open we want to make sure of the following:

  • Remove the Vulkan API from the Graphic APIs
  • Color Space is set to Linear
  • That you have the Oculus SDK installed in the XR settings.

Stereo Rendering Mode – I have Single Pass selected. I have this based on that Multi-Pass has been broken so far. Oculus released a new version February 6th but I have not yet tested Multi-View

Installing USD in Unity

Installing Universal scene description is easy. First, go to window / package manager. This will open Unity’s Package Manager. Under Advanced, we need to make sure that show preview packages are checked. Lastly, now that we have preview packages selected, all we have to do is install USD. Find USD in the list and click install.

Lastly, if you don’t want to use the Package Manager you can always pull from Unity’s USD Git Hub

Once USD has been installed, a new USD menu will appear. This is where we can import and export USD files.  Unity gives us the option to import a USD as a game object, a prefab,or a timeline clip. Furthemore, Unity gives us the option to export USDZ,the zipped format for USD.

USD in Houdini with Solaris

Other Houdini Tutorials:

Introduction to Houdini Digital Assets

Introduction to  Houdini Digital Assets. In this tutorial, we will examine the fundamentals of creating a simple H.D.A. As an example, we will create a tool that will make procedural I-beams of any size. In addition to being able to adjust the shape and size of the i-beam, the tool will automatically UV our object. Lastly, once the tool is finished it can be imported into Unity or Unreal Engine. Therefore we can use our tool in any application that takes an H.D.A. As a result, we will be able to create any i-beam of any size and use them however we want. In conclusion, Houdini Digital Assets are a great way to create tools for use in other applications. This lets us build modular reusable assets. This is a very quick introduction to show how easy it is to make a useful asset in Houdini. This will show you the basics of:

  • Linking parameters
  • Auto UV Maps
  • How to Build a simple interface in Houdini
  • How to correctly name and save H.D.A’s

Once you have done this tutorial one should have a solid basic understanding of Houdini Digital Assets and can explore further tutorials to increase your skills.
This is as a follow up to a lecture for a class I teach in Houdini. This is so the students can re-cap the in-class lecture. I apologize for any lack of polish. Hopefully, there will be some good information there.

You can download a free version of Houdini here.

Other Houdini Tutorials:

Houdini Height-Fields for Terrains

Houdini Height-Fields for Terrains

With Houdini height-fields for terrains, we cover the basics of creating terrains in Houdini. Houdini height-fields are 2-dimensional volumes. In addition, they are also native in Unity and Unreal Engine as terrain objects. Above all, creating terrains in Houdini artist-friendly. Moreover, we can create complex and realistic terrains.  Most importantly though Houdini allows us to use this work in other applications. Secondly, as a Houdini Digital Asset, we can use it within Unity, Unreal, Maya, and 3DS Max. Most Importantly, we will learn how to manipulate Houdin terrains in an art directable way. We will look at ways of masking, applying erosion, and adding in variation.  These masks can be used to drive foliage and textures. In conclusion, this makes creating terrains for use in real-time applications a very powerful feature. In further lessons, we will examine how we can use the Terrain Scatter tools

At the conclusion of Houdini height-fields for terrains one should have:

  • A solid understanding of heightfield workflows
  • How to create complex masks 
  • What is the Erode tool and how to use it.
  • How to interact with geometry

This is as a follow up to a lecture for a class I teach in Houdini so the students can re-cap the in-class lecture. I apologize for any lack of polish. Hopefully there will be some good information there.

You can download a free version of Houdin here

Other Houdini Tutorials: