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 in order 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 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 recommend that you first look at the tutorial 'Rendering Glass Surfaces with Arnold' in order to be more familiar with the modeling requirements for rendering glass and liquid surfaces.
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.
The examples below show the effect of changing various attributes of the Standard Surface shader used for the plastic bottle shader.
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 have an effect on the appearance of the plastic. Therefore, you should ask whether accurate quality or speed is more important before using this feature.
Remember to disable Opaque in the Arnold attributes for both the plastic bottle and the liquid surface.
The top of the liquid has been modeled accurately with a meniscus. A meniscus is the 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.
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.
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.
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.