Join Aaron F. Ross for an in-depth discussion in this video Render a mesh object with Arnold Standard Volume, part of 3ds Max: Tips, Tricks and Techniques.
- [Instructor] In the Arnold renderer, any polygon mesh object can render as a volume. This means we can render clouds, smoke, mist, gas, and other volumetric effects within the boundaries of any polygon mesh. To do this, we use the Arnold standard volume material, and the Arnold properties modifier. Before we begin, it's important to know that the meshes must be watertight. There cannot be any holes in the model. Holes will not render properly, and will show up as if they had 100% density, or a solid surface.
So I've created a scene with a modified teapot primitive. I've actually created four separate objects, each one with just one part of the teapot enabled, as we can see here. And that made it legal for me to add Cap Holes modifiers to seal up all the gaps. So if I select the body and hide it, right-click and choose Hide Selection, we can tumble or orbit around a little bit and see that we've got no holes anywhere.
All right, I'll undo that hide. And select all four of the polygon objects. Let's go to the material editor, and assign the Arnold standard volume. Open up Material Editor. And that will be found under Materials, Arnold, Volume, Standard Volume. Drag that over into the view, double-click it, and rename it teapot volume. With those four objects still selected, we can assign the material to the selection.
We also need to add an Arnold properties modifier. Once again with all four of those objects still selected, go to the Modify panel, and from the Modifier list choose Arnold Properties. In order to see the effect, let's enable ActiveShade. Open up the ActiveShade window. To render as a volume go into the Volume rollout of the Arnold Properties modifier, turn on the enable switch, and give it a non-zero step size.
Step size is the accuracy of sampling. Lower values are more accurate, but take longer to render. You'll need to find the sweet spot for each scene. In this case I'm going to set the step size to 0.2. And now we've got a nice cloud rendering here on our teapot. We're going to add some displacement later, and in order for that to work properly we need to have a non-zero padding. Padding is required if we want to displace the volume very far outside the boundaries of the mesh.
With insufficient padding, parts of the volume would be cut off and wouldn't render. Let's set the padding to 10. We've got the Arnold Properties set up. Let's go back to the Material editor, and work with the Arnold standard volume material. At the top is Density. Let's bring that down a bit, we'll set the density amount to 0.3. Now it's a little bit more ghostly. We can reduce the transparency, and make it a little bit more opaque, because it's got a high transparency by default.
So click on the Transparency Color, and bring that down to 0.1. Then we have the Depth, and that's the distance from the outer boundary at which this transparency is reached. If we have lower depth values, then it will appear more solid because light will not penetrate as deeply into the material. Set the Depth to a value of 0.1. The color is determined by the scattering parameters here.
We have the intensity of scattering and the color. We're going to connect a map to the color, but we can adjust the intensity, just bring it down a little bit to 0.9. And if I want this to look like a cloud, in which light is really scattering around inside, then we need to give it a little bit of emission. The scattering here is not the same as subsurface scattering on a solid object. If we want a subsurface scattering type of effect, we need to give it a little bit of emission here.
Set the mode to Density. Then we have Intensity and color. We'll leave the Color at White, and maybe connect a map to that later. But for now we just want to bring the intensity up a bit. Set that to a value of three. Now it looks like it's a little bit more lit from within. With these parameters, it's back to looking almost like a solid surface, but we're going to mix this up quite a lot with a noise map. So back in the Material Map browser, we want to go to Maps, Arnold, Texture, Noise.
Drag that over into the view, double-click it, and call it teapot noise. Connect its output to the input scatter_color on the standard volume. Now we can see we've got a noise map applied. Let's change this up, set the Octaves to five. That's the number of iterations to the noise, or the level of detail. Increase Lacunarity, which is basically chaos. Set it to a value of 2.6. Also we have the Mode down here, which is defaulted to scaler, which is giving us just a black and white noise effect.
But later we want to apply vector displacement, and that's going to push the volume in all three directions. So we want to change this over to vector, for vector displacement. And now we have RGB colors on the noise. Let's increase the amplitude a bit. Let's set that to a value of five. Now we're getting very colorful effects here, but we want this to actually really be something we can art direct, so for that purpose we can use the noise as a mask between two colors.
And that's done with a Mix RGBA node. Back in the Maps, Arnold, go into the Math section. And you're looking for Mix RGBA. Drag that over into the view, and connect that between the noise and the standard volume. We want the noise to drive this mix parameter, so connect the noise output to the mix input, and the Mix RGB output to scatter_color.
Double-click on Mix RGBA, and let's change up these colors. Go into input1, let's make this a red color. We'll have a hue of zero, a saturation of 0.95, and also a value of 0.95. Click OK, go over to input2, and let's make that green. We'll set the hue to 0.3, the saturation 0.85, and the value 0.7.
Click OK, now we've got some nice colors applied on there. And now for the displacement. We can just connect the noise directly to the displacement input of the standard volume. We can see that the vector displacement is working quite nicely, it's pushing the volume that was once inside the teapot in all directions. But it will take a lot longer to render. Just be careful with volumetric rendering, because it takes a lot longer than standard surface rendering. If we want to control the amount of displacement, we can use a range node for that.
That'll be found once again in the Math nodes for Arnold. Here's Range, drag that over, and we can connect it in between the noise and the displacement to control the input and output ranges. Connect the noise output to the range input. Connect the range output to the displacement input. Double-click the range node, and rename it displace range. I've already experimented with the displace range values that I want for this shot.
So let's plug those in. I'll bring the input minimum down to negative one, and then increase the output maximum to five. And likewise reduce the output minimum to negative five. That way we're able to displace both inward and outward. That looks pretty nice so far. If we want to animate that, one way to do it would be to animate a color and multiply by that color. So let's do that, we can go back to our Arnold Math nodes, and create a Multiply node, drag that over.
And then connect teapot noise to input1, and take the output of Multiply and plug that into the Range node. Double-click on that Multiply node. We're multiplying input1, which is the noise map, with input2 which is currently white. I can click on that, and adjust the value and as I do so I am attenuating the amount of displacement. So I can just animate this value using autokey. And create an animation in which the teapot coalesces, or disintegrates into a cloud.
And that's how to render polygon objects as Arnold Standard Volume in 3ds Max.