RENDER A HEAVY CAD CATERPILLAR MODEL
Prepare a heavy CAD model
at the end of 2017, New Communication, a creative and marketing agency from Kiel in Germany, was asked to create detailed images of the largest Caterpillar generator set – the 16CM43 – for a press release.
The Caterpillar 16CM43 is a heavy-fuel off-shore generator set that is used for power generation. The brief set by the client was to use the data provided by them to produce this image, so that in the future, cut-out images or detail shots of the generator would be possible.
From the start it was already clear that this would not be an easy task, because the data provided by Caterpillar would be of the highest quality. So before we could even begin, we had to think about a smart and efficient software/hardware production pipeline to fit everything into Octanerender, our rendering solution of choice.
Our software pipeline started with Rhinoceros 3D, which is mostly used by industrial designers but is also great for converting heavy CAD files. It exports a very nice mesh quality and works in a 64-bit environment.
We used a brand-new Dell workstation with 128MB of RAM, provided by the client. It had a single 1080ti and a small graphics card for video output.
In this tutorial I will show you how I handled the immense amount of data provided and crunched it down for rendering.
01 General preparation
Before we began we talked to the client and made it clear that a STEP file would be the best file format for us. This way we had full control over exporting into the desired file format: FBX. When you can, it’s better to do the export yourself rather than the client.
02 reference images
The client provided us with many reference images from real-world generator sets. These photos were taken by Caterpillar engineers. This was great because self-taken photos are mostly better than anything you will find on a Google search. They are high-res and give you a good reference on even the smallest parts.
03 rhinoceros 3D/ DATA conversion
It took some time to open up the STEP file, but Rhino did so without problems. Even if it’s preferable to navigate and fly around in the viewport, I suggest not to do it, as it can cause freezing. So just open the file, leave it as it is and select all (Cmd+a), go to the File menu and export selected. You can check the Layer tab and if there are layers, you may export single layers. In my case there weren't, so I had to export everything in one file.
04 DATA prep in cinema 4D: considerations
Rhino exported in ten hours which was retraceable by the time the file was written on the system. So we had our nicely exported FBX file, which had grown to a size of 3.75 gigabytes. Luckily it was under 4 gigs, because that is the max size for FBX at the moment.
After a few minutes, checking RAM consumption as well, Cinema 4D opened the file. So I first saved a *.C4D file out of it before doing anything else. After saving the C4D I recognised that the Cinema 4D file was growing to an immense 8 gigs. The first thing you can do is delete all UV tags to get the file almost 50 per cent smaller.
So how could I prep the file if I was not able to see anything? I decided to go for a simple but effective way of cutting out a specific amount of objects and pasting them into a new blank scene. This worked very well as Rhino exported everything orderly so that objects in a row were parts of a single general part.
The main challenge was to figure out how many objects to cut out. I tried different object counts, and further in the project I was lucky to hit almost the correct number of objects that belonged together. Objects that did not belong to one part were separated as null objects.
06 cinema 4D helpers
So after figuring out how to merge down this many objects I had to think a bit further. Keeping
check your specs Be sure to have enough RAM in your machine when you work with heavy CAD files.
in mind that we wanted to use Octane Render, knowing the VRAM of the graphics card is the crux of the matter. So I had to use a good bunch of Cinema 4D's Cloning System and other small helpers that crunch the file down to a size that fits into the VRAM. There are many options to help you with this, like arrays, instances, xrefs and of course Mograph Clones.
07 work with Xrefs
For the heaviest parts (referring to the polygon count of the object) I decided to use the xref system of Cinema 4D. Single objects were saved as new C4D files and then could be loaded as an xref into the main scene. Your scene performs quite a bit faster when you have heavy geometry excluded into an xref file. You can work on it in the excluded file and hit refresh on the xref to update your object.
08 use The r19 polygon reduction Feature
A freshly new feature in R19 was the polygon reducer, which came in very handy! This works even with complex CAD geometry. Simply use it like a modifier object and after some calculation time you can see the result. So for some objects that had quite a large amount of polygons I made a lower version of some parts, just like a level of
Try it out first You can use a fully functional version of Rhinoceros 3D as a 90day trial, if you’d like to test out its features.
real-world scale Always work with correct real-world sizes in your scene. It’s helpful when setting up camera and lights as well.
detail. The reduced parts were used if the camera was some distance away from the object.
When you have objects that are aligned in a ring-like pattern, arrays will come in handy. You can even check Render Instances to get more performance. I like arrays a lot, as I find that they perform very well. Just put the desired object in the array and with the help of the parameters you can adjust almost everything you need.
10 Mograph cloners AND instances
One of the most powerful instancing systems within Cinema 4D is Mograph and Mograph clones. This is the feature I used most of the time. Every time a single object repeats itself a specific amount of times, use Mograph. So for example I used it for cloning the cylinder heads, everything that’s underneath, or screws that were aligned on the outside. You can even generate an instance out of a cloned object, or use it in a symmetry object. Sometimes it’s even useful to merge down a large number of objects.
11 render instances AND octanerender
When you are using multiple clones inside of Cloner, be careful. Somehow Octane refuses to render these cloned clones when they are checked as Render Instances. Be sure to look after that before rendering. Other engines like V-ray, Corona or the default C4D Render will render it anyway.
12 organise your scene
Be sure to have a good, efficient method for organising your scene. You will avoid trouble when you have a nice and clean structure. For example, you can use layers or null objects to get everything organised. When you have information from the client, it’s nice to name everything correctly too. You can use ‘Icon Color’ for null objects to split everything further in the object manager.
13 Delete Faces Manually
On very complex geometry where the polygon reducer refused to work, I manually deleted polygons that would not be visible – basically everything that’s inside and hence not important for a hero shot. When you delete faces, Cinema 4D will leave the vertex points, so be sure to optimise your scene and check ‘Delete Unused Points’ and you are ready to go. Be sure that you leave the original geometry as a single saved file for a backup.
14 set up scene/ camera position
For these images I used a pretty long focal distance to avoid distortions from the camera lens. A nice additional way to get rid of these is hidden in the Octane camera tag: Perspective Correction.
15 Model welding seams
For some parts it was necessary to model welding seams. There are two ways to do this: modelling, or with a weld displace map. I decided to go for modelling because it’s faster.
In my case I needed a ring-like weld seam. So, simply use a ring object. Convert it to an editable Polygon, go to Point mode and select all Points. Use the ‘Set point value’ command in the Attribute window, choose ‘Crumple(axial)’ from the menu and try some values until you get your desired look.
16 Additional helpers
If you barely have time to finish your work and there is an increasing workload, you can cheat a little on modelling when you simply use textures with bumps and normals. There are a lot of free tools on the market that are good for these purposes.
For example, Crazybump. I used this for an analog Interface with some buttons and some scale indicators as seen in the screenshot.
17 clay rendering
When your model is set up in the way you want it, it’s always nice to do some renderings in clay ‘mode’. It’s also a way to test if Octane renders it out or if there are any memory issues. So this is a smart method to test your scene and to have some first images for your client that look better than some Opengl screenshots.
You can use the daylight system with a sun or an HDRI environment, or simply use the default background colour from Octane and hit render.
18 shade in octane For A heat-exposed look
For texturing/shading I used the reference images that were provided to build up some shaders. Mostly it was straightforward. Use correct IOR values when you do glossy materials. To break it up a bit I made a shader that looks like some parts were threaded with heat. It’s easy to do with Octane Dirt in inverse mode and a ramp with some nice colours to make it look like it was exposed to great heat.
19 lighting in octane
I decided to light it manually rather than using an HDRI or using HDRI Studio, which is a great tool by the way. I placed Area lights around the engine and used smaller Area lights to lighten up specific points of interest. You can uncheck ‘Visible for Specular’ in the light options when you just want it for the diffuse or the other way. I also mixed some light colours to make it a bit more interesting. You can use the Kelvin slider in the light options for the Octane Light to do this.
20 render settings in octane
Basically Octane's render settings are not that complicated; there’s not that much you can do wrong. I use the path tracer almost every time as my main render kernel. Be sure to have enough samples especially when you are working with depth of field. Therefore, here we need some more samples and it may even take a while until it’s free of noise.
When you have fireflies or hotspots in your rendering, use the GI Clamp slider and lower it down until they disappear. In the Octane tab in the main render settings enable Render Passes and choose your layers for later postproduction. Use 16 or 32-bit images when you are saving your image.
With the rendered multi-pass image I did some minor colour corrections in Photoshop. As always
I used a slight amount of Ambient Occlusion with a multiply around 10-20%. Don’t use more, it will look unnatural and dirty. With the material ID and the Photoshop colour selection I was able to do a quick selection of parts that needed a bit more tweaking. Use the selection to create masks and colour correct in a non-destructive way. With the layers included in your multi-layer image you can simply adjust the opacity, for example, for more reflection. For the ground shadow I used Cinema 4D's default render Ambient Occlusion because I like it more than the Octane Occlusion pass.
22 proof Final results
One of the main tasks was to get as close as possible to the typical Caterpillar yellow, even in print! So we used our Print Proofer here at New Communication to get as close as we could. We needed several attempts to get the desired result. If you have reflective materials on your render it’s not easy to grade the colours to the reference. So my advice is to look for a region on your render where there’s almost no reflection going on, no shadows and no self shadowing. It’s the best place to do the grading. We used Photoshop to do the job but you can do it in other post-production software as well.