POV-Ray : Newsgroups : povray.general : Fire Textures anyone? : Re: Fire Textures anyone? Server Time
4 Aug 2024 04:18:33 EDT (-0400)
  Re: Fire Textures anyone?  
From: David Wallace
Date: 29 Sep 2003 14:03:41
Message: <3f7873fd@news.povray.org>
Try this also:

#macro FireMap(Type)
 #local Inverse = 0;
 #switch (Type)
  #case (1) // Brightest flames, bright red to pale yellow
   #if ( Inverse )
    color_map {
     [ 0.0 rgb <0.0, 0.0, 0.0> ]
     [ 0.2 rgb <0.0, 0.0, 0.0> ]
     [ 0.2 rgb <0.0, 0.6, 0.6> ]
     [ 0.6 rgb <0.0, 0.4, 0.8> ]
     [ 1.0 rgb <0.0, 0.0, 0.5> ]
    }
   #else
    color_map {
     [ 0.0 rgb <0.0, 0.0, 0.0> ]
     [ 0.2 rgb <0.0, 0.0, 0.0> ]
     [ 0.2 rgb <1.0, 0.4, 0.4> ]
     [ 0.6 rgb <1.0, 0.6, 0.2> ]
     [ 1.0 rgb <1.0, 1.0, 0.5> ]
    }
   #end
  #break
  #case (2) // Slightly dimmer, with more red
   #if ( Inverse )
    color_map {
     [ 0.35 rgb <0.0, 0.0, 0.0> ]
     [ 0.40 rgb <0.0, 0.6, 0.6> ]
     [ 0.50 rgb <0.0, 0.6, 0.6> ]
     [ 0.65 rgb <0.1, 0.1, 1.0> ]
     [ 0.75 rgb <0.1, 0.1, 1.0> ]
     [ 0.80 rgb <0.0, 0.0, 0.8> ]
    }
   #else
    color_map {
     [ 0.35 rgb <0.0, 0.0, 0.0> ]
     [ 0.40 rgb <1.0, 0.0, 0.0> ]
     [ 0.50 rgb <1.0, 0.0, 0.0> ]
     [ 0.65 rgb <1.0, 1.0, 0.0> ]
     [ 0.75 rgb <1.0, 1.0, 0.0> ]
     [ 0.80 rgb <1.0, 1.0, 0.5> ]
    }
   #end
  #break
  #case (3) // Medium flames with red and orange
   #if ( Inverse )
    color_map {
     [ 0.25 rgb <0.0, 0.0, 0.0> ]
     [ 0.25 rgb <0.0, 0.5, 1.0> ]
     [ 0.50 rgb <0.0, 0.5, 1.0> ]
     [ 0.75 rgb <0.0, 0.3, 0.6> ]
    }
   #else
    color_map {
     [ 0.25 rgb <0.0, 0.0, 0.0> ]
     [ 0.25 rgb <0.8, 0.0, 0.1> ]
     [ 0.50 rgb <0.8, 0.0, 0.1> ]
     [ 0.75 rgb <1.0, 0.5, 0.0> ]
    }
   #end
  #break
  #case (4) // Mostly red with violet/orange mix
   #if ( Inverse )
    color_map {
     [ 0.00 rgb <0.0, 0.0, 0.0> ]
     [ 0.35 rgb <0.7, 0.3, 1.0> ]
     [ 0.65 rgb <0.7, 1.0, 0.3> ]
     [ 1.00 rgb <0.0, 1.0, 1.0> ]
    }
   #else
    color_map {
     [ 0.00 rgb <0.0, 0.0, 0.0> ]
     [ 0.35 rgb <0.3, 0.7, 0.0> ]
     [ 0.65 rgb <0.3, 0.0, 0.7> ]
     [ 1.00 rgb <1.0, 0.0, 0.0> ]
    }
   #end
  #break
  #case (5) // Dark red/orange embers
   #if ( Inverse )
    color_map {
     [ 0.0 rgb <0.0, 0.0, 0.0> ]
     [ 0.3 rgb <0.0, 0.0, 0.0> ]
     [ 0.3 rgb <0.0, 0.7, 0.7> ]
     [ 1.0 rgb <0.4, 0.8, 0.6> ]
    }
   #else
    color_map {
     [ 0.0 rgb <0.0, 0.0, 0.0> ]
     [ 0.3 rgb <0.0, 0.0, 0.0> ]
     [ 0.3 rgb <0.2, 0.1, 0.1> ]
     [ 1.0 rgb <0.4, 0.1, 0.2> ]
    }
   #end
  #break
 #end
#end

#macro Fire( Type, Size )
 interior {
  //ior 1.1
  media {
   emission 0.6
   method 3
   samples 5, 20
   intervals 1
   variance 1/1000
   confidence .995
   density {
    spherical
    turbulence 1.50
    omega 0.7
    lambda 1.7
    FireMap(Type)
    scale Size*0.5
   }
  }
 }
#end

#declare cFlame = sphere {
 y, 1
 scale <.8, 3, .8>
 pigment { rgbt 1 }
 hollow
 no_shadow
 Fire( 2, <1.5, 4, 1.5> )
}

Feel free to play with the color maps if you want.  I keep the inverse
option for when I need to make a negative image later.


Post a reply to this message

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