Chapters

Hide chapters

Apple Augmented Reality by Tutorials

First Edition · iOS 14 · Swift 5.1 · Xcode 12

Before You Begin

Section 0: 3 chapters
Show chapters Hide chapters

Section I: Reality Composer

Section 1: 5 chapters
Show chapters Hide chapters

5. Reality Converter & PBR Materials
Written by Chris Language

In the previous chapter, you learned how to convert virtual content into a usable USDZ file format with USD Python Tools. However, the conversion process is tedious and not user-friendly.

In early 2020, Apple introduced a new app specifically designed to make USDZ conversion as simple and user-friendly as possible: Reality Converter.

What is Reality Converter?

Reality Converter is a macOS-based app that makes it easy to convert, view and customize USDZ content. It offers a simple drag and drop interface with support for common 3D file formats like .obj, .gltf and .usd.

It allows you to customize material properties with your own textures and edit the USDZ metadata. With its WYSIWYG (What You See Is What You Get) design, you can easily preview your virtual content under various lighting conditions. Once you’re happy with the end result, it’s simple to export your model as a USDZ file.

Note: At the time of writing, Reality Converter is still in Beta and access to it requires an Apple Developer account. Future versions might install along with Xcode, just as Reality Composer does.

Adding a 3D model

Download Reality Converter from this link: https://apple.co/38LbwqM. Then install and start it.

The interface is quite simple, with a toolbar at the top and a preview of your 3D content below. If you haven’t loaded any content yet, you’ll see a prompt to drag and drop 3D content onto the app.

There’s a low-poly ball model for you to use in starter/Models/Ball.glb.

Bring the model into your project by going to Finder, then dragging and dropping Ball.glb on the app where it says Drop files here.

Reality Converter instantly recognizes the .glb file and imports the low-poly ball, a basic gray sphere, into the scene.

At the top-left of the toolbar, select the Models button to see which models you can use. Currently, only a Ball is available. For simplicity’s sake, you’ll work with this one model.

The ball isn’t very impressive at this point, but with the magic of Physically Based Rendering (PBR) materials, you’ll turn this gray sphere into a glorious-looking soccer ball.

PBR materials

Reality Composer and the USDZ file format use the PBR lighting model, which offers diffuse lighting with a realistic abstraction of physical lights and materials.

The material defines the basic lighting model along with various other properties like its color, specularity, reflectivity, shininess, roughness and even its opacity.

Materials define properties of the material itself by using a solid color or a texture.

Textures are flat, 2D images that wrap around the 3D model geometry using special texture coordinates, known as UV-coordinates.

The sphere in your project has already been UV-mapped. You just need to apply some textures to it.

In the top toolbar, select the Materials panel. The ball has no materials assigned to it, so Reality Converter has created a defaultConverterMaterial for you.

If your 3D model had more than one material assigned to it, you’d be able to select it here.

Now, you’re ready to add texture to the ball.

Note: Follow each of the following steps to add textures to the model. This will let you see the impact each individual texture has on the final model in detail.

Base Color map

The Base Color, or Diffuse, map gives the geometry a base color texture. Typically, this texture defines what the object is regardless of any lights and special effects.

In Finder inside starter/Materials, find ball_Diffuse.png. Drag and drop it into the Base Color channel.

The full-color map noticeably defines the gray sphere as a basic ball. Also, note that the rest of the ball’s surface is flat and not very shiny.

Normal map

The Normal map is a special kind of map that controls how light reflects off the surface. Technically, it defines how the surface combines with detailed surface normal data that bends reflected light off the surface. It ultimately makes the surface appear to have more detail in its geometry without needing a higher poly count.

Now, find ball_Normal.png in Finder inside starter/Textures. Drag and drop it into the Normal channel.

The ball no longer has a flat surface. You can now make a clear distinction between the black pentagon patches and the white hexagon patches. It also appears as if the geometry of the ball increased, which isn’t the case. That’s just the beauty of a Normal map at work.

Occlusion map

The Occlusion, or Ambient Occlusion, map defines the amount of ambient light that reaches certain parts of the geometry. When looking at real-world objects, you’ll notice that light typically struggles to reach tight spaces, like the lines of stitching between the ball’s patches.

In Finder inside starter/Textures, find ball_Occlusion.png. Drag and drop it into the Occlusion channel.

Use the grayscale image to darken the creases between the patches of the ball, making it look like they’re blocking out the ambient light. This makes the ball look much more realistic.

Metallic map

One of the key trademarks of PBR materials is the use of Metallic maps that define how metallic or dielectric — that is, non-metallic or plastic — a surface is.

In Finder inside starter/Textures, find ball_Metallic.png. Drag and drop it into the Metallic channel.

The grayscale image defines the fully-metallic parts as white, the fully-dielectric parts as black and everything else as in between. The white patches on the ball instantly turn metallic and the black patches turn somewhat dielectric.

Roughness map

PBR materials use Roughness maps to define how smooth or rough a surface is. They approximate the microscopic detail of real-world surfaces to produce a shiny or matte appearance.

In Finder inside starter/Textures, find ball_Roughness.png, then drag and drop it into the Roughness channel.

The grayscale image defines the fully-matte parts as white, the fully-smooth parts as black and everything else as in between. The previously-white patches turned into somewhat reflective silver patches and the black patches turned matte with a super shiny edge.

Emissive map

The Emissive map overrides all lighting and shading information to create a light-emitting effect.

In Finder inside starter/Textures, find ball_Emissive.png, then drag and drop it into the Emissive channel.

The full-color image defines white areas of the surface that will ignore all light and shadow information. The black areas define the non-lit areas of the surface.

Clearcoat map

The Clearcoat map simulates a thin reflective layer on top of a surface, like the transparent coating of a car’s paint job. It can also represent varnish, water or anything else that benefits from multiple layers.

In Finder inside starter/Textures, find ball_Clearcoat.png. Drag and drop it into the Clearcoat channel.

The grayscale image controls the clearcoat’s intensity. In this case, you give the entire ball a glossy coat.

Clearcoat Roughness map

The Clearcoat Roughness map works in conjunction with the Clearcoat map, defining how smooth or rough the clearcoat on top of the surface is.

In Finder inside starter/Textures, find ball_ClearcoatRoughness.png. Drag and drop it into the Clearcoat Roughness channel.

The grayscale image defines the rough-coated parts as white and the smooth-coated parts as black. In this case, the ball alternates between rough-coated stripes and smooth-coated stripes.

Opacity map

The Opacity map makes certain parts of the geometric surface appear either opaque or transparent.

In Finder inside starter/Textures, find ball_Opacity.png, then drag and drop it into the Opacity channel.

The grayscale image defines the completely-opaque parts as white and the completely-transparent parts as black. In this case, the top half of the ball fades from completely opaque to completely transparent.

Environment

Reality Converter has another cool feature that allows you to preview your virtual content under various lighting conditions.

To try it, select the Environment panel in the toolbar at the top. Enable the Show Environment checkbox.

Reality Converter comes with a great selection of environments from which to choose. They simulate various lighting conditions so you can test your virtual content in different environments.

Test a few now. Here’s what the ball looks like with each of the available environment maps:

The environment has a drastic effect on the look and feel of the ball. Overall, the ball performs well under all of the above lighting conditions. Great!

Exposure

Exposure controls the amount of light to which the virtual content is exposed. Reality Converter allows you to test that, too.

With the Environment panel still open, grab the Exposure dial and drag it to the left, then slowly drag it to the right.

This will simulate going from an extremely dark exposure to an extremely light exposure.

Again, the ball holds up under these extreme lighting conditions. This is a good way to test the emissive behavior of your virtual content. In this case, note how the star emblem doesn’t fade from dark to bright. Excellent!

Properties

Your model is almost done, but there’s one step left to do: You need to set the metadata for your virtual content before you share it with the world.

Select the Properties panel at the top of the toolbar.

Fill in the Copyright information. You can also set the Base Unit scale of your content.

Sharing

You’ve finished your model. It’s time to test it on your iPhone or iPad.

Select the Share button at the top of the toolbar, then select Airdrop.

Select your phone, and you’re done. It’s that simple!

Exporting USDZ

Now that you’ve added all of the textures and tested your 3D model under various lighting and real-life conditions, it’s time to export the USDZ file.

Select File ▸ Export, then provide a filename and destination for your USDZ file. Select Save to export the USDZ file.

Fantastic! You’ve just converted your first 3D model using Reality Converter.

Note: Find the final exported version of the ball under final/Ball.usdz.

Key points

You’ve reached the end of the chapter and you now know how to convert your content using Reality Converter.

Glance back at what you’ve covered:

  • Reality Converter: You now have a good idea of what Reality Converter is and what it can do.

  • PBR Materials: As an added bonus, you’ve learned about Physically Based Rendering materials and how various types of texture construct a complex but realistic-looking PBR material.

  • Environment: Testing your virtual content under various lighting conditions is a breeze.

  • Exposure: Testing your virtual content with different lighting exposures is just as easy.

  • Sharing and Exporting: There’s a dedicated Share button if you want to quickly test your content on a device. Exporting the USDZ file is as simple as saving your project.

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.
© 2026 Kodeco Inc.