...
The dispstar shader is a very simple shader written in Open Shading Language (OSL). It computes a displacement amount depending on radial angle in the x-y plane. When applied to a spherical shape, it produces a round star with five soft spikes. When applied to a teapot (with higher frequency), it produces a pumpkin-like shape.
shader
dispstar(float scale = 1.0, float freq = 5.0,
output float resultF = 0.0)
{
...
// Compute displacement amount
...
float angle = atan2(N[1], N[0]);
...
float disp = scale * sin(freq*angle);
...
resultF = disp;
}
In this example, the displacement amount computed by dispstar gets passed on to the PxrDisplace displacement shader, which does the actual displacement. Here is an image of a sphere and the same sphere with displacement (along with an image with holes due to too small displacement bound):
...