This tutorial explores how to shade a realistic looking rose material using the Standard Surface shader. We will look at some subtle (but important) shading attributes that make up the rose shader, including translucency and sub-surface scattering and some modeling considerations to bear in mind when rendering single sided geometry.
The rose's Standard Surface shader has a Base Color, Specular and SSS maps connected to it. A slightly modified duplicate color map has also been connected to the sub-surface color attribute. The backlighting effect is achieved by enabling Thin Walled.
The animated gif below shows the effect that Diffuse (Base Color), Specular (with high Specular Roughness) and Subsurface (SSS) scattering have on the look of the rose. The scene is lit with a directional light pointing towards the camera, thereby creating the translucent backlighting effect and a Skydome light with a sky HDR map connected to it its color attribute.
SSS combined with Thin Walled can replicate the effect of a translucent object being lit from behind (bear in mind this effect is more suited to single sided objects). The images below show the difference when rendering the petal with increasing amounts of thickness. A fly model has been placed behind the petal and the directional light is pointing towards the camera for maximum effect.
It is generally recommended that Thin Walled only be used with thin objects (single sided geometry) as objects with thickness may render incorrectly. However, in this situation it works fine with thickness (ensure that the diffuse ray depth level is above 1).
Mesh width scale: 1 unit Mesh width scale: 10 units
A HDRI is connected to the Color attribute of a Skydome light. The HDRI used in this example has been downloaded from www.hdrlabs.com. A directional light has also been used to add more sunlight into the scene.
Scene lit with a directional light and a Sky shader with a HDR map
Lighting the scene from behind with a strong directional light has introduced some artifacts at the shadow terminator. The current algorithm enabled by shadow_terminator_fix works well for convex surfaces like a sphere, but it can't fix self-shadowing in concave regions. There are ways to workaround this.
Increasing the lights radius (in this case Angle because a directional light has been used for the sun) helps to reduce the effect of the shadow terminator (by softening the shadow). However, even when increasing the Angle to high amounts, the shadow terminator will still be apparent.
Shadow Angle 0 Shadow Angle 4
Another solution is to increase the number of Subdivision Iterations of the petal geometry. The artifacts will become smaller.
No subdivision Subdivision Iterations 2
A better, more 'physically accurate' method is to add a small amount of thickness to the geometry by extruding the petals. The image on the left has petals that are only single sided. When rendered, the petals appear paper thin (more noticeable around the backscattered areas of the petals). The image on the right shows the results when the petals have extruded depth. The petals now appear to have some thickness when rendered.
Single sided (mesh has no thickness).
Mesh has extruded thickness.
Indirect Diffuse Ray Depth
Increasing the Indirect Diffuse ray depth value will add more bounced light into the scene. The rose appears much brighter after increasing the ray depth to 3. Be cautious when increasing the Indirect Diffuse ray depth value because SSS is sensitive to the Indirect Diffuse ray depth value. When you have many overlapping or enclosed surfaces (such as a rose) you will notice a visible effect when increasing the Indirect Diffuse ray bounces to 2 or more.
Lowering the sub-surface scattering value will help to compensate for this increased brightness.
Diffuse ray depth 1 Diffuse ray depth 3
That concludes this tutorial on how to shade a rose. The techniques covered here can also be applied to other translucent materials such as skin, paper and wax.