How to do Physically Based Rendering with Apple’s new USDZ file format

A really cool feature of USDZ, is the way the format uses physically based rendering (PBR) to achieve realistic textures – that literally “pop out” in front of you. However, for someone new to PBR its pretty tricky to grasp because there are several different PBR maps which work in unison to create the overall result.



Let me explain.

Creating Metallic Materials

To create metallic materials like gold, we need to combine at least  3 primary PBR maps

1. color_map

2. metallic_map

3. roughness_map

It is only when you use these 3 primary PBR maps in unison you create the kind of eye popping USDZ file below.


Let’s examine this USDZ file and see how the PBR maps are combined in unison

The USDZ model above comprises of a large matrix of balls, 441 to be exact & each with a different PBR combined setting. The great thing about this USDZ model is its designed so you can work out exactly what combination of PBR settings went into making the final combination of colour & metallic – roughness level you see!


The 3 red lines above show you the different pieces of information that combine in unison to give you the final appearance of the ball.

To make the USDZ Model above, you actually need 3 different versions of model (metallic, roughness & color).  We build the metallic & roughness versions of the models by using the shaded colours aligned with each of the columns for metallic, and rows for the roughness.

After creating the 3 different versions of the model, we can then generate each of the 3 different uv_maps representing color, metallic, roughness (see below).







The final step is combining the 3 different UV maps above into our OBJ model.  This part can be done using the following command line on mac computer with the latest xcode installed:

xcrun usdz_converter silver_metallic.obj silver_metallic.usdz -color_map color_map.png -metallic_map metallic_map.png -roughness_map roughness_map.png

Getting other Metals like Copper or Silver in One step

Now, by merely changing the RGB base colour in our UV color_map above to copper colour below in our graphics editor (say Gimp or photoshop).


we can easily create a copper metal appearance for our balls by repeating the command line again with the new copper metal version for our color_map

xcrun usdz_converter silver_metallic.obj copper_metallic.usdz -color_map copper_color_map.png -metallic_map metallic_map.png -roughness_map roughness_map.png


Normal, Ambient Occlusion, Emissive Maps

There are other PBR maps you can use to enhance the realism of your 3D assets.

  1.  Normal Maps – add depth for bumpy surfaces where it is not possible or convenient to add the detail to the mesh itself.
  2.  Ambient Occlusion Maps – add shadowing on the object itself.
  3. Emissive Maps – add light emittance from the object itself, say like a TV screen would emit light.

I will post more in depth articles on these other PBR maps very soon. So don’t forget to check back again.

USDZ  Metallic – Roughness Selectors

Below are the USDZ metallic – roughness selectors for  gold, copper & silver metals (with more to come including non-metallic variants  🙂 ). Note: Each USDZ file is a large 9.4 MB in size… if you do not have fast connection it may take about 40 seconds before preview opens for you.

Lastly, these USDZ are copyright, happy for you to use and share, however, if you post it on another site… please add a URL back to this page. Thank you 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *