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_rolor, 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).
An 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 an 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 work around this.
Increasing the radius of the light (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.
Another solution is to increase the number of subdivision_iterations of the petal geometry. The artifacts will become smaller.
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 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 diffuse_ray_depth value because SSS is sensitive to this value. When you have many overlapping or enclosed surfaces (such as a rose), you will notice a visible effect when increasing the diffuse_ray_depth bounces to 2 or more.
Lowering the sub-surface scattering value will help to compensate for this increased brightness.
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.
An .ass file is available here.