Welcome. Good afternoon or good morning, depending on your time zone. We start at 7 p.m. our time — a good time to talk about USD. My name is Gerhard Schröder and I’m here together with Thomas Kumlehn from the south of Germany. I’m from the northern part of Germany. And we are both a little bit crazy about USD. So I think it’s time to start to talk a little bit more about this technology system, about this open source complete ecosystem.
What is USD?
So USD is an open source standard for 3D information — and the same for web information. For websites and content on your mobile phone, especially on an iPhone.
What’s the difference to GLTF, Thomas?
So there are many commonalities. Both have in common: they are made to represent digital assets. The focus of GLTF is to run directly in the browser — only in the browser. And therefore it’s made very compact to have small file sizes. It’s already a kind of pre-processed to directly load into WebGL, the current standard to present 3D graphics in the browser. So it’s very browser-focused.
And it has similar features to present something on the screen. Google decided to make a subset of all these features also available to present in augmented reality. Then the data is handed over to a native application running on Android phones — if it’s installed already.
The magic point at this topic is that GLTF uses the browser as a basic layer for all further information. Currently it’s using the browser to present a 3D view, an interactive 3D view. Some phones can already use WebXR to also do the same in the browser. But USD can do the same also — but not via browser.
Die große Unterschiede ist: USD war nicht immer geplant in einem WebGL-Kontext. Es war immer geplant, um in einer nativen Anwendung zu laufen.
You can start an AR session from within a website — that’s very conveniently done by Apple. But there’s a strict line: this is the browser, then AR takes over, then the browser takes it back. There’s a strict line because of strategy differences — huge strategy differences.
USD vs. Unity and Unreal
Most immersive or 3D applications, especially games, nowadays are produced with so-called game engines. The most famous of them are Unity and Unreal Engine. The interesting thing is the result of “game cooking” — the result is that you have the game with binary code with the game engine included, with all the game assets optimized for a specific platform. And all of this is done for dozens of different platforms.
So the editor will export, let’s say, 5 or 10 different apps, depending on needs. Ja, und das Editor-Step ist immer needed und kann nur von einem Skilled-Personal, von Software-Engineern und insbesondere Game Designers und Game-Developers gemacht werden.
Und USD ist anders. Wie?
USD ist nicht nur ein File-Format. In fact, in the first place, it’s a software framework — high-performance C++ framework to handle huge 3D data, originally for the movie industry, for animated feature films. Because its founder is Pixar. Für 25 Jahre entwickelt Pixar in-house technologies und several years ago they decided to Open-Source their efforts. And since then it’s called OpenUSD, because it’s better to find on Google.
Die große Unterschiede ist, dass das USD-Dateiformat stark verwoben ist mit der High-Performance-Grafik-Framework. So much of those efforts that the game editors of Unity and Unreal — much of this effort is already taken care of by this graphics engine that was originally made for movie production. So the file format directly loads very effectively and the action can start right away.
So it’s kind of a game engine that can digest USD directly without cooking up optimized structures like the traditional game engines. That’s the big difference.
And Apple has a system that is using USD and doing a real-time presentation for in- or augmented reality with user interactions and even physics simulations of the simple kind.
From file to USD: the Reality Converter
In case I have a 3D file — how can I transfer this 3D object to a USD file? That’s the next part.
Ja, normal 3D Assets sind hand-made oder modelled in a so-called DCC — Digital Content Creation Tool. In our example, we are using the free and open source software Blender.
This can be exported from this scene in two different file formats. The easiest one would be OBJ. We can also export to GLTF 2.0. And there is a very interesting file format called FBX — that’s a proprietary file format from Autodesk.
So we export from Blender. Then I can load this OBJ into my instance of the so-called Reality Converter. That’s an Apple software. How much do I have to pay for it? Zero dollars.
For the Reality Converter, you don’t have to be a developer. Thank you, Apple.
So we have a 3D object. We can add extra textures that would replace a single solid color that came from the DCC. Here this is a very dark gray.
I could replace several PBR channels. PBR stands for Physical Based Rendering.
The base color, the diffuse color — that’s the so-called albedo. That’s the color that will be affected by the environment light of your surrounding. Then there’s an emission color — das ist etwas Self-illuminating, nicht affected by die Real-Color.
Then there are black and white channels for other things. And XYZ channels for normal maps. Normal maps are used to simulate very tiny structures on a normally plain surface to simulate fine details without having thousands of extra vertices.
Then we have the so-called ambient occlusion — der Kontaktschatten. And then we have opacity. If we want something to be partly transparent, we can also have a texture map. And this is clear coat. Most products that are made by the industry have a small layer of clear coat. And this is roughness for the clear coat. Roughness is used to decide: if the roughness value is very small, it will be very shiny. If it’s very high, it will look very dull.
USD unit specification
OSD was one of the first file formats to introduce an extra parameter that helps to specify how big is this thing — what is the graphical unit in meters, centimeters, or imperial values. The default value would be in meters, and a centimeter would be 0.01. Every asset you create with this tool can have an extra metadata field where you can specify copyright information or the origin of your data.
Single-sided geometry
This is single-sided geometry. An example: this face is seen from this side, but not from this side. See, there’s a hole. That’s very efficient because only one side has to be processed. But it can also be tricky to handle.
Therefore I would like to show a special feature. If I would go here — the red color says: the face you selected is looking away from you, not towards you. I won’t see it in the USD representation. That’s why I use this special mode to find out what faces are facing toward me and which are not. So I would like to flip the normal again to fix it.
Why not Reality Composer?
There is one further big tool we today don’t want to talk about: Reality Composer. Why? Two reasons. One reason: it’s very powerful, so it can take one or two live sessions to talk about it. And the other reason: it might get an update in two weeks time, so it makes no sense to talk about this tool today. The Reality Composer also gets several updates. The UI has not changed. And all the bugs — so the bugs also have not changed. That’s the reason.
Outlook
To our viewers and the persons who maybe will later hear this podcast — we will come back to all these topics in a few weeks. Next stop is the 5th of June. And see each other on the 6th of June — what happens after the WWDC keynote. Thank you and bye-bye.