Camera Product Visualization - Arnold for Cinema4d

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.
A DSLR camera model can be downloaded here.
Importing the CAD Data
- Start off by downloading the CAD model (link above).
- You should see the following parts in the .zip file. Unzip the data to your hard disk.

- Select the files and drag them from your file explorer onto the C4D viewport. C4D will then convert the CAD geometry for you. You should see the model appear in your scene.
- Rotate and position the camera so that it appears on the grid as in the image below.

The CAD files imported in C4D
Lighting
The scene is simply lit using a studio HDRI connected to the Skydome Light Color
- Go to Extensions -> C4DtoA -> Arnold Light -> Skydome Light.
- Reduce the camera visibility of the skydome_light to 0. We will add a separate white background later.
- Connect a suitable HDRI to the skydome_light (click the small arrow button next to the color and select texture). An example of a studio HDRI that could be used with this scene can be downloaded here.

Choose a bitmap (HDRI) for the the Skydome Light Color
To test the lighting, we can quickly apply Standard Surface shaders to the camera.
- Select the materials and go to go to Extensions -> C4DtoA -> Utilities -> Material -> Replace the Selected C4D Material with an Arnold Material
- Change their Base Color to black.
- Render the scene using the default Arnold sample settings. These settings are fine for IPR test rendering the scene. Do not worry about any noise in the scene at the moment. We will change the sample settings once we are happy with the lighting and shading at the end of production.

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 Settings -> Diagnostics -> Feature Overrides
Debug Shading
This button
enables or disables debug shading mode. The active debug shading mode can be defined in the Render > Debug shading menu or from the context menu of the button (right mouse button).

Debug shading : UV
A studio lighting scene can be downloaded here.
Background
Next, we need to change the background environment color to white.
- Go to Render Settings -> Environment* -> *Background and create a Flat shader.
- Change the Color to white.

Environment -> Background -> rayswitch camera: 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:
- Base Color: black.
- Specular Roughness: 0.467.
- Specular IOR: 1.55 (plastic).
- Coat Weight: 0.1
- Coat Roughness: 0.3
- Coat IOR: 1.55 (plastic).

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.
- Duplicate the plastic shader and assign it to the leather grip object.
- Connect a Bump3d to the Normal parameter of the Standard Surface.
- Connect a Cell Noise to the Bump Map parameter of the Bump3d. Using a Bump3d as opposed to Bump2d means we do not have to be concerned about the UVs of the model as it will render it in 3d object space.
- Change the Pattern of the Cell Noise to Alligator. This will give the leather style look.
- Increase the number of Octaves to 8.
- You may need to increase the Scale depending on the size of your camera model. In this case, a value of 6 was used.
- Reduce the Density to around 0.5.
![]() |
![]() |
| 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.
- Assign another Standard Surface shader. Assign it to the metal adapter ring on the camera body and rename it to 'Metal Ring'.
- Change the Base Color to a mid-gray color.
- Increase the Metalness to 1.
- Increase the Specular Roughness to around 0.7. Lower amounts will appear shinier.
To create the anisotropic metal effect, we will use Ramp RGB -> Specular Anisotropy. We will project it using a UV Projection shader to avoid any UV issues from the CAD geometry.
- Create a Ramp RGB shader and change the Type to Radial. Insert around five black and four white knots. Ensure that their Interpolation is set to Catmull-rom (smooth).
- Connect it to a UV Projection shader. This is to planar project the Ramp RGB onto the metal ring.
- Connect the UV Projection to the Specular Anisotropy of the Standard Surface shader.
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.
<sub><strong><div class="gallery conf-macro output-block" data-hasbody="false" data-macro-name="gallery"><table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td class="gallery-image" style="width: 300px"><img border="0" class="confluence-embedded-image" data-image-src="https://areadownloads.autodesk.com/wdm/arnold/c4dtoa/anisotropic_0.jpg?version=1&modificationDate=1587549970000&api=v2" data-linked-resource-container-id="118621410" data-linked-resource-default-alias="anisotropic_0.jpg" data-linked-resource-id="118621505" height="300" src="../../../images/ci-Camera-Product-Visualization-anisotropic-0-15.jpg" width="300"></td><td class="gallery-image" style="width: 300px"><img border="0" class="confluence-embedded-image" data-image-src="https://areadownloads.autodesk.com/wdm/arnold/c4dtoa/anisotropic_1.jpg?version=1&modificationDate=1587549978000&api=v2" data-linked-resource-container-id="118621410" data-linked-resource-default-alias="anisotropic_1.jpg" data-linked-resource-id="118621504" height="300" src="../../../images/ci-Camera-Product-Visualization-anisotropic-1-16.jpg" width="300"></td></tr><tr><td style="width: 300px"><div class="gallery-caption">Without anisotropy</div></td><td style="width: 300px"><div class="gallery-caption">ramp_RGB -> anisotropy</div></td></tr></tbody></table></div></sub></strong>Anisotropic Rotation can be used to change the location of the Specular Anisotropy highlight.

Ramp RGB -> UV Projection -> Standard Surface
Glass Lens
- To reveal the lens first hide the lens cap (cache.1, cache2.1 and Symmetry of cache2.1.1 in the Scene Explorer window).
- Assign another Standard Surface shader to the glass lens geometry (Body.8) and call it 'Lens Glass'.
- Reduce the Specular Roughness to 0.
- Change the Specular IOR to 1.5 (glass).
- Increase the Transmission to 1.
- Under Thin Film, increase the Thickness to around 450 and the Thin Film IOR to around 1.28.
![]() | ![]() |
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
- To create a wireframe/semi-shaded look we can use the Wireframe shader connected to the Opacity of the black plastic shader we created earlier.
- Change the Edge Type to Polygons. Adust the Line Width to a low amount. In this case, a value of 0.02 was used.

Wireframe -> Opacity of Standard Surface
Toon shader
Assign a Toon shader to all of the camera geometry. Change the following parameters:
Reduce the Angle Threshold to around 10. This will give more detailed edges around the geometry.
Reduce the Base Weight to 0. We are only going to use Emission.
Ensure that Specular Weight is 0.
Increase the Emission Weight to 1.
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.
Another variation would be to connect a Utility (Color Mode: Geometric Normal (ng)) shader to the Edge Color of the Toon shader (Emission Weight: 0).

Utility -> Edge Color of Toon
Facing Ratio shader
We can create an x-ray shading effect by using the Facing Ratio shader.
- Assign a Standard Surface shader and reduce all of the weights to 0.
- Create a Facing Ratio shader and connect it to the Opacity of the Standard Surface shader.
- Reduce the Bias to around 0.1.
- To further refine the effect, connect a Color Correct shader in-between the Facing Ratio and the Standand Surface 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.
- Create a Box (geometry to be used for clipping and position it where you want to clip the geometry (in this case it is cutting into the lens).
- Assign a Clip Geo shader to the box.
Clip Geo does not currently work with GPU. This is planned to be fixed in a future release.n
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:
- Direct, Indirect, Emission, Background.
- Diffuse, Specular, Coat, Transmission, SSS, Volume, Emission, Background.
- Diffuse Direct, Diffuse Indirect, Specular Direct, Specular Indirect, Coat, Transmission, SSS, Volume, Emission, Background.
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 |
- To access AOVs go to the AOVs tab in the Arnold Render Settings window.
- Create a new Arnold driver so that we can save the images to disk.

Arbitrary Output Variables (AOVs) Manager. Create Diffuse, Specular, Specular Indirect, Transmission, and Background AOVs.
- Select the new Arnold driver and under the Main tab attributes) choose the Driver: driver_png. The default EXR is normally recommended, however, for this example we will use PNG as we will simply be rebuilding the RGBA beauty in Photoshop.
- Choose the File path where you want to save the images on disk.
- Render to Picture Viewer. The AOVs should now be saved to the location that you chose.

New Arnold driver with AOVs listed, driven (Png) and the File path
Cryptomatte
Cryptomatte 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
- Open the AOVs that we saved to disk in Photoshop.
- Drag and drop the layers from each PNG onto the Background image layer as indicated in the image below.
- Change the blending layer mode to Linear Dodge (Add) for each layer. You should see the final beauty layer.
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.
- Select the Skydome Light and increase the number of samples to 3 or 4. This should clean up a lot of the noise in the shadows.
![]() | ![]() |
Skydome Light Samples: 4 | Skydome Light Samples: 1 (default) |
- Increase the number of Camera (AA) to around 5. This will improve the general image quality.
- Even, though we have increased the Camera (AA) samples there is still some noise on the lens (visible in the specular AOV). We can reduce this further by increasing the number of Specular samples to 4. Note that your render times will be longer when increasing this value.
![]() | ![]() |
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!
























