POV-Ray : Newsgroups : povray.newusers : pigment relative to normal vector? : Re: pigment relative to normal vector? Server Time
4 Sep 2024 18:11:58 EDT (-0400)
  Re: pigment relative to normal vector?  
From: Tom Melly
Date: 10 Oct 2002 07:03:51
Message: <3da55e97$1@news.povray.org>
"Tom Melly" <tom### [at] tomandlucouk> wrote in message
news:3da54db2$1@news.povray.org...

<snip>

Here's a more complex (but not entirely succesful) example:


#version 3.5;

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

global_settings {
  ambient_light 0
  assumed_gamma 1.0
  radiosity {
    pretrace_start 0.08           // start pretrace at this size
    pretrace_end   0.04           // end pretrace at this size
    count 35                      // higher -> higher quality (1..1600) [35]
    nearest_count 5               // higher -> higher quality (1..10) [5]
    error_bound 1.8               // higher -> smoother, less accurate [1.8]
    recursion_limit 3             // how much interreflections are calculated
(1..5+) [3]
    low_error_factor .5           // reduce error_bound during last pretrace
step
    gray_threshold 0.8            // increase for weakening colors (0..1) [0]
    minimum_reuse 0.015           // reuse of old radiosity samples [0.015]
    brightness 1                  // brightness of radiosity effects (0..1) [1]

    adc_bailout 0.01/2
  }
}

// ----------------------------------------

camera {
  location  <0.0, 5, -10.0>
  look_at   <0.0, 0.0,  0.0>
}

sky_sphere {
  pigment {
    wrinkles
    color_map {
      [0.0 rgb <0.6,0.7,1.0>]
      [0.7 rgb <0.0,0.1,0.8>]
    }
  }
}

light_source {
  <0, 0, 0>            // light's position (translated below)
  color rgb <1, 1, 1>  // light's color
  translate <-30, 30, -30>
}

// ----------------------------------------

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

#declare SnowTex =
texture{
  pigment{rgb <0.5,0.5,1>} //<0.9,0.9,1.9>}
  finish{ambient 0.10 diffuse 0.85}
  normal{
    average 2
    normal_map{
      [dents 2 scale 1/25]
      [bozo 1 scale 4 turbulence 0.75]
    }
  }
}

#declare RockTex =
texture{
  marble rotate z*90 scale 10 turbulence 0.5
  texture_map{
    [0.9 BaseRockTex scale 0.01]
    [0.9 bozo scale 10 texture_map{[0.5 BaseRockTex][0.5 SnowTex]}]
  }
}

#declare MountTex =
texture{
  slope y
  texture_map{
    [0.60 RockTex] // BaseRockTex scale 0.01] //[0.64 RockTex]
    [0.62 SnowTex]
  }
}


#declare MountMFFunc = function(x,y,z){f_ridged_mf(x,y,z, 0.9, 5, 10, 0.75, 5,
0)}
#declare MountFunc = function(x,y,z){y + MountMFFunc(x,0,z)*2}

#declare Mount =
isosurface{
  function{MountFunc(x,y,z)}
  contained_by{box{<-15,-5,-15>,<15,5,15>}}
  accuracy 0.001
  max_gradient 10 // 1 for ng
  //scale 100
  texture{MountTex}
  scale 10
}


object{Mount}


Post a reply to this message

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