POV-Ray : Newsgroups : povray.binaries.images : Early morning w/ tree : Re: Early morning w/ tree Server Time
1 Aug 2024 04:11:27 EDT (-0400)
  Re: Early morning w/ tree  
From: Mike Hough
Date: 9 Dec 2008 16:47:55
Message: <493ee78b$1@news.povray.org>
This is what I used to produce the light effect. In addition to this there 
is a large sphere surrounding the scene with a pigment to emulate the colors 
of the sky.

plane {y, 150
pigment {color rgbt <1, 1, 1, 1>}
finish {ambient 0}
no_shadow
hollow

interior {
media {
scattering { 4, rgb 0.0007 extinction 1}
  intervals 5
  //intervals 1
  samples 30
  //samples 15
  method 3
  }
  }

  }

The intervals and samples that are commented out are what I used to get the 
colors the way I wanted but the higher values are needed to get smooth rays 
of light.

"Alfonso Vicente Zurdo" <kba### [at] gmailcom> wrote in message 
news:web.493e3938c8b65ac518e008aa0@news.povray.org...
> "Mike Hough" <nos### [at] nospamcom> wrote:
>> Always wanted to try making a tree and using double_illiminate on the
>> leaves. This is one of Gilles Tran's trees with the sun behind it and 
>> some
>> scattering media to create a nice atmospheric effect.
>
> What settings for media did you use?
>
> I'm traying to obtain a similar effect, but I still haven't found what i'm
> looking for.
>
> Yes, I like U2 :)
>
>

Oh heck, here is the whole thing. You just need to get Gilles' MakeTree 
macro and provide a substitution for the "variable_width_example2.png" file. 
The code is very messy, as there was lots of tinkering involved.

//=========================================
// Leaf & Tree examples for the MakeTree macro
//==========================================
// Copyright 1999-2004 Gilles Tran http://www.oyonale.com
// -----------------------------------------
// This work is licensed under the Creative Commons Attribution License.
// To view a copy of this license, visit 
http://creativecommons.org/licenses/by/2.0/
// or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, 
California 94305, USA.
// You are free:
// - to copy, distribute, display, and perform the work
// - to make derivative works
// - to make commercial use of the work
// Under the following conditions:
// - Attribution. You must give the original author credit.
// - For any reuse or distribution, you must make clear to others the 
license terms of this work.
// - Any of these conditions can be waived if you get permission from the 
copyright holder.
// Your fair use and other rights are in no way affected by the above.
//==========================================
// Still another classic tree example
//-----------------------------------------
// This file calls the MakeTree and MakeLeaf macros
// and defines the textures and parameters
// Set the [dofile] parameter to "true"
// when you want to create the final file
//-----------------------------------------
#include "colors.inc"
#include "txttree.inc"
#include "maketree.pov" // tree & leaf macro
//=========================================
// Camera & light
//-----------------------------------------
#declare PdV=<0, 4 , -120>;
#declare PdA=<0,25,0>;
camera {location  PdV direction <0.0 , 0.0 , 1.3 > up y  right 4*x/3 look_at 
PdA angle 55}
//-----------------------------------------
//light_source{PdV color White*0.5  shadowless}
//light_source{<130,40,-200> color White*1.8}
union {
light_source {<0, 0, -9000> color 1.8*White}
sphere {<0, 0, -9000>, 200 pigment {color rgb <1,1,.95>}
finish {ambient 10 diffuse 0}
no_shadow
}
rotate <15, 183, 0>
}

/*the sun*/
/*
sphere {<0, 50, 50>, 10 pigment {color rgb <1, 1, .9>}
finish {ambient 1}
no_shadow
}
*/
#declare reduction = .4;

#declare sun =
pigment {wood color_map { // sun sky
 [0.05 color rgb <1,1,.95>*3*reduction] // this index is size of sun
 [0.055 color rgb <1,1,.9>*2.0*reduction] // this one starts the fade out 
edge of sun
 [0.15 color rgb <.8,.9,1>*1.3*reduction]
 //[0.25 color rgb <.6,.7,.9>]
 [1.00 color rgb <.3,.6,.9>*reduction]
}
rotate <19,183,0>
} // places sun (raise or lower x for altitude, y for left/right)

#declare skyness =
pigment {gradient y color_map { // horizon sky
 //[0.05 color rgbf <.8,1,1,.1>*reduction] // this index is size of sun
 //[0.25 color rgbf <.6,.8,.9,.4>*reduction]
 //[1.00 color rgbf <.4,.3,.9,.5>*reduction]
   [0.05 color rgb <.8,1,1>*reduction filter .1] // this index is size of 
sun
   [0.25 color rgb <.6,.8,.9>*reduction filter .6]
   [1.00 color rgbf <.4,.3,.9>*reduction filter .9]
} }

sphere {<0, 0, 0>, 1
texture {
pigment {
average
pigment_map {
[1, sun]
[1, skyness]
}
}

finish {ambient 1 diffuse 0}
}

double_illuminate
no_shadow

hollow
scale 500
}


//=========================================
// Tree macro Parameters
//-----------------------------------------
// These parameters must be declared before calling the tree macro
//-----------------------------------------
#declare dofile=true;    // true creates a tree file ; false otherwise
#declare dotexture=false;  // true creates a textured tree (with the texture 
following the branch); false otherwise
#declare ftname="gttree7.inc" // file name for tree
#declare fvname="gtfoliage7.inc" // file name for foliage
#declare ffname="gtleaf7.inc" // file name for leaf
#declare txtTree=texture{txtTree_3} // Bark texture

//-----------------------------------------
// Random streams
// one stream for branches and another one for leaves
// so that the leafed tree has the same structure as the leafless one
//-----------------------------------------
#declare rsd=1431;      // random seed
#declare rsd=1432;      // random seed
#declare rsd=1433;      // random seed
#declare rd=seed(rsd);  // random stream for branches
#declare rdl=seed(rsd); // separate random stream for leaves

//-----------------------------------------
// Tree structure parameters
// test with low level0 and nseg0 (3 or 4)
// High (>=6) recursion levels [level0] gives more complex trees
// High (>=6) segment numbers [nseg0] gives smoother trees
//-----------------------------------------
#declare level0=6;      // recursion level
//#declare level0=3;      // recursion level
#declare nseg0=10;       // initial number of branch segments (decreases of 
one at each level)
#declare nb=5;          // max number of branches per level
#declare dotop=true;   // if true, generates an extra branch on top of trunk 
(sometimes necessary to give more verticality)

#declare lb0=30;        // initial branch length
#declare rb0=1.5;         // initial branch radius
#declare ab0=40;        // initial branch angle (x angle between the trunk 
and the first branch)
#declare qlb=0.65;       // branch length decrease ratio (1=constant length)
#declare qrb=0.59;       // branch radius decrease ratio (1=constant radius)
#declare qab=0.88;       // branch angle decrease ratio (1=constant angle)
#declare stdax=20;      // stdev of x angle (angle x = ax+(0.5-rand)*stdax)
#declare stday=10;      // stdev of y angle (angle y = ay+(0.5-rand)*stday)

#declare branchproba=0.8; // probability of branch apparition
#declare jb=0.5;        // secondary branches start after this ratio of 
branch length

#declare fgnarl=0.25;    // gnarledness factor - keep it low <0.8
#declare stdlseg=0.5;     // stddev of branch segment length (0...1) (adds 
more randomness to branch length)

#declare twigproba=0.59; // probability to have a twig on a trunk segment

#declare v0=<0,1,0>;    // initial direction - change to give an initial 
orientation
#declare pos0=<0,0,0>;  // initial trunk position (no need to change this 
one)

//-----------------------------------------
// constraints parameters
//-----------------------------------------
#declare vpush=<0,-1,0>;// direction of push (wind, gravity...) <0,-1,0> = 
gravity ; <0,1,0> = antigravity
#declare fpush=0.2;       // force of push
#declare aboveground=0; // constrains the branches above this level
#declare belowsky=140;  // constrains the branches below this level

//-----------------------------------------
// root parameters
//-----------------------------------------
#declare rootproba=0;   // probability of root 0=no root ; 1=all [nb] roots
#declare nroot=5;      // number of roots;
#declare vroot=<1,0,0>; // initial direction of root
#declare yroot=<0,0.5,0>;   // initial position of root above ground

//-----------------------------------------
// leaf position parameters
//-----------------------------------------
#declare leafproba=1;   // probability of leaf 0=no leaf ; 1=leaf on each 
segment
//#declare leafproba=0;   // probability of leaf 0=no leaf ; 1=leaf on each 
segment
#declare leaflevel=3;   // level where the leaves start to appear
#declare alz0=100;       // max z angle for leaf
#declare alx0=-10;      // start x angle for leaf
#declare stdalx=40;     // std x angle for leaf
#declare stdlsize=0.1;     // stddev of leaf size 0=constant size; size = 
leafsize*(1+stdlsize*rand)

//-----------------------------------------
// leaf structure parameters
//----------------------------------------- 
#declare colLeaf_1=rgbf <0.7,1,0.2, .5>*0.8; // greenish
#declare colLeaf_2=rgbf <1,0.7,0.2, .5>*0.8; // yellow
#declare txtLeaf_5=texture{pigment{agate color_map{[0.0 color colLeaf_1][0.3 
color colLeaf_2] [0.7 color colLeaf_2][1.0 color colLeaf_1] }}
        finish{ambient 0 specular 0.3 roughness 0.01} scale 10}
#declare txtLeaf=texture{txtLeaf_5} // Leaf texture
#declare lsize=0.34;     // leaf size
#declare seg=10;        // nb of leaf segments and stalk segments : increase 
to smooth
#declare ll=5;          // leaf length
#declare wl=1.2;          // leaf width
#declare fl=0.5;        // depth of leaf fold
#declare lpow=1;        // modifies the leaf shape : lpow=3 makes 
heart-shaped leaf
#declare al=100;        // leaf bending angle : the leaf bends backward 
until this angle
#declare apow=1;        // curve power, how slow the leaf bends
#declare ndents=0;      // dents in the leaf (8 = "oak" leaf). May require a 
high seg >20
#declare nlobes=3;      // number of lobes (individual leaves)
#declare alobes=110;    // angle made by all the lobes
#declare qlobes=0.7;    // size of the farest lobe (0.9 = size will be 
0.9*leaf length)
#declare ls=3;          // stalk length (0=no stalk)
#declare ws=0.12;        // width of stalk
#declare as=10;         // stalk bending angle : the stalk bends forward
//-----------------------------------------
// end of parameters
//=========================================

//=========================================
// Make the tree now !
//-----------------------------------------
///*
object{
        #if (leafproba>0)
        #declare Leaf=object{MakeLeaf(lsize,seg,ll,wl,fl,lpow,al,apow,
                 ndents,nlobes,alobes,qlobes,ls,ws,as,dofile,ffname)
                 #if (dotexture=false)  // no texture applied to tree 
segments, so the leaf texture must be used for the individual leaf
                        texture{txtLeaf}
                 #end
                 double_illuminate
        }

        #end
        MakeTree()

        #if (dotexture = true) // texture is already applied to tree so that 
we can safely apply the leaf texture to the leaves
                texture {txtLeaf}
        #else

                texture {txtTree} // apply tree texture  regardless of the 
tree structure
        #end
}
//*/

include "textures.inc"

#declare mudtex =
texture {
average
texture_map {
[1, Brown_Agate rotate 40]
[.5, pigment {color rgb .7*<1, 1, 1>}
finish {specular .6 roughness 0.01 diffuse .5 brilliance .7}]
}
}

#declare mud =
height_field {
png "variable_width_example2.png"
smooth

//translate <-.5, 0, -.5>
scale <20, .4, 20>
}

#declare strip = union {
object {mud}
object {mud translate <-20, 0, 0>}
object {mud translate <-40, 0, 0>}
object {mud translate <-60, 0, 0>}
object {mud translate <-80, 0, 0>}
object {mud translate <20, 0, 0>}
object {mud translate <40, 0, 0>}
object {mud translate <60, 0, 0>}
object {mud translate <80, 0, 0>}
}

union{
object {strip}
object {strip translate <0, 0, -20>}
object {strip translate <0, 0, -40>}
object {strip translate <0, 0, -60>}
object {strip translate <0, 0, 20>}
object {strip translate <0, 0, 40>}
object {strip translate <0, 0, 60>}
object {strip translate <0, 0, 80>}
object {strip translate <0, 0, 100>}
scale <2, 1, 2>
texture {mudtex scale 20}
}


plane{y,0

texture {mudtex}
}

//*
//sphere {<0, 0, 0>, 1
plane {y, 150
pigment {color rgbt <1, 1, 1, 1>}
finish {ambient 0}
no_shadow
hollow
//scale <500, 500, 20>

interior {
media {
scattering { 4, rgb 0.0007 extinction 1}
  intervals 5
  //intervals 1
  samples 30
  //samples 15
  method 3
  }
  }

  }
//*/
//background{color rgb <0.8,0.9,1>}

//tests for tree texture, leaf and leaf textures
//cylinder{0,y*4,1 texture{txtTree} scale 10}
//#declare 
Leaf=object{MakeLeaf(lsize,seg,ll,wl,fl,lpow,al,apow,ndents,nlobes,alobes,qlobes,ls,ws,as,dofile,ffname)

texture{txtLeaf}}
//object{Leaf scale 15 rotate y*1 translate y*30 texture{txtLeaf} }
//box{<-20.8239,-3.15052,-15.6178>,<16.2539,48.6219,22.4758> pigment{Green}}


Post a reply to this message

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