Camera Product Visualization

This tutorial will cover how to light, shade, and render a CAD model of a DSLR camera. It covers various styles including a product shot and illustrative styles that could be used in a product brochure. These styles include wireframe, facing_ratio (x-ray), and a toon edge. We will also cover how the utility shader can be used to create render passes for use within a compositing package and can also be useful for debugging scenes.

You can download a DSLR camera model here. Download the materials used in this tutorial here.

Importing the CAD Data

Drag and drop the CAD files into the 3ds Max viewport to import them all at once

Lighting

The scene is simply lit using a studio HDRI connected to the color of a skydome_light.

Choose a bitmap (HDRI) for the Texture of the skydome_light

To test the lighting, we can quickly assign a standard_surface shader to the camera.

Tip:



Feature Overrides

This group of switches allows you to disable a number of important rendering features. By selectively disabling some features, you can get a feel for where the renderer is spending most of the time, which helps optimizing scenes. Lighting or look-dev could be sped up by enabling ignore_textures or ignore_shaders for example. This is also useful for isolating errors and artifacts when debugging. Note that not all of these options are interactive - some of them may require the entire scene to be refreshed/exported.

Render Setup: Arnold → Diagnostics → Feature Overrides

Download a studio lighting scene here.

Background

Next, we need to change the background environment color to white.

Background: Color: Black (default) Background: Color: white

Realistic Shading

We want to create a plastic shader that can be copied and used for the main body, the leather style grip, and lens. We will also create an anisotropic metal shader for the adapter ring and glass shaders for the lens and flash.

Body (boitier2.1)

Create a standand_surface shader and assign it to the main body and lens of the camera. Change the following parameters:

Leather Syle Bump (boitier2.1 - Body.18)

We can use the cell_noise shader to create a convincing leather style texture to the camera grip shader.

without bump cell_noise -> bump3d

cell_noise → bump3d → standard_surface

Camera Lens Adapter Ring

We will create an anisotropic metal material that could be used for an adapter ring of a camera.

To create the anisotropic metal effect, we will use ramp_rgbspecular_anisotropy. We will project it using a uv_projection shader to avoid any UV issues from the CAD geometry.

You may notice faceting appears in highlights when using specular_anisotropy. It is possible to remove the faceted appearance by enabling smooth subdivision tangents (via Arnold subdiv_smooth_derivs parameter). Take into account this requires a subdivision iteration of at least one in the polymesh to work.

without anisotropy ramp_RGB -> anisotropy
Tip:

anisotropic_rotation can be used to change the location of the specular_anisotropy highlight.

ramp_rgbuv_projectionstandard_surface

Glass Lens

thin_film.thickness: 0 (default) thin_film.thickness: 454

Stylized Shading

Now we will look at a variety of shading methods to create stylized renderings such as wireframe, orthographic line-art (toon), x-ray (facing_ratio) and cut away renders (clip_geo).

wireframe -> opacity toon facing_ratio -> opacity utility -> toon_edge clip_geo

Wireframe shader

wireframestandard_surface.opacity

Toon shader

Important:

  • The toon shader does not currently work with GPU. This is planned to be fixed in a future release.
  • To view the toon edge, you must change the filter type (sampling settings) to contour. Note that increasing the contour_filter.width (sampling settings) value will increase render times.

utilitytoon.edge_color → Map to Material

Facing Ratio shader

We can create an x-ray shading effect by using the facing_ratio shader.

facing_ratio -> color_correct -> standard_surface

Clip Geo shader

We can use the clip_geo shader to create a cut-away shading effect in the camera model.

Important:

clip_geo does not currently work with GPU. This is planned to be fixed in a future release.

AOVs

AOVs are Arnold's method of rendering render passes. They provide a way to render any arbitrary shading network component into different images. For example, an artist might find it convenient to separate direct and indirect lighting contributions and later recombine them during compositing. Arnold provides built-in AOVs for outputting depth, position, and motion vectors.

Composing the Beauty AOV

The RGBA beauty AOV can be split into smaller AOVs where each contains part of the lighting. In compositing, these AOVs can then be individually modified and added together to get the full beauty AOV.

More AOVs give more control in compositing, but also extra work to handle, and they take up more memory and disk space, especially combined with light groups.

Some example sets of additive AOVs for the full beauty AOV are:

Simply adding together such AOVs is all that is needed for the beauty AOV. The albedo AOVs are not needed to reconstruct the beauty AOV but may be used for example to get just the lighting without the surface texture, by dividing diffuse by diffuse_albedo, or for denoising just the lighting while keeping the texture detail intact.

RGBA AOV background AOV diffuse AOV
specular AOV specular_indirect AOV transmission AOV

Arbitrary Output Variables (AOVs) Manager. Create <diffuse, specular, specular_indirect, transmission, and background AOVs.

Cryptomatte

Crytomatte AOVs can also be used to create ID mattes for compositing later on. Cryptomatte creates ID mattes automatically with support for motion blur, transparency, and depth of field. Names, object namespaces, and material names can be used to organize ID mattes in the scene.

crypto_asset crypto_object crypto_material

Compositing in Photoshop

Important:

To create a correct rebuild of the RGBA beauty AOV you must use add/plus operations in the composite. If you use screen or multiply you will get an incorrect result.

AOVs opened in Photoshop and layered together using Linear Dodge (Add)

Utility Color Modes

The utility shader is a general 'all-purpose' utility node shader that can also be used to create passes for use within a compositing package. It can also be useful for debugging scenes. For example, the geometric_normal position could be used to re-light the model in post-production.

The various color modes used by the utility shader

Final Render Settings

For final frame rendering, we will need to increase some sample settings.

Remember to check your AOVs if you are unsure where the noise is coming from.

skydome_light.samples: 4 skydome_light.samples: 1 (default)
specular_samples: 2 (default). Specular noise visible on top of lens. specular_samples: 4. Noise has been improved.

That's it. You have reached the end of the tutorial. Well done!

We encourage you to spend some more time with the MAXtoA user guide where you can find other tutorials such as this.