This page shows a set of more advanced tips for rendering liquids in a plastic bottle. It explores the various shading aspects required to achieve realistic results. It also looks at ways to use the 'Rayswitch' shader to minimize the calculation of certain rays. This way render times are reduced without sacrificing render quality.

There are various aspects of shading that need to be considered when tackling liquid and container surfaces. If physical accuracy is a priority, then the default Standard Surface shader settings should be sufficient. However, enabling Fresnel with Reflectance at Normal is essential to give the plastic a cleaner, more realistic look and is probably more suited to a photographic studio image. 

If the speed of rendering is the primary consideration, then you may want to look into disabling some attributes (Enable Internal Reflections, Caustics, Bounce Factor 0). To reduce render times even further you should consider using a rayswitch shader that disables expensive rendering attributes such as Transmission roughness from secondary rays. 

Before reading this page, it is recommended that you first look at the tutorial 'Rendering Glass Surfaces with Arnold' to be more familiar with the modeling requirements for rendering glass and liquid surfaces. 

Scene Setup

The Transmission Ray Depth has been increased to 7 to allow enough rays to pass through both the plastic bottle and the liquid surface. The scene is lit with an Area Light with its Light Shape set to Cylinder. There is also a Sky in the scene.

Shading the Bottle

The examples below show the effect of changing various attributes of the Standard Surface shader used for the plastic bottle shader. 

Enable Internal Reflections   

Unchecking internal reflections will disable indirect specular and mirror perfect reflection computations in secondary bounces.

Bear in mind that even though disabling 'Enable Internal Reflections' can dramatically reduce render times, it will also affect the appearance of the plastic. Therefore, you should ask whether accurate quality or speed is more important before using this feature.


Shading the Water

Liquid Meniscus   

The top of the liquid has been modeled accurately with a meniscus. A meniscus is a curve in the upper surface of a liquid close to the surface of the container or another object, caused by surface tension.  

Model the liquid meniscus. Ensure you have enough edge loops to pull the top of the surface down.

Note that the plastic shader will affect the light rays going through the plastic and will have an affect on the liquid inside. Therefore you should ensure that the Transmission Ray Depth settings are high enough for rays to travel through both the plastic and liquid surfaces. The Index of Refraction has been changed to that of water: 1.33. The Base Weight has been lowered to 0.9. 

The examples below show the effect of changing various Standard attributes for the water shader.  

Base Weight

By default, the water looks a little dark. Adding a small amount of diffuse helps to 'lighten' the appearance of the water (note that this is not a physically accurate approach). 


Specular Weight has been left at 0 as we do not want the water to show specular reflections inside the bottle.

Enable Internal Reflections

The images below show the difference between rendering the water surface with and without Enable Internal Reflections. The differences are subtle but can be seen mainly around the base of the bottle.


The Caustics menu can be found in the Standard Surface shader. This switch in the Standard Surface shader specifies whether the diffuse GI rays can 'see' specular reflection and transmission rays (by default only the direct and indirect diffuse lighting of the Standard Surface shader will be computed in the diffuse rays).

The images below show the difference between rendering the bottle and liquid with and without caustics.

Cloudy Water

To make the water appear cloudy, the 'Transmission Roughness' has been increased to 0.4. Increasing this value will add to the render times. A 'Rayswitch' shader has been used to keep render times to a minimum.


The Rayswitch shader can help to reduce the number of rays calculated in the scene, thereby improving render times without sacrificing quality.

The primary rays need to refract because of the cloudy roughness required to make the liquid look cloudy. Whereas the secondary glossy, shadow and diffuse rays are using a second shader (Water_Secondary_Rays) that does not have specular/ transmission roughness (this decreases render time).

As you can see in the images below, there is little difference in render quality and yet the render times have been reduced dramatically.

An .ass file is available here.

  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies