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!