Previous:Component Types and Other New Features   Main Index   Next:Height Field Object



Complex Blob Constructs and Negative Strength

Beginning a new POV-Ray file called blobdem3.pov, we enter this somewhat more complex example:

  #include "colors.inc"

  background{White}

  camera {

    angle 20

    location<0,2,-10>

    look_at<0,0,0>

  }

  light_source { <10, 20, -10> color White }

  blob {

    threshold .65

    sphere { <-.23,-.32,0>,.43, 1 scale <1.95,1.05,.8> }   //palm

    sphere { <+.12,-.41,0>,.43, 1 scale <1.95,1.075,.8> }  //palm

    sphere { <-.23,-.63,0>, .45, .75 scale <1.78, 1.3,1> } //midhand

    sphere { <+.19,-.63,0>, .45, .75 scale <1.78, 1.3,1> } //midhand

    sphere { <-.22,-.73,0>, .45, .85 scale <1.4, 1.25,1> } //heel

    sphere { <+.19,-.73,0>, .45, .85 scale <1.4, 1.25,1> } //heel

    cylinder { <-.65,-.28,0>, <-.65,.28,-.05>, .26, 1 }    //lower pinky

    cylinder { <-.65,.28,-.05>, <-.65, .68,-.2>, .26, 1 }  //upper pinky

    cylinder { <-.3,-.28,0>, <-.3,.44,-.05>, .26, 1 }      //lower ring

    cylinder { <-.3,.44,-.05>, <-.3, .9,-.2>, .26, 1 }     //upper ring

    cylinder { <.05,-.28,0>, <.05, .49,-.05>, .26, 1 }     //lower middle

    cylinder { <.05,.49,-.05>, <.05, .95,-.2>, .26, 1 }    //upper middle

    cylinder { <.4,-.4,0>, <.4, .512, -.05>, .26, 1 }      //lower index

    cylinder { <.4,.512,-.05>, <.4, .85, -.2>, .26, 1 }    //upper index

    cylinder { <.41, -.95,0>, <.85, -.68, -.05>, .25, 1 }  //lower thumb

    cylinder { <.85,-.68,-.05>, <1.2, -.4, -.2>, .25, 1 }  //upper thumb

    pigment { Flesh }

  }

A hand made with blobs.

As we can guess from the comments, we are building a hand here. After we render this image, we can see there are a few problems with it. The palm and heel of the hand would look more realistic if we used a couple dozen smaller components rather than the half dozen larger ones we have used, and each finger should have three segments instead of two, but for the sake of a simplified demonstration, we can overlook these points. But there is one thing we really need to address here: This poor fellow appears to have horrible painful swelling of the joints!

A review of what we know of blobs will quickly reveal what went wrong. The joints are places where the blob components overlap, therefore the combined strength of both components at that point causes the surface to extend further out, since it stays over the threshold longer. To fix this, what we need are components corresponding to the overlap region which have a negative strength to counteract part of the combined field strength. We add the following components to our blob (see file blobdem4.pov).

  sphere { <-.65,.28,-.05>, .26, -1 } //counteract pinky knuckle bulge

  sphere { <-.65,-.28,0>, .26, -1 }   //counteract pinky palm bulge

  sphere { <-.3,.44,-.05>, .26, -1 }  //counteract ring knuckle bulge

  sphere { <-.3,-.28,0>, .26, -1 }    //counteract ring palm bulge

  sphere { <.05,.49,-.05>, .26, -1 }  //counteract middle knuckle bulge

  sphere { <.05,-.28,0>, .26, -1 }    //counteract middle palm bulge

  sphere { <.4,.512,-.05>, .26, -1 }  //counteract index knuckle bulge

  sphere { <.4,-.4,0>, .26, -1 }      //counteract index palm bulge

  sphere { <.85,-.68,-.05>, .25, -1 } //counteract thumb knuckle bulge

  sphere { <.41,-.7,0>, .25, -.89 }   //counteract thumb heel bulge

The hand without the swollen joints.

Much better! The negative strength of the spherical components counteracts approximately half of the field strength at the points where to components overlap, so the ugly, unrealistic (and painful looking) bulging is cut out making our hand considerably improved. While we could probably make a yet more realistic hand with a couple dozen additional components, what we get this time is a considerable improvement. Any by now, we have enough basic knowledge of blob mechanics to make a wide array of smooth, flowing organic shapes!



Previous:Component Types and Other New Features   Main Index   Next:Height Field Object