TITLE: Frozen Fire
NAME: Robert W. McGregor
COUNTRY: USA
EMAIL: rob@mcgregorfineart.com
WEBPAGE: www.McGregorFineArt.comJPGFILE: FireOnIce.jpg
ZIPFILE: FireOnIce.zip

TOPIC: Fire and Ice
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: frznfire.jpg
RENDERER USED: 

        POVRAY 3.6


TOOLS USED: 

        Wings 3d 
        ZBrush 2 
        PoseRay 
        POV-SDL 
        PhotoShop (for JPEG conversion)


RENDER TIME: 
    37 hours @ 1280x1024 px

HARDWARE USED: 
    Dell PC, Pentium 4 (w/HT), 3 Ghz, 1 GB RAM



IMAGE DESCRIPTION: 

I spent several days thinking of various combinations of things that could 
represent fire and ice, and I came up with a great many ideas (e.g., Comet 
near the sun, Volcano in Iceland, A glass of Scotch Whiskey on the rocks 
 firewater! , A frozen castle with a blazing torch, etc.), but I never got 
the "That's it!" feeling from any of them until one morning I woke up and 
it suddenly hit me - red hot chili peppers frozen in a block of ice - 
"That's it!" I thought... Tongue in cheek, yet serious and on-topic. 
And so here it is.
 
                                                    

DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 

In a nutshell, I created the composition and materials for this image 
using the POV-SDL exclusively. Isosurface ice, mesh chili peppers, blob
water droplets, and simple plane for the ground.

The ice block is a simple isosurface based on the f_rounded_box function
with an agate pigment function subtracted to simulate the irregularity of
melting ice:

//-------------------------------------------------------
// Ice Block

#declare fn_Pigm = function {
   pigment { 
      agate
      color_map {
          0 color rgb 0 
          1 color rgb 1 
      }
   } 
}

#declare Ice = 
isosurface {
  function { f_rounded_box(x, y, z, 0.25,1,1,1)-
     fn_Pigm(x/2, y/2, z/2).gray*0.135 }
  contained_by { box { -1.75, 1.75 } }
  accuracy 0.001
  max_gradient 2.36
  scale <2, 1, 2>
}


The material for the ice is pretty standard POV fare:

//-------------------------------------------------------
// Ice block material

#declare Brighten_Factor = 1.2;

#declare clr1 = rgb<128,175,184>/255*Brighten_Factor;
#declare clr2 = rgb<85,140,150>/255*Brighten_Factor;
#declare clr3 = rgb<183,208,210>/255*Brighten_Factor;
#declare clr4 = rgb<110,154,174>/255*Brighten_Factor;

#declare M_Ice = material {
   texture {
      pigment { 
         bozo
         turbulence 0.5
         scale 0.33
         color_map {
             0.00 clr1 transmit 0.5 filter 0.25 
             0.33 clr2 transmit 0.5 filter 0.25 
             0.66 clr3 transmit 0.5 filter 0.25 
             1.00 clr4 transmit 0.5 filter 0.25 
         }
      } 
      normal {
         bozo
         turbulence 0.6
         normal_map {
             0.0 agate 0.125 scale 0.1 
             0.33 granite 0.05 scale 0.5 
             0.66 granite 0.25 scale 3 
             1.0 granite 0.035 scale 0.25 
         }
      }
      finish {F_Glass3 ambient 0.3}
   } 
   interior {ior 1.2 #if (!Use_Photons) caustics 1 #end}
}

To catch the "sunlight" coming through the ice I used photon mapping
on the ice block:

// Ice block
object { Ice   
   rotate y*30
   material {M_Ice} 
   #if (Use_Photons)
   photons {
      target
      refraction on
      reflection off
      collect off
   }
   #end
}

The photons were set up for the scene as follows:

global_settings {
   #if (Use_Photons)
   photons {
      spacing 0.01
      jitter 0.4
   }
   #end
}

light_source { <-125, 50, -100>
   color Sunlight*1.4
   #if (Soft_Shadows) 
      area_light <10, 0, 0>, <0, 0, 10>, 6, 6
      adaptive 2
      jitter
      orient 
      circular
   #end
   #if (Use_Photons)
   photons {
      reflection off
      refraction on
   } 
   #end
}


I tried modeling the chilis using blobs, but after a few hours I couldn't 
get the right feel and I eventually gave up and finally went with a mesh2 
approach.  Side Note: I'm starting to appreciate mesh techniques more and 
more. I used to think using mesh modelers was like cheating, but now, well 
it's just the right choice sometimes (and sometimes the ONLY choice!). 
The chilis themselves (fruit and stem) were created using Wings 3d for 
the rough geometries and ZBrush 2 to subdivide the meshes and fine tune 
with displacements for a natural, organic feel (ZBrush is awesome!). I 
converted the meshes from OBJ to POV Mesh2 format using PoseRay. 

The ground is just a couple of layered planes, the top one is rgb 0.9 with 
a transmit 0.35 and the bottom one has a texture that combines an averaged 
surface normal having a multi-layered slightly reflective finish with a 
proceduralized image_map of Antarctic ice blended in (based on the 
proceduralizing technique demonstrated by Jaime Vives Piqueres at 
ignorancia.org). The end result is a translucent icy surface with a 
lot of depth.

As a finishing touch for each chili not completely encased in ice I 
added water droplet blobs for a melting/wet look. The droplets were 
randomly placed using trace() and some vector math I learned from 
studying Gilles Tran's POV code (specifically the MakeSnow macro).

The textures for the stem, fruit, and droplets are completely 
procedural using only POV-SDL.

Photons, area lighting, and lots of tweaking finally gave me the end 
result I was after. All in all, I'm very pleased with this image!

