POV-Ray : Newsgroups : povray.binaries.images : Age of Innocence (Cathy's World): version #1 : Age of Innocence (Cathy's World): version #1 Server Time
5 Nov 2024 08:24:41 EST (-0500)
  Age of Innocence (Cathy's World): version #1  
From: Thomas de Groot
Date: 26 Nov 2006 08:48:38
Message: <45699b36@news.povray.org>
For your enjoyment today :-)

In between things, I have been working on this scene. Radiosity is not
optimal here, but that has to wait for later.

Two versions of the same scene are given. The difference is in the crackle
function used for the (isosurface) desert floor.

The scene has been primarily inspired by the cover of a book that has been
sitting on my shelf for almost 40 years (see:
http://www.klaus-johansen.dk/?page_id=138 ), and illustrating the short
story O moon of my delight. It was time for me to give it my own
interpretation.

The girl figure is a Poser figure of course (Kate); you will recognize of
course Zeeger's greebles in the background.

My question is about the pylons. I don't remember where I got the code, nor
who wrote. If somebody recognize them (pylon.pov; 2002) please let me know
so that I can acknowledge properly.

For those interested, here follows the crackle and isosurface code:

//Start code
//------------------------------------------------------------------Isosurface/Height_field
desert - start
//First crackle function, like broken-up slabs of stone:
#declare F_crackle_solid =
function {
  pigment {
    crackle solid
    //crackle form <-1.0, 1.0, 0.0>
    color_map {
      [ 0.00  rgb 0 ]
      [ 0.10  rgb 0 ]
      [ 0.10  rgb 1 ]
      [ 0.50  rgb 0.5 ]
      [ 0.90  rgb 1 ]
      [ 0.90  rgb 0 ]
      [ 1.00  rgb 0 ]
    }
    warp {
      turbulence <0.1, 0.1, 0.1>
      octaves 5
      omega 0.5
      lambda 2
    }
    frequency 100
    ramp_wave
    scale 0.1
  }
}

//Second crackle function, like dessication cracks:
#declare F_crackle_form =
function {
  pigment {
    //crackle solid
    crackle form <-1.0, 1.0, 0.0>
    color_map {
      [ 0.00  rgb 0 ]
      [ 0.10  rgb 0 ]
      [ 0.10  rgb 1 ]
      [ 0.50  rgb 0.9 ]
      [ 0.90  rgb 1 ]
      [ 0.90  rgb 0 ]
      [ 1.00  rgb 0 ]
    }
    warp {
      turbulence <0.1, 0.1, 0.1>
      octaves 5
      omega 0.5
      lambda 2
    }
    frequency 0.7
    poly_wave 0.5
    scale 0.1
  }
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Based on a Bruno Cabasson example:
#macro IsoHF2(fn_Terrain,TERRAIN_SIZE_X,TERRAIN_SIZE_Z,TERRAIN_HEIGHT,RES)
#declare ISO_Terrain =
isosurface {
    //function {y - TERRAIN_HEIGHT*fn_Terrain(x/TERRAIN_SIZE_X, 0,
z/TERRAIN_SIZE_Z)}
    function {y - TERRAIN_HEIGHT*fn_Terrain(x, 0, z)}
    max_gradient 5
    contained_by {box {<-TERRAIN_SIZE_X, -0.01, -TERRAIN_SIZE_Z>,
<TERRAIN_SIZE_X, TERRAIN_HEIGHT, TERRAIN_SIZE_Z>}}
}

#declare HF_Terrain =
height_field {
    function RES, RES {fn_Terrain ((x-0.5)*(TERRAIN_SIZE_X*2), 0,
(y-0.5)*(TERRAIN_SIZE_Z*2))}//the function is reduced proportionally to
terrain scale
    smooth
    translate <-0.5, 0, -0.5>
    scale <2*TERRAIN_SIZE_X, TERRAIN_HEIGHT, 2*TERRAIN_SIZE_Z>
}

#end //of macro
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Choose here between the two crackle functions:
//#declare fn_Terrain = function (x, y, z) {F_crackle_solid (x, 0, z).red}
#declare fn_Terrain = function (x, y, z) {F_crackle_form (x, 0, z).red}

IsoHF2(fn_Terrain, 100, 100, 0.005, 1000)

#declare CrackledSurf ace =
//as an isosurface:
object {ISO_Terrain texture {mytexture} translate -50*z}
//as a height_field:
//object {HF_Terrain texture {mytexture} translate -50*z}
//------------------------------------------------------------------Isosurface/Height_field
desert - end
// end of code

Thomas


Post a reply to this message


Attachments:
Download 'Age of Innocence_01.jpg' (382 KB)

Preview of image 'Age of Innocence_01.jpg'
Age of Innocence_01.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.