The scene above contains balloons that are flying past a window and filling the room with color. This tutorial will show you how to create this caustic balloon effect using a Gobo light filter connected to a Spot light pointing through the window. We will also cover the shading steps used for the balloons. Thanks to Slava Sych for this tutorial.
Create a camera and point it towards the window as per the image above. Create a Skydome light and connect a Physical Sky to its Color attribute.
The settings for the Skydome light used in this example are as follows:
- Exposure: 2.
- Samples: 3.
- Shadow Color (HSV): 4.213, 0.785, 0.053.
- Camera Visibility: 0.
- Transmission Visibility: 0.
The settings for the Physical Sky used in this example are as follows:
- Turbidity: 8.916.
- Elevation: 90.
- Azimuth: 247.229.
- Intensity: 2.
- Sky tint color (HSV): 353.299, 0.588, 1.000.
- Sun tint: 44.261, 0.177, 1.000.
Skydome lighting. The window glass is hidden and shadows are disabled for the balloons.
- Create a Spot light and place it behind the balloons. Rotate it so that it is pointing through the window.
The settings for the Spot light used in this example are as follows:
- Cone Angle: 144.213.
- Exposure: 19.
- Samples: 3.
- Radius: 44 (for softer shadows).
- Shadow Color (HSV): 13.230, 0.785, 0.019.
- Specular Visibility (Contribution): 0.1.
- SSS Visibility (Contribution): 0.1.
Connect a Gobo filter to the Spot light.
- Set the Filter Mode to Mix.
- Increase the Density to 0.65.
- Connect a Noise shader to the Slide Map of the Gobo.
The settings for the Noise shader used in this example are as follows:
- Octaves: 4.
- Distortion: 1.687.
- Lacunarity: 2.831.
- Scale XYZ: 33 (this value may need to change depending on the size of your scene).
- Coord Space: UV.
- Mode: Vector (for RGB color noise).
To further adjust the effect you could try inserting a Color Correct shader before the Noise shader. In this case, the Saturation was adjusted to 1.6.
Final results for the Spot light
Assign a Standard Surface to the balloon objects and rename it to BalloonMat.
The settings for the Balloon material used in this example are as follows:
- Specular Roughness set to 0.36.
- Subsurface Weight to 0.5.
- Subsurface Scale to 10.
- Subsurface Type to randomwalk.
Create a LayerRGBA shader and connect it to the Base Color, Subsurface Color and Subsurface Radius of the BalloonMat.
- Create and connect a Utility shader to input1 of the LayerRGBA.
- Create and connect a ColorJitter shader to input2 of the LayerRGBA. The ColorJitter will be used to further adjust the variation and color of the balloons.
- In layer2 of the LayerRGBA, change the Operation to multiply and the Mix to 0.645.
The settings for the Color Jitter shader used in this example are as follows:
- Change the Type to Object.
- Gain Max: 4.
- Saturation Min: 0.38.
- Saturation Max: 1.076.
- Seed: 2313.
The settings for the Utility shader used in this example are as follows:
- Shade Mode: Flat.
- Color Mode: Object. This will use give us random colors for each of the balloons.