Model, Light & Render Realistic Diamonds in Maya with MentalRay
Today I'm going to make a Diamond in Maya using simple polygon techniques and I will also show you how to create realistic shaders and light the scene using caustics. You know that caustics are a beautiful effect, generated when light passes through glass, water or a similar kind of transparent object. Sometimes people get annoyed while trying to achieve perfect caustics, but don't worry at all, as it will be created automatically with the help of some special settings in our light setup.
First of all we have to gather some information about the shape of a diamond. Because its shape is a bit tricky and the shape is the most important part of making the diamond look like a real diamond. I have some reference images of diamonds for you. You can easily examine the shape, details and cuts of the diamond.
Open Maya, go to File > Project > New, and set a new project folder for the diamond. Type the name, set the location and click on ‘Use Defaults’. After that click on ‘Accept’ and your project folder will now be created.
Now in the Top view create a polygon Cone with a Subdivision Axis of 16 and Subdivision Cap 2. For the proper visibility I’m using the magnifier to zoom in on the specific area.
Press 5 on the keyboard to turn on Smooth Shade All. In the Perspective view, go to Vertex mode and select all the top vertices of the cone and then move them upward a bit.
Scale these vertices a little bit outwards too. Just see the diamond reference and observe the shape of the diamond.
Then select the bottom vertex and move it upwards a bit. Because a diamond’s bottom part, which is called the ‘Culet’, is usually short. Now its shape is perfect.
Go to Edit Mesh > Insert Edge Loop tool, and insert an edge loop near the middle edge loop.
Scale this edge loop outwards a bit to make it equal to the other one.
Select these 8 edge loops (highlighted below) from the top, and Delete them as we don’t need these edges anymore.
Go to Edit Mesh > Insert Edge Loop Tool and insert an edge loop as you can see in the image. This edge loop will help us to create important cuts on the diamond.
Pick the Split Polygon Tool from Edit Mesh > Split Polygon Tool and create a similar cut to what's shown below, on both the left side and right side.
It creates 4 triangles as shown in the following image.
Now create one more triangle on top as shown in the image below. (I told you that the edge we inserted in step 10 would help us to create some important cuts.)
Now Delete the edge segment from the middle of the two triangles, as shown below.
Just like this, create such shapes all around the cone with the help of the Split Polygon Tool.
Once done, select the edge loop which you can see highlighted in the image below and Delete it, as we don’t need this edge loop.
Select all 8 edges which you can see in the following figure and Delete them too.
Now select the vertices where we had deleted the edges.
Then scale these vertices inwards like you can see in the image.
Now select some of the other vertices from the Top view and Scale them outwards a bit. By doing this the diamond’s shape will become round.
Go to Edit Mesh > Insert Edge Loop tool, and insert an edge loop as shown to create some detail.
Select the vertices of the outer edge loops except the center one.
Then deselect these vertices alternatively from the Top view.
Scale these vertices inwards a little bit, according to the diamond reference image.
Now go to the Front view and Scale down these vertices vertically.
Select the top edges of the diamond and Delete them because these edges are useless according to the reference image. One more thing, don’t apply smoothness to the diamond. Our diamond model is now complete.
Now Create a new Plane object and place it below the diamond, to create a ground plane.
Put the diamond on the plane and with the diamond selected, press Ctrl + D to create another instance of the diamond.
Now we’ll move towards the shading and lighting of the diamonds. So it's time to create the scene setup and we also have to set a camera angle or a bookmark for rendering. Before setting the book mark, let’s create some more diamonds in the scene. To do that, we can simply copy the existing diamonds and Scale them randomly, some bigger and some smaller.
First of all apply a Red color to the plane, which is the base of the diamonds. Use a Lambert shader for it.
Set the renderer to Mental Ray first (because of the caustics and diamond reflectivity.) We’ll work with caustics later, but before that we have to work on the diamond shader, lighting setup, final gather and then the HDRI reflections of the diamonds. Let’s start with Hypershade.
Inside the Hypershade window, select the mental ray material option and choose mia_material_x .
With the mia_material selected, press Ctrl+A to open the Attribute Editor.
Rename the mia_material as "mia_material_diamond". Change the Diffuse Color to Black with a diffuse weight value of 1. Change the Reflectivity Color to White and set the Reflectivity value to 1, because we need 100% reflection. You can always play with the values to get different results.
Inside the Refraction rollout, set the Index of Refraction as 2.419. According to real-world Physics, the index of refraction of a diamond is 2.419. Also set the Transparency value to 1.
Go to the Advanced Refraction rollout and set the Max Trace Depth value to 10. And also enable the Refractive Caustics radio button.
Change the Anisotropy attributes values as shown in the image.
Under the BRDF rollout, turn on the ‘Use Fresnel Reflection’ option for better reflections.
Now the material shader shape will look like this.
Finally apply this material to the diamonds in the scene. Assign the material and then render the scene. The rendered image looks very flat and plain. So now we’ll add lights into the scene.
Now it's time to set the lights in the scene. We'll start with a Point Light, go to Create > Lights >Point Light.
After creating the point light, set the direction and position of the light according to your presentation requirements. I have also curved the background surface as you can see in the image.
Set the light intensity value to 0.4, and turn off the Emit Specular option under the Point Light Attributes.
Now we will create another Spot Light in the scene.
Now we have to change the Spot Light's attributes. So with the Spot Light selected, press CTRL+A to open the Attribute Editor.
Set the intensity of the Spot Light to 0.500 and turn On the Emit Specular option. Set the Cone Angle, Penumbra Angle and Drop Off values according to the image below.
Under the Raytrace Shadows Attributes rollout, turn on the Use Ray Trace Shadows option. Set the Light Radius from 10.000 to 12.000, Shadow Rays from 20 to 22 and the Ray Depth Limit to 20.
Go to the Area Light attributes and turn on the Area Light option.
Now the light setup is completed and it's time for the Render Setup.
Go to the Render Settings panel and set Mental Ray as the renderer. Then go to the Indirect Lighting tab.
Now turn on the Final Gathering option, for much more realistic lighting.
Now we have to set a Bookmark for any camera angle, from which we want to render. After setting the camera angle to your desired position, go to the View >Bookmarks >Edit Bookmarks.
Now enter a name for your perspective view where you set the camera angle. I used the name "view_second", because this is my second bookmark. After naming, click on the Apply button. I did this step, because in future if we change the camera angle, we can again go back to our old view.
Now hit the Render button and see the result. We can now determine what we can do additionally to make it look better! We have to work on the reflections and caustics.
Now it's time to use an HDRI (High Dynamic Range Image). An HDRI will be used to reduce the blackness which we can see in the diamonds. The black reflection is due to the black color of the environment. Now go to the Render Settings > Indirect Lighting > Image Based Lighting.
Now click on the Create option which you can see on the right side of the image. After that a new tab opens (the HDRI attributes), where you can browse to an HDRI. I have some HDRI's inside my HDRI collection, so I will use one of them for the tutorial.
Before I move ahead, I make a simple skydome using a large Sphere in the scene. I then apply the HDRI to the dome, and now my diamonds are covered completely by the surrounding reflections from the skydome.
After selecting the Bookmark (second view), hit Render. In the rendered image, some diamonds look better and some look normal. This is because of the camera angle. So always play with the camera angle until you get a desired result you're happy with.
Now we will work on the Caustics. First decrease the Color Intensity of the base (surface), as it's a very sharp red right now.
Open the Render Settings window. And under the Indirect Lighting tab, enable the Caustics option.
Now hit the Render button again. After seeing the rendered image, it seems nothing special has happened! The reason behind this is that we didn’t allow the lights to emit Photons. If lights do not emit the photons, they will not produce caustics or global illumination. As you know, Photons are packets of light energy.
Now select the spotLightShape1 from the outliner (or from the viewport) and open it's Attribute Editor. Scroll down the menu to Mental ray, and then the Caustic and Global Illumination rollout. Enable the Emit Photons option.
Now hit the Render button and you'll see a slight change in the rendered image. Caustics are now there, but they don't have a good shape or amount. So we will have to work more on them.
Change the Photon Color from Black to Grey. And set the Photon Intensity to 10000, the Exponent value to 2, and Increase the number of Caustic Photons to 80000 or more.
Go to Render Settings > Indirect Lighting > Caustic and set the Merge Distance to 0. We did this because we need sharp caustics, not merged and wider caustics. If we increase the merge distance value, we will get more merged and wider caustics.
Now with a better render quality and increased image size, hit the Render button. This time you can see the caustics clearly in the rendered image.
After some more experimentation with values, I found different types of outputs. If you change your HDRI, you will get different render results, which will affect the diamonds reflectivity. Rotating the HDRI dome will also affect the reflectivity of the diamonds. I decided to delete the smaller diamonds, as these are very tiny and don’t look suitable in the scene.
Now let’s generate the Ambient Occlusion pass. To create an AO pass, first we have to create a new render layer with all the objects selected. So select all the objects (diamond and surface) except for the lights, and then click on the option to Create a New Layer and assign the selected objects.
Once the New Layer is generated, select that layer and Right-click on it, and then select the option Attributes.
This opens the Attributes Editor. Click on the Presets option and select Occlusion.
Now hit Render and you will get an AO pass.
Finally, after some changes and with the help of the AO (Ambient Occlusion) pass. I composited my render in Photoshop. I also played with the Brightness and Contrast and Lens Correction values too.
Now this is the final look. I hope you have enjoyed this tutorial.