Marble Shading

This tutorial covers how to realistically shade a marble using a combination of the standard_surface shading for the glass and volume shading using the standard_volume shader for the marble interior. When using both of these shaders with the same texture projection we can achieve an effect that marries the two and creates a realistic depth to the marble shading. The volume section is purely optional, of course, and it may well be that the glass shading produces a sufficient result in itself.

Note that this tutorial is meant merely as a guideline and so these values should not be strictly adhered to as they are mostly 'artistic' choices based on a particular texture and look. We, therefore, encourage you to experiment with different values depending on the look that you are going for and the texture map that you are using.

A recommended texture image would be one that mixes oil and ink together for example. This would produce an interesting colorful effect suitable for a marble shader.

A scene file can be downloaded here. An oil and ink texture map has been kindly provided by Kenny Frankland.

Glass Sphere

base_weight: 0

specular_roughness: 0

specular_ior: 1.52

transmission_weight: 1

Tip: A glass preset is available in the presets menu in the attributes for the standard_surface shader.

Transmission

Now we need to connect our marble texture to the transmission_color and transmission_scatter. Transmission_scatter is suitable for any material that is fairly thick or where there is enough of it for scattering to be visible, such as honey . Transmission_scatter with depth is key to the look for our marble shading.

transmission_depth: 0 (default) transmission_depth: 1 transmission_depth: 3
u_angle: 30. v_angle: 230. scale_x: 0.3 u_angle: 330. v_angle: 90. u_angle: 270. v_angle: 30

You could also try connecting the texture map to the base_color. Increase the base_weight and decrease the transmission_weight to taste.

Final shading network for the glass marble

Now, this is looking pretty good as it is. However, let's try to improve it further by adding an interior to the marble using a volume inside the glass sphere.

Volume

Smaller (and therefore more accurate) step sizes will increase render times while larger sizes will render more quickly.

Volume Scatter Color

Now we want to add color to the volume using the same image (and projection) that we used for the glass shader.

image -> uv_projection -> volume.scatter_color

Final shading network for the volume

Final Rendering

Make sure that the skydome_light has enough volume_samples otherwise the volume will appear noisy.

Marble glass shading with volume inside