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.
Skydome Light
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.
Physical Sky
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_light. The window glass is hidden and shadows are disabled for the balloons.
Spot Light
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.
Spot_light positioned behind the balloon shapes
Gobo Filter
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.
Noise Shader
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).
Tip: 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
Final setup for Gobo filter
Shading
Assign a standard_surface to the balloon objects and rename it to BalloonMat.
Balloon Material
The settings for the Balloon material used in this example are as follows:
specular_roughness : 0.36.
subsurface_weight: 0.5.
subsurface_scale: 10.
subsurface_type:randomwalk2.
Create a layerRGBA shader and connect it to the base_color, subsurface_color and subsurface_radius of the BalloonMat.
LayerRGBA->aiBalloonMat
Create and connect a utility shader to input1 of the layerRGBA.
Create and connect a colorJitter shader to input2 of the layerRGBA. The color_jitter 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.
ColorJitter
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.
Utility
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.