POV-Ray : Newsgroups : povray.newusers : How to make total reflectance? : Re: How to make total reflectance? Server Time
29 Jul 2024 16:23:25 EDT (-0400)
  Re: How to make total reflectance?  
From: Brian Elliott
Date: 20 Jun 2005 11:52:40
Message: <42b6e648$1@news.povray.org>
"Ziyan" <beg### [at] hotmailcom> wrote in message 
news:web.42b6bda81ae01518291693fd0@news.povray.org...
> Such as, from glas to air or from water to air.
> I know the critical angle of total reflectance from glas to air is 42 
> grad,
> and from water to air 49 grad.
> I tried times, but there's still refraction.
> How to achieve that?
> Thanks a lot.

Hi Ziyan,

Without an example of what you've tried, I'm not sure what you might have 
missed.  PoV-Ray handles the boundary between refraction and Total Internal 
Reflection as one expects, according to the indexes of refraction of 
transmitting materials.  There's nothing special to do to make T.I.R in 
PoV-Ray except to have the camera be in the right place.

Obviously to see T.I.R, the camera must be inside (or look through) the 
heavier material, looking at a material boundary passing out into lighter 
material (or the "air" of unoccupied spaces in your scene).

Here's a quick example.  On the "water's" inner surface, you'll see 
"skylight" where there is normal refraction; and reflected objects from the 
bottom where there is T.I.R.

HTH
Cheers,
   Brian

-- code --

#include "colors.inc"

light_source {<5,50,5> rgb <1,.8,.6>}

background {SkyBlue}
// This will show through where there is not Total Internal Reflection

#declare Depth = 5;

camera  // located "under-water", looking up to air above
{ location <0,-(Depth - 0.1),-5>
  look_at <0,-2.5,0>
  angle 67}


plane  // The usual cliche, as good as 'printf ("Hello, world!\n");'
{ y,-Depth
  texture
  { pigment {checker color rgb 1 color rgb 0 scale 2}
    finish  {diffuse 0.85}
  }
}

plane
/* Represents the water volume and surface above.
   The camera is inside this object with IOR 1.333 (planes are SOLID!!)
   Invert the plane's normal to -y and the T.I.R vanishes (as it should)
*/
{ y,0
  texture
  { pigment { color rgbt 1 }
    normal  { ripples 0.3 frequency 1 }
    finish
    { reflection {0.04, 1.0 fresnel}
      conserve_energy
      ambient 0  diffuse 0
    }
  }
  interior { ior 1.333 }
}

sphere
{ <0, (-Depth)+1, 7>, 1
  texture { pigment {colour Red} finish {diffuse 0.85 specular 0.7}}
}

cone
{ <-4, -Depth, 5>, 1,   <-4, -Depth+1.5, 5>, 0
  texture { pigment {colour Yellow} finish {diffuse 0.95 specular 0.7}}
}


Post a reply to this message

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