POV-Ray : Newsgroups : povray.binaries.images : WwW IRTC WIP [12.8kb] : Re: WwW IRTC WIP [12.8kb] Server Time
16 Aug 2024 16:18:59 EDT (-0400)
  Re: WwW IRTC WIP [12.8kb]  
From: Tom Melly
Date: 15 Jan 2002 16:57:51
Message: <3c44a5df@news.povray.org>
"Hugo" <hua### [at] post3teledk> wrote in message
news:3c44a2c1$1@news.povray.org...
> Apart from signatures and stuff, I'd like to comment the snow.  :o)  I'm
> crazy with snow and ice on pictures.  How did you do this?
>

Me to - I think over half my irtc subs have had snow. I have a feeling that
to model it correctly, some sort of sub-surface scattering is needed. As an
alternative strategy, I keep meaning to do a test with quite a reflective
material, but with a fine granite normal.

Well, here's the full code so far, but the snow and mountain textures are
fairly contained.

#version 3.5;

#include "colors.inc"
#include "functions.inc"

global_settings {
  assumed_gamma 1.0
  max_trace_level 10
}


camera {
  location  <0.0,2.0, 0.0>
  look_at   <0.0,1.0,20.0>
}

light_source {
  <0, 0, 0>
  color rgb <1, 1, 1>*1
  translate <150000, 200000, 50000>
  media_attenuation on
}

#declare baseRockTex =
texture{
  pigment{granite pigment_map{[0.0 Black][0.5 Gray10][1.0 Gray50]}}
  finish{ambient 0 diffuse 0.8}
  normal{
    average 2 scale 5
    normal_map{
      [dents 30 scale 1 ]
      [granite 30 scale 1 turbulence 0.25]
      [marble 30 scale 1 turbulence 0.5]
      [crackle 30 scale 1 turbulence 0.5]
    }
  }
}

#declare snowTex =
texture{
  pigment{rgb<0.9,0.9,1.3>}
  finish{ambient 0.10 diffuse 0.85}
  // pigment{rgb<0.8,0.8,1>}
  // finish{ambient 0.1 diffuse 1}
  normal{
    average 2
    normal_map{
      [dents 1 scale 1/25]
      [bozo 1 scale 2]
    }
  }
}

#declare rockTex =
texture{
  marble rotate z*90 scale 10 turbulence 0.5
  texture_map{
    [0.9 baseRockTex]
    [0.9 bozo scale 10 texture_map{[0.5 baseRockTex][0.5 snowTex]}]
  }
}

#declare GBaseTex =
texture{
  slope y
  texture_map{
    [0.64 rockTex]
    [0.66 snowTex]
  }
}

#declare GroundMFFunc = function(x,y,z){f_ridged_mf(x,y,z, 0.9, 5, 10, 0.75,
1, 0)}
#declare GroundFunc = function(x,y,z){y - (GroundMFFunc(x/15,0,z/15) *
min(((x/10)^2 + (z/10)^2), 25))}
#declare Ground =
isosurface{
  function{GroundFunc(x,y,z)}
  contained_by{box{<-50,-1,0>,<50,3000,50>}} //
<-5000,-100,-1000>,<5000,5000,5000> // max ht 1611.46
  accuracy 0.001
  max_gradient 10
  scale 100
  translate y*-3
  translate z*-100
}

  object{
    Ground
    texture{GBaseTex}
  }


Post a reply to this message

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