// Persistence of Vision Ray Tracer Scene Description File
// File: TexturesExtra.inc
// Vers: 3.5
// Date: 26 July 2005 (Last update)
// Auth: From Texture Magic, with addition of others:
// Auth: Thomas de Groot: all TdG_* names
// Auth: Charles Fusner: all CF_* names
// Auth: Ch. Gerber: all CG_* names
// Auth: Nicolas Rougier: all NR_* names
// Auth: Sean Day: all SD_* names
// Auth: tek: all tek_* names

//==========VERSION and INCLUDES===========
#version 3.5;
#include "Colors.inc"

/* CONTENTS:
   (*) also in Moray version (*.mtx)

   EFFECTS TEXTURES       GLASS TEXTURES          GRANITE TEXTURES(*)     METAL TEXTURES
     Geod                   Green_Glass             MohoganyPol1            SilverTex
     Fire_Map               Glass                   MohoganyPol2            Rough_Gold
     Shiny_Orb              Plexiglass              MohoganyFro             Stupendous
     Asteroid               Lead_Glass              ImpalaPol1              Brushed
     Blue_Plasma                                    ImpalaFro          	    Liquid_Mercury
     Fire                 COLORED GLASSES           IndiaBPol1              TM_Chrome_Metal
     Jelly_Fish             TdG_Red_Glass           IndiaBFro               TM_Brass_Metal
     Electricity            TdG_Green_Glass         NAPPol1	            		TM_Gold_Metal
     Fire_Ball              TdG_Blue_Glass          NAPFro	            		TM_Bronze_Metal
     Orb                    TdG_Yellow_Glass        CanPPol1                TM_Copper_Metal
     Funky_Metal            TdG_BlueViolet_Glass    CanPFro                 TM_Silver_Metal
     Amber                  TdG_SkyBlue_Glass       SGrayPol1               TM_Polished_Chrome
     Russ_Bright            TdG_DarkGreen_Glass     SGrayFro                TM_Polished_Brass
     Wierd_Rings            TdG_Orange_Glass        MGrayPol1               TM_New_Brass
     Bouncy_Ball            TdG_OrangeRed_Glass     MGrayFro                TM_Spun_Brass
     Cloud_Water            TdG_LimeGreen_Glass     StAndGPol1              TM_Silver1
     Ripples                TdG_GreenYellow_Glass   StAndGFro               TM_Silver2
     Cool                   TdG_DarkPurple_Glass                   	    		TM_Silver3
     Green_Bumpy_Leopard    TdG_Ruby_Glass                          	    	TM_Brass_Valley
                                                                   	    		TM_Rusty_Iron
     TdG_Glimmer          SKY TEXTURES                             	    		TM_Rust
     TdG_GreenSnot          Blue_Sky4                               	    	TM_Liquid_Metal
     TdG_Celadon            TdG_SummerSky                         	    		TM_Rusty_Chrome
                                                                  	   			CG_Gold
  TEXTILE TEXTURES(*)     GEOLOGICAL TEXTURES(*)                      			tek_metallicGloss(pPigment,fMetallic)
     CG_Leather             CF_RoughStone                                   
     Redish_Leather	    		CG_Sand
     CG_Tissue              CG_Rock             
     CG_BTex                CG_Sandstone                       
                            CG_PolishedStone
  WOOD TEXTURES             SD_RockTex_dry
     NR_Wood (macro)        SD_RockTex_wet
                            SD_RockTex
                            
                            
                            
*/
//==========EFFECTS TEXTURES===========

// By Bradley Gawthrop - Like the inner walls of some kinds of
// geods really nice, PLAY WITH THE TURBULENCE you'd be amazed
// what neat new effects can be gained by doing so.



#declare Geod =
texture {
 pigment {
  onion
  turbulence 0.6
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.10 color rgb<0.827, 0.788, 1.000>]
      [0.20 color rgb<0.627, 0.620, 0.827>]
      [0.30 color rgbf<0.459, 0.439, 0.647, 1.000>]
      [0.40 color rgb<0.286, 0.267, 0.478>]
      [0.50 color rgbf<0.110, 0.110, 0.298, 1.000>]
      [0.60 color rgb<0.247, 0.239, 0.376>]
      [0.70 color rgbf<0.408, 0.369, 0.459, 1.000>]
      [0.80 color rgb<0.569, 0.486, 0.537>]
      [0.90 color rgbf<0.729, 0.620, 0.620, 1.000>]
      [1.00 color rgb<0.886, 0.749, 0.698>]
  }
 }
 finish { specular 0.2 }
}
//-------------------------------------------------------
// This texture is rather difficult to use since you should
// scale it to fit your object exactly.
#declare Fire_Map =
texture {
 pigment {
  wood
  turbulence 0.2  omega 0.8
  color_map {
      [0.00 color rgb<1.000, 1.000, 1.000>]
      [0.08 color rgbf<0.980, 1.000, 0.016, 0.078>]
      [0.29 color rgbf<1.000, 0.737, 0.012, 0.400>]
      [0.53 color rgbf<1.000, 0.157, 0.008, 0.667>]
      [0.79 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  scale <3.0, 7.5, 3.0>
 }
 finish { ambient 1.0 }
 translate <0.0, -3.25, 0.0>
}
//-------------------------------------------------------
#declare Shiny_Orb =
texture {
 pigment {
  bozo
  turbulence 0.4
  color_map {
      [0.00 color rgbf<0.376, 0.678, 0.839, 0.776>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
 }
 normal {
  waves 1.0
  turbulence 0.4  octaves 5  omega 0.7  lambda 1.0
  frequency 10
  scale <4.0, 4.0, 7.0>
 }
 finish {
  diffuse 0.75
  specular 0.6
  reflection 0.2
 }
}
//-------------------------------------------------------
// This is a good asteroid texture.
#declare Asteroid =
texture {
 pigment {
  bozo
  turbulence 0.6  omega 0.8  lambda 3.0
  color_map {
      [0.00 color rgb<0.510, 0.510, 0.510>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
 }
 normal {
  bumps 1.0
  turbulence 0.6  octaves 5  omega 0.65  lambda 3.0
  scale <0.75, 0.75, 1.0>
 }
 finish {
  ambient 0.15
  specular 0.2
 }
}
//-------------------------------------------------------
// Blue Plasma texture by Iain Young
#declare Blue_Plasma =
texture {
 pigment {
  marble
  turbulence 0.5
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.40 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.40 color rgbf<0.400, 0.400, 1.000, 1.000>]
      [0.50 color rgb<0.898, 0.898, 1.000>]
      [0.60 color rgbf<0.400, 0.400, 1.000, 1.000>]
      [0.60 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  scale <2.0, 2.0, 2.0>
 }
 finish { ambient 1.0 }
}
//-------------------------------------------------------
// This texture is rather difficult to use since you should
// scale it to fit your object exactly.
#declare Fire =
texture {
 pigment {
  gradient y
  turbulence 0.2  omega 0.8
  color_map {
      [0.00 color rgb<1.000, 1.000, 1.000>]
      [0.08 color rgbf<0.980, 1.000, 0.016, 0.078>]
      [0.29 color rgbf<1.000, 0.737, 0.012, 0.400>]
      [0.53 color rgbf<1.000, 0.157, 0.008, 0.667>]
      [0.79 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  scale <3.0, 7.5, 3.0>
 }
 finish { ambient 1.0 }
 translate <0.0, -3.25, 0.0>
}
//-------------------------------------------------------
#declare Jelly_Fish =
texture {
 pigment {
  leopard
  color_map {
      [0.00 color rgbf<0.937, 0.929, 0.769, 0.388>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
  frequency 5
 }
 normal {
  ripples 1.0
  frequency 10
 }
 finish {
  ambient 0.3
  diffuse 0.8
  specular 0.7
 }
}
//-------------------------------------------------------
#declare Electricity =
texture {
 pigment {
  gradient y
  turbulence 0.6  lambda 2.25
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.30 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.30 color rgb<0.149, 0.000, 1.000>]
      [0.50 color rgb<1.000, 1.000, 1.000>]
      [0.70 color rgb<0.149, 0.000, 1.000>]
      [0.70 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  scale <1.25, 1.0, 1.0>
 }
 finish {
  ambient 0.4
  diffuse 0.8
 }
}
//-------------------------------------------------------
#declare Fire_Ball =
texture {
 pigment {
  bozo
  turbulence 0.6
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.19 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.50 color rgb<1.000, 0.000, 0.000>]
      [0.76 color rgb<1.000, 1.000, 0.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
 }
 normal {
  wrinkles 0.5
  turbulence 0.6  lambda 2.5
 }
 finish {
  ambient 0.15
  diffuse 0.75
  specular 0.6
 }
}
//-------------------------------------------------------
#declare Orb =
texture {
 pigment {
  bozo
  turbulence 0.4
  color_map {
      [0.00 color rgbf<0.376, 0.678, 0.839, 0.776>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
 }
 normal {
  waves 1.0
  turbulence 0.4  octaves 5  omega 0.7  lambda 1.0
  frequency 10
  scale <4.0, 4.0, 7.0>
 }
 finish {
  ambient 0.3
  diffuse 0.8
  specular 0.6
 }
}
//-------------------------------------------------------
#declare Funky_Metal =
texture {
 pigment {
  wood
  turbulence 0.02  octaves 4  omega 1.0  lambda 1.0
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.36 color rgbf<0.000, 1.000, 1.000, 0.129>]
      [1.00 color rgb<0.000, 0.000, 1.000>]
  }
 }
 finish {
  ambient 0.15
  diffuse 0.8
  specular 0.9    roughness 0.1    metallic
 }
}
//-------------------------------------------------------
// Nice amber by David Anjo
#declare Amber =
texture {
 pigment {
  marble
  turbulence 0.11
  color_map {
      [0.00 color rgb<0.949, 0.718, 0.047>]
      [0.80 color rgbf<1.000, 0.498, 0.498, 0.898>]
      [0.80 color rgb<1.000, 0.800, 0.800>]
      [1.00 color rgbf<1.000, 0.647, 0.647, 0.898>]
  }
 }
}
//-------------------------------------------------------
// Looks neat with a light source in the center of it and
// appropriately rotated 'round. By David Anjo.
#declare Russ_Bright =
texture {
 pigment {
  marble
  turbulence 0.2
  color_map {
      [0.00 color rgbf<1.000, 0.000, 0.486, 0.800>]
      [0.20 color rgbf<1.000, 0.498, 0.000, 0.800>]
      [0.20 color rgbf<1.000, 1.000, 0.000, 0.800>]
      [0.40 color rgbf<1.000, 0.000, 0.498, 0.800>]
      [0.40 color rgbf<1.000, 1.000, 0.000, 0.800>]
      [0.50 color rgbf<0.800, 0.498, 0.200, 0.800>]
      [0.60 color rgbf<1.000, 0.498, 0.000, 0.800>]
      [0.60 color rgbf<1.000, 1.000, 0.000, 1.000>]
      [1.00 color rgb<1.000, 0.498, 0.000>]
  }
 }
 finish {
  specular 0.85
  reflection 0.55
 }
}
//-------------------------------------------------------
// Purple and red rings.  Nice special effect!
#declare Wierd_Rings =
texture {
 pigment {
  leopard
  turbulence 0.1  lambda 1.0
  color_map {
      [0.00 color rgbf<0.498, 0.000, 1.000, 0.376>]
      [0.16 color rgb<0.000, 0.498, 0.498>]
      [0.16 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.37 color rgb<1.000, 0.000, 0.000>]
      [0.53 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.73 color rgbf<0.000, 0.000, 0.498, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  frequency 5
  rotate <30.0, 0.0, 0.0>
 }
 normal {
  ripples 0.8
  turbulence 0.2  lambda 2.5
  frequency 10
 }
 finish {
  ambient 0.25
  diffuse 0.7
  specular 0.71    metallic
 }
}
//-------------------------------------------------------
// Looks like one of those balls that you play with as a kid.
#declare Bouncy_Ball =
texture {
 pigment {
  gradient y
  turbulence 0.75
  color_map {
      [0.00 color rgb<1.000, 0.000, 0.000>]
      [0.39 color rgb<1.000, 1.000, 0.000>]
      [0.78 color rgb<1.000, 1.000, 1.000>]
      [1.00 color rgb<0.000, 0.000, 0.000>]
  }
  rotate <-45.0, 0.0, 0.0>
  scale <1.0, 3.0, 1.0>
 }
 normal {
  ripples 0.6
  turbulence 0.2  lambda 1.5
  frequency 10
 }
 finish {
  ambient 0.15
  diffuse 0.8
  specular 0.15
 }
}
//-------------------------------------------------------
// Water with the reflection (simulated) of clouds!
#declare Cloud_Water =
texture {
 pigment {
  bozo
  turbulence 0.8
  color_map {
      [0.00 color rgb<0.000, 0.000, 1.000>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
 }
 scale <6.0, 1.7, 2.0>
}
texture {
 pigment {
    colour rgbf<1.000,1.000,1.000,1.000>
 }
 normal {
  waves 1.0
  frequency 5
  scale <1.0, 1.0, 1.5>
 }
 finish {
  specular 0.8
 }
}
//-------------------------------------------------------
#declare Ripples =
texture {
 pigment {
  colour rgbf<1.000,1.000,1.000,1.000>
 }
 normal {
  waves 1.0
  frequency 5
  scale <1.0, 1.0, 1.5>
 }
 finish {
  specular 0.8
 }
}
//-------------------------------------------------------
// Wierd Texture!
#declare Cool =
texture {
 pigment {
  agate
  color_map {
      [0.00 color rgbf<0.000, 0.000, 0.000, 1.000>]
      [0.30 color rgbf<0.000, 0.000, 0.298, 1.000>]
      [0.30 color rgbf<0.000, 0.000, 0.286, 1.000>]
      [1.00 color rgb<0.000, 0.000, 1.000>]
  }
 }
 finish {
  ambient 0.2
  diffuse 0.8
  specular 0.6    metallic
 }
}
texture {
 pigment {
  leopard
  color_map {
      [0.00 color rgbf<1.000, 0.000, 0.000, 0.400>]
      [0.04 color rgbf<1.000, 0.000, 0.000, 1.000>]
      [0.40 color rgb<0.000, 0.984, 0.000>]
      [1.00 color rgb<1.000, 0.000, 0.000>]
  }
 }
 normal {
  ripples 1.0
  frequency 5
 }
 finish {
  diffuse 0.65
  specular 1.0
  reflection 0.35
 }
}
//-------------------------------------------------------
#declare Green_Bumpy_Leopard =
texture {
 pigment {
  leopard
  color_map {
      [0.00 color rgbf<1.000, 0.000, 0.000, 0.400>]
      [0.04 color rgbf<1.000, 0.000, 0.000, 1.000>]
      [0.40 color rgb<0.000, 0.984, 0.000>]
      [1.00 color rgb<1.000, 0.000, 0.000>]
  }
 }
 normal {
  ripples 1.0
  frequency 5
 }
 finish {
  diffuse 0.65
  specular 1.0
  reflection 0.35
 }
}

#declare TdG_Glimmer = 
   material {   
    texture {      
     pigment {
      bozo
       color_map {
        [ 0.0     rgbft <0.6, 0.6, 0.6, 0.0, 0.0> ]
        [ 0.5     rgbft <0.7, 0.7, 0.7, 0.0, 0.0> ]
        [ 1.0     rgbft <0.8, 0.8, 0.8, 0.0, 0.0> ]
       }
      }      
     normal {
      bump_size 1.0
     }
     normal {
      bozo , 1.0
      bump_size 0.5
      turbulence 5.0
      ramp_wave
     }      
     finish {
      ambient 0.1
      diffuse 0.5
      brilliance 0.1
      phong 0.2
      specular 0.007167
      roughness 0.789467
      reflection 0.09
      irid {
       0.5
       thickness 0.6
       turbulence <2.0, 2.0, 2.0>               
      }
      crand 0.05
     }
    }
   }

#declare TdG_GreenSnot = 
texture {
 pigment {
  color rgbf <.9,.9,.79,.7>
 } 
 finish {
  phong .5 phong_size 20
 } 
 normal {
  bozo scale 0.3
 }
}

#declare TdG_Celadon = 
   material {   
      texture {      
         pigment {
            bozo
            pigment_map {
               [0.0 color rgb <0.762025, 0.883775, 0.762025>]
               [0.2 color rgb <0.855688, 0.935979, 0.855688>]
               [0.5 color rgb <0.728519, 0.896481, 0.728519>]
               [0.8 color rgb <0.937467, 1.000000, 0.937467>]
               [1.0 color rgb <0.548054, 0.722746, 0.548054>]
            }
         }      
         finish {
            ambient 0.1
            reflection 0.05
         }
      }
   }

//==========GLASS TEXTURES===========

// Glass Interior:
#declare I_Glass=
   interior { ior 1.5 }


// Glasses:

#declare Green_Glass =
 texture {
  pigment {
   colour rgbf<0.800,1.000,0.949,0.898>
  }
  finish {
   diffuse 0.1
   specular 0.8    roughness 0.01
   phong 1.0    phong_size 400
   reflection 0.1
  }
 }
//-------------------------------------------------------
#declare Glass =
texture {
 pigment {
  colour rgbf<1.000,1.000,1.000,0.698>
 }
 finish {
  ambient 0.0
  diffuse 0.0
  specular 1.0
  reflection 1.0
 }
}
//-------------------------------------------------------
// Plexiglass
#declare Plexiglass =
texture {
 pigment {
  colour rgbf<1.000,1.000,1.000,1.000>
 }
 finish {
  ambient 0.0
  diffuse 0.0
  phong 0.3    phong_size 60
  reflection 0.5
 }
}
//-------------------------------------------------------
// An excellent lead crystal glass!
#declare Lead_Glass =
texture {
 pigment {
  colour rgbf<0.976,0.976,0.976,0.898>
 }
 finish {
  diffuse 0.1
  specular 0.8    roughness 0.01
  phong 1.0    phong_size 400
  reflection 0.1
 }
}

//==========GRANITE TEXTURES===========

// Mohogany granite - polished surface
#declare MohoganyPol1 =
texture {
 pigment {
  granite
  turbulence 0.4
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.25 color rgb<0.059, 0.059, 0.059>]
      [0.25 color rgb<0.086, 0.027, 0.059>]
      [0.35 color rgb<0.118, 0.118, 0.078>]
      [0.35 color rgb<0.200, 0.137, 0.110>]
      [1.00 color rgb<0.769, 0.329, 0.298>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.2
  color_map {
      [0.00 color rgbf<0.200, 0.200, 0.200, 0.149>]
      [0.25 color rgbf<0.200, 0.200, 0.200, 0.949>]
      [0.25 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
 translate <20.0, 20.0, 33.0>
 rotate <0.3, 0.2, 0.0>
}
//-------------------------------------------------------
// Quartz bits
#declare MohoganyPol2 =
texture {
 pigment {
  granite
  turbulence 0.2
  color_map {
      [0.00 color rgbf<0.200, 0.200, 0.200, 0.149>]
      [0.25 color rgbf<0.200, 0.200, 0.200, 0.949>]
      [0.25 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
 translate <20.0, 20.0, 33.0>
 rotate <0.3, 0.2, 0.0>
}
//-------------------------------------------------------
// Mohogany granite - frosted surface
#declare MohoganyFro =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.200, 0.200, 0.200>]
      [0.25 color rgb<0.259, 0.259, 0.259>]
      [0.25 color rgb<0.388, 0.329, 0.357>]
      [0.50 color rgb<0.420, 0.420, 0.376>]
      [0.50 color rgb<0.400, 0.337, 0.310>]
      [1.00 color rgb<0.769, 0.659, 0.639>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}
//-------------------------------------------------------
// Impala granite - polished surface
#declare ImpalaPol1 =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.45 color rgb<0.078, 0.039, 0.067>]
      [0.45 color rgb<0.286, 0.329, 0.357>]
      [1.00 color rgb<0.157, 0.118, 0.129>]
  }
  scale <1.2, 1.2, 1.2>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.2
  color_map {
      [0.00 color rgbf<0.659, 0.659, 0.698, 0.149>]
      [0.25 color rgbf<0.498, 0.498, 0.549, 0.949>]
      [0.25 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
  translate <33.0, 20.0, 0.0>
  rotate <0.3, 0.2, 0.3>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// Impala granite - frosted surface
#declare ImpalaFro =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.298, 0.298, 0.298>]
      [0.45 color rgb<0.376, 0.337, 0.369>]
      [0.45 color rgb<0.486, 0.529, 0.557>]
      [1.00 color rgb<0.357, 0.318, 0.329>]
  }
  scale <1.2, 1.2, 1.2>
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}
//-------------------------------------------------------
// India Black granite - polished surface
#declare IndiaBPol1 =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.45 color rgb<0.008, 0.020, 0.008>]
      [1.00 color rgb<0.008, 0.020, 0.008>]
  }
  scale <1.2, 1.2, 1.2>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.2
  color_map {
      [0.00 color rgbf<0.200, 0.200, 0.200, 0.149>]
      [0.25 color rgbf<0.200, 0.200, 0.200, 0.949>]
      [0.25 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// India Black granite - frosted surface
#declare IndiaBFro =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.298, 0.298, 0.298>]
      [0.45 color rgb<0.298, 0.318, 0.318>]
      [0.45 color rgb<0.286, 0.329, 0.357>]
      [1.00 color rgb<0.298, 0.318, 0.318>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}
//-------------------------------------------------------
// North American Pink granite - polished surface
#declare NAPPol1 =
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgb<0.380, 0.200, 0.247>]
      [0.50 color rgb<0.698, 0.463, 0.337>]
      [0.50 color rgb<0.675, 0.506, 0.455>]
      [1.00 color rgb<0.922, 0.843, 0.804>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<0.098, 0.078, 0.078, 0.498>]
      [1.00 color rgb<0.047, 0.039, 0.039>]
  }
  translate <20.0, 20.0, 0.0>
  rotate <30.0, 30.0, 30.0>
  scale <0.5, 0.5, 0.5>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// North American Pink granite - frosted surface
#declare NAPFro =
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgb<0.576, 0.435, 0.482>]
      [0.50 color rgb<0.635, 0.506, 0.455>]
      [0.50 color rgb<0.675, 0.506, 0.455>]
      [0.72 color rgb<0.961, 0.863, 0.843>]
      [0.72 color rgb<0.275, 0.275, 0.275>]
      [1.00 color rgb<0.196, 0.196, 0.196>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}
//-------------------------------------------------------
// Canadian Pink granite - polished surface
#declare CanPPol1 =
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgb<0.380, 0.200, 0.247>]
      [0.50 color rgb<0.761, 0.486, 0.361>]
      [0.50 color rgb<0.675, 0.506, 0.455>]
      [1.00 color rgb<0.804, 0.588, 0.533>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<0.098, 0.078, 0.078, 0.498>]
      [1.00 color rgb<0.047, 0.039, 0.039>]
  }
  translate <20.0, 20.0, 0.0>
  rotate <30.0, 30.0, 30.0>
  scale <0.5, 0.5, 0.5>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// Canadian Pink granite - frosted surface
#declare CanPFro =
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgb<0.576, 0.435, 0.482>]
      [0.50 color rgb<0.635, 0.506, 0.455>]
      [0.50 color rgb<0.675, 0.506, 0.455>]
      [0.80 color rgb<0.961, 0.863, 0.843>]
      [0.80 color rgb<0.275, 0.275, 0.275>]
      [1.00 color rgb<0.196, 0.196, 0.196>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}
//-------------------------------------------------------
// Southern Gray granite - polished surface
#declare SGrayPol1 =
texture {
 pigment {
  granite
  turbulence 0.9
  color_map {
      [0.00 color rgb<0.941, 0.941, 0.941>]
      [0.20 color rgb<0.784, 0.784, 0.784>]
      [1.00 color rgb<0.471, 0.471, 0.471>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
texture {
 pigment {
  granite
  turbulence 0.8
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.50 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.50 color rgbf<0.200, 0.157, 0.157, 0.498>]
      [1.00 color rgb<0.000, 0.000, 0.000>]
  }
  translate <33.0, 20.0, 0.0>
  rotate <0.3, 0.2, 0.3>
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// Southern Gray granite - frosted surface
#declare SGrayFro =
texture {
 pigment {
  granite
  turbulence 0.9
  color_map {
      [0.00 color rgb<0.980, 0.980, 0.980>]
      [0.60 color rgb<0.745, 0.745, 0.745>]
      [0.60 color rgb<0.345, 0.345, 0.345>]
      [1.00 color rgb<0.549, 0.549, 0.549>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
 scale <0.25, 0.25, 0.25>
}
//-------------------------------------------------------
// Medium Barre Gray granite - polished surface
#declare MGrayPol1 =
texture {
 pigment {
  agate
  color_map {
      [0.00 color rgb<0.961, 0.961, 0.961>]
      [0.50 color rgb<0.863, 0.863, 0.863>]
      [0.50 color rgb<0.510, 0.510, 0.510>]
      [1.00 color rgb<0.314, 0.314, 0.314>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
 scale <0.12, 0.12, 0.1>
}
texture {
 pigment {
  granite
  turbulence 0.9
  color_map {
      [0.00 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.60 color rgbf<0.200, 0.259, 0.157, 0.600>]
      [1.00 color rgb<0.000, 0.000, 0.000>]
  }
  translate <33.0, 20.0, 0.0>
  rotate <0.3, 0.2, 0.3>
  scale <0.3, 0.3, 0.3>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// Medium Barre Gray granite - frosted surface
#declare MGrayFro =
texture {
 pigment {
  granite
  turbulence 0.9
  color_map {
      [0.00 color rgb<0.980, 0.980, 0.980>]
      [0.70 color rgb<0.863, 0.863, 0.863>]
      [0.70 color rgb<0.267, 0.306, 0.267>]
      [1.00 color rgb<0.471, 0.529, 0.471>]
  }
 }
 normal {
  bumps 0.1
  scale <0.2, 0.2, 0.2>
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
 scale <0.25, 0.25, 0.3>
}
//-------------------------------------------------------
// St. Andre Green granite - polished surface
#declare StAndGPol1 =
texture {
 pigment {
  agate
  agate_turb 0.7
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.65 color rgb<0.059, 0.027, 0.047>]
      [0.65 color rgb<0.067, 0.067, 0.047>]
      [0.85 color rgb<0.118, 0.118, 0.078>]
      [0.85 color rgb<0.149, 0.157, 0.129>]
      [0.94 color rgb<0.349, 0.259, 0.200>]
      [1.00 color rgb<0.369, 0.259, 0.247>]
  }
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
 scale <0.2, 0.2, 0.2>
}
texture {
 pigment {
  granite
  turbulence 0.4
  color_map {
      [0.00 color rgbf<0.157, 0.157, 0.200, 0.149>]
      [0.45 color rgbf<0.000, 0.000, 0.047, 0.749>]
      [0.45 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.50 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.50 color rgb<0.000, 0.000, 0.000>]
      [0.63 color rgb<0.000, 0.000, 0.000>]
      [0.63 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [0.90 color rgb<1.000, 1.000, 1.000>]
      [0.90 color rgb<0.451, 0.498, 0.451>]
      [0.91 color rgb<1.000, 1.000, 1.000>]
      [0.91 color rgbf<1.000, 1.000, 1.000, 1.000>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
  translate <20.0, 20.0, 0.0>
  rotate <0.3, 0.2, 0.3>
 }
 finish {
  ambient 0.5
  brilliance 1.5
  phong 0.9    phong_size 80
 }
}
//-------------------------------------------------------
// St. Andre Green granite - frosted surface
#declare StAndGFro =
texture {
 pigment {
  granite
  turbulence 0.7
  color_map {
      [0.00 color rgb<0.098, 0.098, 0.098>]
      [0.35 color rgb<0.259, 0.259, 0.259>]
      [0.35 color rgb<0.329, 0.388, 0.357>]
      [0.54 color rgb<0.420, 0.420, 0.376>]
      [0.54 color rgb<0.376, 0.337, 0.310>]
      [1.00 color rgb<0.518, 0.529, 0.498>]
  }
 }
 finish {
  ambient 0.5
  diffuse 1.0
  crand 0.25
 }
}

//==========METAL TEXTURES===========
#declare SilverTex =
texture {
  pigment {
    colour rgb<0.827,0.827,0.827>
  }
  finish {
    ambient 0.25
    diffuse 0.65
    brilliance 6.0
    phong 1.0    phong_size 100    metallic
    reflection 0.45
  }
}
//-------------------------------------------------------
// A gold colored metal texture that uses a ripple bump pattern
// which has turbulence.
#declare Rough_Gold =
texture {
 pigment {
  colour rgb<0.937,0.737,0.200>
 }
 normal {
  ripples 0.8
  turbulence 0.6  lambda 3.0
  frequency 7
  scale <1.0, 1.0, 10.0>
 }
 finish {
  ambient 0.25
  diffuse 0.65
  brilliance 6.0
  specular 0.4    metallic
  reflection 0.35
 }
}
//-------------------------------------------------------
// Texture by Edwin van Geelen
#declare Stupendous =
texture {
 pigment {
  bozo
  turbulence 0.8  octaves 3  omega 0.7
  color_map {
      [0.00 color rgb<0.000, 0.000, 0.000>]
      [0.10 color rgb<0.400, 0.400, 0.400>]
      [0.15 color rgb<0.600, 0.600, 0.600>]
      [0.20 color rgb<0.600, 0.600, 0.600>]
      [0.50 color rgb<0.000, 0.000, 1.000>]
      [0.55 color rgb<0.298, 0.298, 0.298>]
      [0.90 color rgb<0.800, 0.800, 0.800>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
  scale <0.1, 0.1, 0.1>
 }
 finish {
  phong 0.7    phong_size 20
  reflection 0.3
 }
}
//-------------------------------------------------------
#declare Brushed =
texture {
 pigment {
  bozo
  turbulence 1.0  omega 1.0
  color_map {
      [0.00 color rgb<0.698, 0.698, 0.698>]
      [1.00 color rgb<1.000, 1.000, 1.000>]
  }
  scale <30.0, 1.0, 50.0>
 }
 finish {
  ambient 0.15
  diffuse 0.65
  brilliance 1.5
  specular 0.5    roughness 0.03
  reflection 0.05
 }
}
//-------------------------------------------------------
#declare Liquid_Mercury =
texture {
 pigment {
  colour rgb<0.827,0.827,0.827>
 }
 normal {
  ripples 0.8
  frequency 4
  scale <2.0, 2.0, 2.0>
 }
 finish {
  diffuse 0.65
  brilliance 6.0
  phong 1.0    phong_size 100    metallic
  reflection 0.65
 }
}
//-------------------------------------------------------
//To avoid duplications: TM_ = Texture Magic

#declare TM_Chrome_Metal =
texture {
 pigment {
  colour rgb<0.659,0.659,0.659>
 }
 finish {
  ambient 0.3
  diffuse 0.7
  brilliance 8.0
  specular 0.8    roughness 0.1
  reflection 0.15
 }
}
//-------------------------------------------------------
#declare TM_Brass_Metal =
texture {
 pigment {
  colour rgb<0.710,0.647,0.259>
 }
 finish {
  ambient 0.2
  diffuse 0.7
  brilliance 6.0
  phong 0.75    phong_size 80    metallic
  reflection 0.25
 }
}
//-------------------------------------------------------
#declare TM_Gold_Metal =
texture {
 pigment {
  colour rgb<0.847,0.847,0.098>
 }
 finish {
  ambient 0.2
  diffuse 0.7
  brilliance 6.0
  phong 0.75    phong_size 80    metallic
  reflection 0.25
 }
}
//-------------------------------------------------------
#declare TM_Bronze_Metal =
texture {
 pigment {
  colour rgb<0.549,0.467,0.137>
 }
 finish {
  ambient 0.2
  diffuse 0.7
  brilliance 6.0
  phong 0.75    phong_size 80    metallic
  reflection 0.25
 }
}
//-------------------------------------------------------
#declare TM_Copper_Metal =
texture {
 pigment {
  colour rgb<0.718,0.447,0.200>
 }
 finish {
  ambient 0.2
  diffuse 0.7
  brilliance 6.0
  phong 0.75    phong_size 80    metallic
  reflection 0.25
 }
}
//-------------------------------------------------------
#declare TM_Silver_Metal =
texture {
 pigment {
  colour rgb<0.898,0.910,0.976>
 }
 finish {
  ambient 0.2
  diffuse 0.7
  brilliance 6.0
  phong 0.75    phong_size 80    metallic
  reflection 0.25
 }
}
//-------------------------------------------------------
#declare TM_Polished_Chrome =
texture {
 pigment {
  colour rgb<0.200,0.200,0.200>
 }
 finish {
  diffuse 0.7
  brilliance 6.0
  phong 0.8    phong_size 120
  reflection 0.6
 }
}
//-------------------------------------------------------
#declare TM_Polished_Brass =
texture {
 pigment {
  colour rgb<0.576,0.420,0.192>
 }
 finish {
  diffuse 0.8
  brilliance 6.0
  phong 0.8    phong_size 120
  reflection 0.4
 }
}
//-------------------------------------------------------
#declare TM_New_Brass =
texture {
 pigment {
  colour rgb<0.698,0.557,0.369>
 }
 finish {
  ambient 0.35
  diffuse 1.0
  brilliance 10.0
  phong 0.41    phong_size 5
 }
}
//-------------------------------------------------------
#declare TM_Spun_Brass =
texture {
 pigment {
  colour rgb<0.698,0.557,0.369>
 }
 normal {
  waves 0.35
  frequency 2
  scale <0.01, 0.01, 0.01>
 }
 finish {
  ambient 0.35
  diffuse 1.0
  brilliance 10.0
  phong 0.41    phong_size 5
 }
}
//-------------------------------------------------------
#declare TM_Silver1 =
texture {
 pigment {
  colour rgb<0.937,0.929,0.827>
 }
 finish {
  ambient 0.25
  diffuse 0.65
  brilliance 6.0
  phong 1.0    phong_size 1    metallic
  reflection 0.45
 }
}
//-------------------------------------------------------
#declare TM_Silver2 =
texture {
 pigment {
  colour rgb<0.937,0.929,0.859>
 }
 finish {
  ambient 0.25
  diffuse 0.65
  brilliance 6.0
  phong 1.0    phong_size 1    metallic
  reflection 0.45
 }
}
//-------------------------------------------------------
#declare TM_Silver3 =
texture {
 pigment {
  colour rgb<0.937,0.929,0.898>
 }
 finish {
  ambient 0.25
  diffuse 0.65
  brilliance 6.0
  phong 1.0    phong_size 1    metallic
  reflection 0.45
 }
}
//-------------------------------------------------------
// Sort of a "Black Hills Gold", black, white, and orange
// specks or splotches.
#declare TM_Brass_Valley =
texture {
 pigment {
  granite
  color_map {
      [0.00 color rgb<0.820, 0.569, 0.459>]
      [0.30 color rgb<0.820, 0.569, 0.459>]
      [0.30 color rgb<0.000, 0.000, 0.000>]
      [0.60 color rgb<0.847, 0.847, 0.949>]
      [0.60 color rgb<0.820, 0.569, 0.459>]
      [1.00 color rgb<0.847, 0.847, 0.949>]
  }
 }
 finish {
  brilliance 6.0
  phong 0.75    metallic
  reflection 0.75
 }
}
//-------------------------------------------------------
#declare TM_Rusty_Iron =
texture {
 pigment {
  agate
  color_map {
      [0.00 color rgb<0.208, 0.098, 0.098>]
      [0.50 color rgb<0.247, 0.247, 0.008>]
      [0.50 color rgb<0.247, 0.247, 0.008>]
      [0.60 color rgb<0.298, 0.098, 0.098>]
      [0.60 color rgb<0.149, 0.098, 0.098>]
      [1.00 color rgb<0.149, 0.098, 0.098>]
  }
 }
}
//-------------------------------------------------------
#declare TM_Rust =
texture {
 pigment {
  spotted
  color_map {
      [0.00 color rgb<0.886, 0.510, 0.278>]
      [0.40 color rgb<0.698, 0.129, 0.000>]
      [0.40 color rgb<0.698, 0.129, 0.000>]
      [0.50 color rgb<0.686, 0.408, 0.078>]
      [0.50 color rgb<0.686, 0.408, 0.078>]
      [0.60 color rgb<0.486, 0.310, 0.278>]
      [0.60 color rgb<0.486, 0.310, 0.278>]
      [1.00 color rgb<0.886, 0.510, 0.278>]
  }
 }
}
//-------------------------------------------------------
// Combination of water and aluminium by David Anjo.
// interior {ior 1.33} to be added to object using this texture
#declare TM_Liquid_Metal =
texture {
 pigment {
  colour rgbf<0.549,0.498,0.447,0.749>
 }
 normal {
  ripples 0.75
  frequency 10
 }
 finish {
  diffuse 0.65
  brilliance 1.5
  specular 0.85    roughness 0.01    metallic
  reflection 0.45
 }
}

//-------------------------------------------------------
// Rusty Chrome texture by David Anjo
#declare TM_Rusty_Chrome =
texture {
 pigment {
  granite
  color_map {
      [0.00 color rgb<0.400, 0.400, 0.400>]
      [0.70 color rgb<0.498, 0.498, 0.498>]
      [0.70 color rgb<0.898, 0.518, 0.278>]
      [0.75 color rgb<0.698, 0.137, 0.000>]
      [0.80 color rgb<0.698, 0.400, 0.078>]
      [0.80 color rgb<0.698, 0.439, 0.078>]
      [0.85 color rgb<0.498, 0.298, 0.278>]
      [0.85 color rgb<0.498, 0.318, 0.278>]
      [0.90 color rgb<0.878, 0.498, 0.278>]
      [0.90 color rgb<0.498, 0.498, 0.498>]
      [1.00 color rgb<0.400, 0.400, 0.400>]
  }
 }
 finish {
  brilliance 6.0
  phong 0.25    metallic
  reflection 0.05
 }
}

//-------------------------------------------------------
// Gold texture by Ch. Gerber
#declare CG_Gold =
 texture {
  pigment {color BrightGold}
  finish {metallic 0.7 ambient 0.3 diffuse 0.9 brilliance 6 reflection 0.35 phong 0.75 phong_size 80}
 }

//-------------------------------------------------------
// Metallic texture macro by tek
/*Description : Metallic paint. Note that you can control the ambient brightness of 
               these textures using the #default setting.
               usage: pPigment  - whatever pigment you want on your surface;
                      fMetallic - value from 0 (not metallic) to 1 (very metallic).
               Little tip, try it on a white pigment, it gets a really gorgeous 
               silver-paint effect :)*/
               
#macro m_tMetallicMatte(pPigment, fMetallic)
	//base metallic layer
	texture {
		pigment {
			pPigment
		}
		finish {
			diffuse (1-fMetallic)
			specular fMetallic roughness .1 metallic 1
		}
	}
#end
	
#declare tGlossCoat =
	//gloss coating, this can be layered over anything to give a realistic glossy finish.
	texture {
		pigment {
			rgbt 1
		}
		finish {
			reflection {
				0.08,			//adjust this to simulate other glossy materials (glass should be a low number, a mirror would be a high number)
				1					//leave this, unless you want a dull looking material, in which case why are you using a gloss coating?! :)
				falloff 5 //this approximates fresnel reflections, without us needing to guess ior values.
			}
			conserve_energy
			phong 1 phong_size 200	//tune this according to your scene, it won't look perfect because it ignores the reflection falloff.
		}
	}

#macro tek_metallicGloss(pPigment, fMetallic)
	m_tMetallicMatte(pPigment, fMetallic)
	texture { tGlossCoat }
#end


//===================================================
//========== COLORED GLASS TEXTURES (TdG) ===========
//===================================================
#declare TdG_Red_Glass =
texture { Lead_Glass
 pigment { color rgbf<1, 0, 0, 0.5> }
}

#declare TdG_Green_Glass =
texture { Lead_Glass
 pigment { color rgbf<0, 1, 0, 0.5> }
}

#declare TdG_Blue_Glass =
texture { Lead_Glass
 pigment { color rgbf<0, 0, 1, 0.5> }
}

#declare TdG_Yellow_Glass =
texture { Lead_Glass
 pigment { color rgbf<1, 1, 0, 0.5> }
}

#declare TdG_BlueViolet_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.62, 0.37, 0.62, 0.5> }
}

#declare TdG_SkyBlue_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.2, 0.6, 0.8, 0.5> }
}

#declare TdG_DarkGreen_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.18, 0.31, 0.18, 0.5> }
}

#declare TdG_Orange_Glass =
texture { Lead_Glass
 pigment { color rgbf<1, 0.5, 0, 0.5> }
}

#declare TdG_OrangeRed_Glass =
texture { Lead_Glass
 pigment { color rgbf<1, 0.25, 0, 0.5> }
}

#declare TdG_LimeGreen_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.2, 0.8, 0.2, 0.5> }
}

#declare TdG_GreenYellow_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.5, 0.8, 0.4, 0.5> }
}

#declare TdG_DarkPurple_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.5, 0.1, 0.4, 0.5> }
}

#declare TdG_Ruby_Glass =
texture { Lead_Glass
 pigment { color rgbf<0.9, 0.1, 0.2, 0.5> }
}

//===================================================
//=============== SKY TEXTURES (TdG) ================
//===================================================
// Very clear Sky with white clouds (TdG98)
#declare Blue_Sky4 =
texture {
  pigment {
    granite
    turbulence 0.2
    color_map {
        [0.0, 0.3 color rgb <0.3, 0.9, 1.0>
                  color rgb <0.4, 0.8, 1.0>]
        [0.3, 1.0 color rgb <0.4, 0.8, 1.0>
                  color rgb <1.0, 1.0, 1.0>]
    }
  }
  scale .75
}

#declare TdG_SummerSky = 
texture {      
  pigment {
   granite
   color_map {
     [ 0.0     rgbft <1.0, 1.0, 1.0, 1.0, 1.0> ]
     [ 0.096085  rgbft <1.0, 1.0, 1.0, 0.9, 0.8> ]
     [ 0.199288  rgbft <1.0, 1.0, 1.0, 0.8, 0.6> ]
     [ 0.295374  rgbft <1.0, 1.0, 1.0, 0.7, 0.4> ]
     [ 0.398577  rgbft <1.0, 1.0, 1.0, 0.6, 0.2> ]
     [ 1.0     rgbft <1.0, 1.0, 1.0, 0.1, 0.01> ]
   }
   turbulence 0.2
   ramp_wave
  }      
  finish {
   ambient 1.0
   diffuse 0.0
  }      
  scale  <1.0, 0.75, 0.75>
}


//===================================================
//=============== GEOLOGICAL TEXTURES ===============
//===================================================
//  This texture was originally designed by Charles Fusner:
#declare CF_RoughStone = 
texture {      
  pigment {
   granite
   color_map {
     [ 0.0     rgbft <0.499564, 0.499564, 0.499564, 0.0, 0.0> ]
     [ 0.25    rgbft <0.649707, 0.649707, 0.649707, 0.0, 0.0> ]
     [ 0.5     rgbft <0.499858, 0.499858, 0.499858, 0.0, 0.0> ]
     [ 0.75    rgbft <0.699587, 0.699587, 0.699587, 0.0, 0.0> ]
     [ 1.0     rgbft <0.499644, 0.499644, 0.499644, 0.0, 0.0> ]
   }
   frequency 100.0
   ramp_wave
  }      
  normal {
   crackle , 1.0
   warp {
    turbulence <0.500164, 0.500364, 0.499804>
    omega 0.500404
    lambda 1.999712
   }
  }      
  finish {
   ambient 0.1
   diffuse 0.549996
   specular 0.100002
   roughness 1.0
  }      
}

//-------------------------------
// Textures by Ch. Gerber (1999):
//-------------------------------
#declare CG_Sand =
 texture {
    pigment {
        bozo
        color_map {
            [0.000  color rgb <0.900, 0.754, 0.600>]
            [0.356  color rgb <0.899, 0.755, 0.614>]
            [0.629  color rgb <0.900, 0.757, 0.623>]
            [1.000  color rgb <0.900, 0.754, 0.600>]
        }
        turbulence 1.000
    }
    normal {
        ripples 0.5000
        frequency 2.000
        turbulence 0.200
        octaves 10
        lambda 1.000
        scale <0.1000, 0.1000, 1.0000>
   }
   finish {
       diffuse 0.800
       ambient 0.200
       roughness 0.0500
   }
   scale 3.333
}

#declare CG_Rock =
 texture {
    pigment {
        bozo
        turbulence 0.5
        color_map {
            [0.00 0.29 color Gray80 color Gray85]
            [0.29 0.31 color Gray85 color Gray80]
            [0.31 0.43 color Gray80 color White ]
            [0.43 0.64 color White  color Gray65]
            [0.64 0.69 color Gray65 color Gray95]
            [0.69 1.00 color Gray95 color Gray80]
        }
        scale 20
    }
    finish {ambient 0.3 diffuse 0.8}
    normal {crackle 2 turbulence 0.5 scale <0.8, 1.6, 0.8>}
}
 texture {
    pigment {
        marble
        turbulence 1.0
        color_map {
            [0.00 0.20 color rgbf <0.79, 0.71, 0.76, 0.5>
                       color rgbf <0.53, 0.39, 0.42, 0.5>]
            [0.20 0.40 color rgbf <0.53, 0.39, 0.42, 0.5>
                       color rgbf <0.76, 0.66, 0.71, 0.5>]
            [0.40 0.60 color rgbf <0.76, 0.66, 0.71, 0.5>
                       color rgbf <0.88, 0.76, 0.83, 0.5>]
            [0.60 0.80 color rgbf <0.88, 0.76, 0.83, 0.5>
                       color rgbf <0.50, 0.40, 0.45, 0.5>]
            [0.80 1.00 color rgbf <0.50, 0.40, 0.45, 0.5>
                       color rgbf <0.79, 0.71, 0.76, 0.5>]
        }
        scale <2, 10, 10>
        rotate 90*z
    }
    finish {ambient 0.3 diffuse 0.8}
    normal {crackle 2 turbulence 0.5 scale <0.8, 1.6, 0.8>}
 }

#declare CG_Sandstone =
 texture {
    pigment {
        bozo
        turbulence 0.4
        octaves 3
        lambda 4
        omega 0.7
        color_map {
            [0.000, 0.154 color rgb <0.800, 0.651, 0.457> color rgb <0.796, 0.735, 0.637>]
            [0.154, 0.308 color rgb <0.796, 0.735, 0.637> color rgb <0.800, 0.651, 0.457>]
            [0.308, 0.444 color rgb <0.800, 0.651, 0.457> color rgb <0.694, 0.624, 0.504>]
            [0.444, 0.615 color rgb <0.694, 0.624, 0.504> color rgb <0.800, 0.651, 0.457>]
            [0.615, 0.812 color rgb <0.800, 0.651, 0.457> color rgb <0.725, 0.655, 0.551>]
            [0.812, 1.001 color rgb <0.725, 0.655, 0.551> color rgb <0.800, 0.651, 0.457>]
        }
        scale 3
    } 
    normal {
        bozo 0.2
        turbulence 0.5 
        slope_map {
            [0    < 0, 1>]
            [0.4  < 1, 1>]
            [0.45 < 0, 0>]
            [0.5  <-1, 1>]
            [1    < 0,-1>]
        }
        scale 0.2
    }
    finish {ambient 0.15 diffuse 0.9 roughness 0.2 crand 0.02}
 }

#declare CG_PolishedStone =
 texture {
    pigment {
        bozo
        turbulence 0.4
        octaves 3
        lambda 4
        omega 0.7
        color_map {
            [0.000, 0.154 color rgb <0.800, 0.651, 0.457> color rgb <0.796, 0.735, 0.637>]
            [0.154, 0.308 color rgb <0.796, 0.735, 0.637> color rgb <0.800, 0.651, 0.457>]
            [0.308, 0.444 color rgb <0.800, 0.651, 0.457> color rgb <0.694, 0.624, 0.504>]
            [0.444, 0.615 color rgb <0.694, 0.624, 0.504> color rgb <0.800, 0.651, 0.457>]
            [0.615, 0.812 color rgb <0.800, 0.651, 0.457> color rgb <0.725, 0.655, 0.551>]
            [0.812, 1.001 color rgb <0.725, 0.655, 0.551> color rgb <0.800, 0.651, 0.457>]
        }
        scale 3
    } 
    finish {ambient 0.15 diffuse 0.9 phong 0.8 phong_size 100}
 }


//---------------------------------------------------------------
// Textures by Sean Day (2005) IRTC, May/June First Place winner:
//---------------------------------------------------------------

#declare rock_base = 
texture {
  pigment {
    granite 
    triangle_wave 
    omega 0.6 
    lambda 3 
    turbulence 0.275 
    color_map {  
       [ 0.0 rgb <0.175, 0.175, 0.175> ] 
       [ 1.0 rgb <0.425, 0.425, 0.425> ] 
    } 
    scale 0.25 
  }
  finish { ambient 0 diffuse 0.5 }
}

#declare rock_tex_1 = 
texture {   
  pigment {
    wrinkles            
    turbulence 0.1   
    omega 0.7 
    lambda 4
    color_map {
       [ 0.0 rgbt <1, 1, 1, 1> ]// rgbt <0.15, 0.09, 0.015, 0.05> ] 
       [ 0.5 rgbt <1, 1, 1, 1> ]// rgbt <0.15, 0.09, 0.015, 0.05> ] 
       [ 0.5 rgbt <0.15, 0.09, 0.015, 1> ] //rgbt 1 ]
       [ 0.8 rgbt <0.15, 0.09, 0.015, 0.25> ] //rgbt 1 ]
       [ 1.0 rgbt <0.15, 0.091, 0.015, 0.1> ] //rgbt 1 ]
    }                         
    scale 25
  }
  finish { ambient 0 diffuse 0.45 specular 0 phong 0 }
}          

#declare rock_tex_2 = 
texture {   
  pigment {
    wrinkles  
    scallop_wave          
    turbulence 0.1   
    omega 0.7 
    lambda 4
    color_map {
       [ 0.0 rgbt <0.15, 0.09, 0.015, 0.1> ] //rgbt 1 ]
       [ 0.5 rgbt <0.15, 0.09, 0.015, 0.5> ] //rgbt 1 ]
       [ 0.75 rgbt <0.15, 0.091, 0.015, 1> ] //rgbt 1 ]
       [ 0.75 rgbt <1, 1, 1, 1> ]// rgbt <0.15, 0.09, 0.015, 0.05> ] 
       [ 1.0 rgbt <1, 1, 1, 1> ]// rgbt <0.15, 0.09, 0.015, 0.05> ] 
    }                         
    scale 15
  }
  finish { ambient 0 diffuse 0.45 specular 0 phong 0 }
}          

#declare rock_tex_3 = 
texture {   
  pigment {
    bozo 
    scallop_wave           
    turbulence 0.7 
    omega 0.7 
    lambda 4 
    octaves 10 
    scale 0.56
    color_map {
       [ 0.0 rgbt 1 ]
       [ 0.9 rgbt 1 ]
       [ 0.925 rgbt <0.0075, 0.06, 0.0005, 1> ] 
       [ 0.975 rgbt <0.0075, 0.06, 0.0005, 0.4> ] 
       [ 1.0 rgbt <0.0075, 0.06, 0.0005, 0> ] 
    }
  } 
  finish { ambient 0 diffuse 0.5 specular 0 phong 0 }
  scale 20
}

#declare rock_tex_4 = 
texture {   
  pigment {
    granite            
    turbulence 0.2 
    omega 0.6 
    lambda 2.5 
    color_map {
       [ 0.0 rgbt 1 ]
       [ 0.1 rgbt 1 ]
       [ 0.15 rgbt <0.1, 0.06, 0.01, 1> ] 
       [ 0.3 rgbt <0.1, 0.06, 0.01, 0.1> ] 
       [ 0.45 rgbt <0.1, 0.06, 0.01, 1> ] 
       [ 0.5 rgbt 1 ]
       [ 0.6 rgbt 1 ]
       [ 0.65 rgbt <0.0075, 0.06, 0.0005, 1> ] 
       [ 0.75 rgbt <0.0075, 0.06, 0.0005, 0.05> ] 
       [ 0.9 rgbt <0.0075, 0.06, 0.0005, 1> ] 
       [ 0.95 rgbt 1 ]
       [ 1.0 rgbt 1 ]
    }
    scale 0.1
  }          
  finish { ambient 0 diffuse 0.45 specular 0 phong 0 }
}

#declare rock_tex_5 = 
texture {   
  pigment {
    gradient y            
    turbulence 0.0085
    omega 0.575 
    lambda 3.0 
    scale <1, 1, 1>
    color_map {
       [ 0.0 rgbt <0.05, 0.01, 0.0001, 0.025> ]
       [ 0.4 rgbt <0.085, 0.025, 0.0003, 0.075> ]
       [ 0.65 rgbt <0.125, 0.04, 0.0006, 0.3> ]
       [ 0.7 rgbt <0.2, 0.15, 0.005, 0.75> ]
       [ 0.8 rgbt <0.3, 0.25, 0.0125, 1> ]
       [ 0.8 rgbt <1, 1, 1, 1> ]
       [ 1.0 rgbt <1, 1, 1, 1> ]
    }       
    translate <0, 0.4, 0>
    scale <300, 300, 300>
  }  
}

#declare SD_RockTex_dry = 
  texture { rock_base scale 10 }
  texture { rock_tex_1 }
  texture { rock_tex_2 }
  texture { rock_tex_3 }
  texture { rock_tex_4 }
  texture { rock_tex_5 finish {ambient 0 diffuse 0.45 specular 0 phong 0 } }  

#declare SD_RockTex_wet = 
  texture { rock_base scale 10 }
  texture { rock_tex_1 }
  texture { rock_tex_2 }
  texture { rock_tex_3 }
  texture { rock_tex_4 }
  texture { rock_tex_5 finish {ambient 0 diffuse 0.35 specular 0.5 roughness 0.001 phong 0.5 phong_size 150 } }

#declare SD_RockTex = 
  texture {
    gradient y    
    texture_map {
       [ 0.0   SD_RockTex_wet scale 0.01 ]
       [ 0.25  SD_RockTex_wet scale 0.01 ]
       [ 0.425 SD_RockTex_dry scale 0.01 ]
       [ 1.0   SD_RockTex_dry scale 0.01 ]
    }
    scale 100        
  }



//===================================================
//================= TEXTILE TEXTURES ================
//===================================================

#declare CG_Leather =
 texture {
  pigment {color Gray35}
  normal {wrinkles 0.2 turbulence 0.5 scale 0.001}
  finish {ambient 0.2 diffuse 0.9}
 }

#declare Redish_Leather =
 texture {
  pigment {rgb <0.531, 0.35, 0.35>}
  normal {wrinkles 0.2 turbulence 0.5 scale 0.001}
  finish {ambient 0.2 diffuse 0.9}
 }

#declare CG_Tissue =
 texture {
  pigment {color rgbt <0.118, 0.757, 0.576, 0.6>}
  normal {wrinkles 0.5 turbulence 0.5 scale 0.01}
  finish {ambient 0.2 diffuse 0.9}
 }  

#declare CG_BTex =
 texture {
    pigment {
        gradient x
        turbulence 0.3 octaves 2 omega 0.12 lambda 2.5
        color_map {
            [0.50 color rgb <1.0, 0.7, 0.0>]
            [1.00 color rgb <0.5, 0.4, 0.3>]
        }
        frequency 5
    }
    finish {
        ambient 0.3
        diffuse 0.9
        specular 1
        metallic
        reflection 0.15
    }
    rotate z*90
    scale <0.15, 0.15, 0.05>
 }


//===================================================
//================== WOOD TEXTURES ==================
//===================================================

//============= NR_Wood (2003) =============
#declare wood_grain = pigment {
  wrinkles
  warp {cylindrical orientation y dist_exp 1}
  warp {turbulence 1.25}
  scale <.5,1,30> 
  warp {turbulence .25}
  scale <1,1,10> 
  warp {
    black_hole <0, 0.5, 0>, 1
    falloff 2
    strength 1.5
    repeat 7
    turbulence 2
    inverse
  }
}

#declare wood_normal = function {
  pigment {
    wrinkles
    warp {cylindrical orientation y dist_exp 1}
    warp {turbulence 1.25}
    scale <.5,1,30> 
    warp {turbulence .25}
    scale <1,1,5> 
    color_map {[0 rgb 0.0] [1 rgb 1.0]}
  }
}

#macro GammaColor (Color,Gamma)
  rgb <pow(Color.red,Gamma),pow(Color.green,Gamma),pow(Color.blue,Gamma)>
#end

#declare rseed = seed(3);
#declare h = 1.15+rand(rseed)*.1;
#declare woodmap = color_map {
    [0.00 GammaColor (<0.949, 0.792, 0.514 >,h)]
    [0.30 GammaColor (<0.855, 0.651, 0.376 >,h)]
    [0.60 GammaColor (<0.831, 0.596, 0.275 >,h)]
    [0.90 GammaColor (<0.620, 0.447, 0.204 >,h)]
}
#declare NR_Wood = texture {
    pigment {wood_grain color_map {woodmap} ramp_wave}
    normal {function{wood_normal(x,y,z).grey*.5}}
    finish {specular .1}
}