| 
  | 
Mike Williams wrote:
> I am trying to setup a scene underwater. I am not yet good with media. Does
> anyone have ideas how to make a good underwater media?
I've found that using low media sample of 1 often produces adequate
results, where 2 or 3 give blotchy results, not looking decent until
samples ot 20...and sample of 1 is a lot quicker ;)
also I habitually use confidence of 0.0001 and variance of 1.
to get underwater sun-beams, make a large hollow box, place camera
within.  place a light source external to the box, put a sphere with
a turbulent pattern of your choice varying from opaque to transmit 1
around that light.  this gives a nice texture on the surface of the
water, and beams of light.  for water colour, try a fade distance
appropriate to scene, and a blue emission colour.
-- 
--Tim Cook
http://empyrean.scifi-fantasy.com
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
 
 Post a reply to this message 
 | 
  | 
 | 
  | 
"Mike Williams" <mic### [at] quixnet net> wrote in message
news:3e1e4d4a@news.povray.org...
> I am trying to setup a scene underwater. I am not yet good with media. Does
> anyone have ideas how to make a good underwater media?
>
> thanks
>
Here's where I got to with this...
#version 3.5;
#include "colors.inc"
#include "functions.inc"
#declare Photon_sp    = 0.2; //.2
#declare Cont_rad     = 35; // 35
#declare Sea_col      = <1,1,1,1>; //<0.5,0.9,1.0,1.0>;
#declare Sea_medcol   = <0.8,0.2,0.1>*0.75; // 0.75
#declare Dens_min     = 0.1;//.1
#declare Cam_z        = -15;
#declare Do_sea       = true;
#if(abs(Cam_z)+10>(Cont_rad))
  Camera too far away!
#end
global_settings {
  assumed_gamma 1.0
  ambient_light 0
  photons{
    spacing Photon_sp
    autostop 0 jitter 0.4
    media 100
    save_file "seabed.ph"
    //load_file "seabed.ph"
  }
}
#declare Dens_func = function(x,y,z){min(1,Dens_min + pow(x/(Cont_rad),2) +
pow(z/(Cont_rad),2))}
#declare Sea_media =
media{
  method 3
  intervals 10
  samples 3,15
  scattering {1,0.025 extinction 0.8} //0.025  0.8
  absorption Sea_medcol
  density{function{Dens_func(x,y,z)}}
}
// ----------------------------------------
camera {
  location  <0.0, 0.0, Cam_z>
  look_at   <0.0, -5.0, 35>
}
sky_sphere {
  pigment {
    wrinkles scale 0.25
    color_map {
      [0.0 rgb <0.6,0.7,1.0>]
      [0.7 rgb <0.2,0.4,0.8>]
    }
  }
}
light_source {
  <0, 0, 0>
  color rgb <1, 1, 1>*5
  media_interaction on
  media_attenuation on
  fade_distance 1500
  fade_power 2
  translate <1000, 2000, -500>
}
// ----------------------------------------
#declare Bed_func = function(x,y,z){
  y +
  5 +
  (sin(x*5 - sin(z + f_noise3d(x,0,z))*1)/20) -
  (sin((x+z)*1 -
  sin(z + f_noise3d(x,0,z))*1)/30)
}
#declare Bed_base =
difference{
  isosurface {
    function { Bed_func(x, y, z) }
    contained_by {sphere{0,Cont_rad}}
    accuracy 0.001
    max_gradient 2
    rotate y*35
  }
  plane{z,Cam_z-10}
  pigment{rgb<0.9,0.9,0.6>}
}
#declare Sea_func = function(x,y,z){y - 5}
#declare Sea_top =
difference{
  isosurface{
    function { Sea_func(x*1, y*1, z*1) }
    contained_by {sphere{0,Cont_rad}}
    accuracy 0.001
    max_gradient 5
    rotate y*25
  }
  plane{z,Cam_z-10}
  pigment{rgbf Sea_col}
  normal{bozo 5 scale 1/4}
  hollow
  photons{target refraction on reflection on}
  finish{
    reflection{fresnel on}
    ambient 0 diffuse 0 conserve_energy
  }
  interior{
    ior 1.34
    media{Sea_media}
  }
}
#declare Wall =
difference{
  sphere{0,Cont_rad}
  sphere{0,Cont_rad - 0.01}
  plane{y,-7}
  plane{-y,-7.5}
  plane{z,Cam_z-10}
  pigment{rgb 0}
  photons{collect off}
}
object{Bed_base}
object{Sea_top}
object{Wall}
sphere{
  0,4
  scale <1,1.5,1>
  pigment{rgb 0.5}
  normal{agate scale 10}
  normal{granite scale 1/4}
  translate <0,-3,0>
}
 
 Post a reply to this message 
 | 
  |