POV-Ray Buttons and Logos

Eric Bainville - Mar 2007

Button contents

Let's first design a simple shape to put inside our buttons. The object is scaled to fit in XYZ box [-0.6+0.6]×[-0.6+0.6]×[0,1]. The image on the right is rotated 45 degrees to show the Z extent.

// Right arrow
#declare c_rarrow = prism {
  // Object extends in Z range 0..1
  0, 1,
  6, <-1,-1>,<-0.3,-1>,<1,0>,<-0.3,1>,<-1,1>,<0.3,0>
  // Prism sweep is along Y, we rotate to make it Z
  rotate 90*x
  // Scale to fit button
  scale <0.6,0.6,1>
}
 

We can glue an arrow on a button. I added a front light to better separate both elements. We scale the arrow in the Z direction to give it a suitable height, then we translate it to obtain the desired effect (a little manual adjustement is necessary):

light_source { <0,0,100>, White*0.3 }
...
object { b_hround texture { T_Silver_3C } }
object { c_rarrow scale <1,1,0.4> translate <0.1,0,-0.3>
  pigment { color White }
}

We can also carve the arrow in a button:

difference {
  object { b_hround texture { T_Silver_3C } }
  object { c_rarrow translate <0.1,0,0> pigment { color White } }
}
 

The next section (Colors) shows how to add colors and textures to these gray buttons.