#macro sand(geometry, surface_texture, inside_texture, sss, absorbing, iorefraction, depth) difference { object { geometry hollow translate y * depth texture{surface_texture} interior { media {scattering {3 sss} samples 10, 1000} media {absorption absorbing} ior iorefraction } } object { geometry texture{inside_texture} } } #end #macro sand_basic(geometry, sand_color) #local surface = texture { pigment {color rgbt } }; #local backing = texture { pigment {sand_color} }; sand(geometry, surface, backing, sand_color, 2, 1.3, 0.3) #end