POV-Ray : Newsgroups : povray.general : Bug?: Radiosity and Transparent Object Server Time
15 Nov 2024 15:18:24 EST (-0500)
  Bug?: Radiosity and Transparent Object (Message 1 to 4 of 4)  
From: anson chu
Subject: Bug?: Radiosity and Transparent Object
Date: 2 Aug 2004 15:55:00
Message: <web.410e9b4e522128caa123415d0@news.povray.org>
It seems a ray traced (from the camera) through the transparent object
(entering and then exiting) and hitting a diffuse surface is treated
differently than one that hits the surface directly when considering
"radiosity".

Initially, I thought the cause had to do with media interaction, but after
commenting out the 'interior' and 'media' and 'hollow', I found the problem
still exists.  Translating the 'box' along the 'y-axis' confirms that the
problem only occurs when the primary camera ray first passes through the
box before hitting a diffuse surface.  Moving the right along the x-axis
also visualizes the problem.

Is this a known bug, or Is there a setting in the scene language that could
fix this???

* See 'povray.text.scene-files' (with subject "Radiosity and Media Bug???")
for image rendered using my version of POV-Ray v3.6, where the bounds of
the media box container is visualized.

Below is the scene file:



#include "colors.inc"

global_settings
{
    assumed_gamma 1.0
    max_trace_level 5
    noise_generator 3

#if(1)
    radiosity
    {
        media on
        count 32
        recursion_limit 3
        nearest_count 10
        error_bound 0.5
    }
#end
}

background { color White }

//----------------------------------------------
// CAMERA
//----------------------------------------------
camera {
  location <2, 4, 12>
  look_at <0,1, 0>
  up <0,1,0>
  angle 60
}

//----------------------------------------------
// Media
//----------------------------------------------
box {
    <0,0,0>, <1,1,1>
    texture {
        pigment {color rgbf 1}
    }
#if(0)
 interior {
  media {
   scattering { 1, rgb 0.2}
   intervals 1
   samples 20
   method 3
  }
 }
    hollow
#end
   scale <6,6,6>
   translate <-2,.3,0>
}

//----------------------------------------------
// GROUND
//----------------------------------------------
object {
    isosurface {
     function {y}
     contained_by {box {<-100,-3,-100>, < 100, 1, 100>}}
     texture {
            finish {
               ambient 0.0
               diffuse 1.0
               specular 0.0
            }
            pigment { color rgb <1,1,1> }
        }
    }
   hollow
}

//----------------------------------------------
//  WALL
//----------------------------------------------
box { <-2.0, -0.2, -2.0>, <2.0, 0.2, 2.0>
    finish {
       ambient 0.0
       diffuse 0.9
    }
    pigment { color rgb <1,1,1> }

    scale 5
    rotate <0, 0, -90>
    translate <-4,5,0>
}


Post a reply to this message

From: Christoph Hormann
Subject: Re: Bug?: Radiosity and Transparent Object
Date: 2 Aug 2004 16:05:02
Message: <cem6k1$abu$1@chho.imagico.de>
anson chu wrote:
> It seems a ray traced (from the camera) through the transparent object
> (entering and then exiting) and hitting a diffuse surface is treated
> differently than one that hits the surface directly when considering
> "radiosity".

Your max_trace_level simply is not high enough, radiosity rays increase 
the trace level like other rays and if they reach max_trace_level no 
more rays are sent.

Christoph

-- 
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 06 Jul. 2004 _____./\/^>_*_<^\/\.______


Post a reply to this message

From: anson chu
Subject: Re: Bug?: Radiosity and Transparent Object
Date: 2 Aug 2004 16:45:00
Message: <web.410ea71612e11a6ba123415d0@news.povray.org>
> Your max_trace_level simply is not high enough, radiosity rays increase
> the trace level like other rays and if they reach max_trace_level no
> more rays are sent.

Great!  That fixed it.  Thanks Christoph.


Post a reply to this message

From: Mike Andrews
Subject: Re: Bug?: Radiosity and Transparent Object
Date: 4 Aug 2004 08:20:01
Message: <web.4110d40012e11a6b2e746c9a0@news.povray.org>
Christoph Hormann <chr### [at] gmxde> wrote:
> anson chu wrote:
> > It seems a ray traced (from the camera) through the transparent object
> > (entering and then exiting) and hitting a diffuse surface is treated
> > differently than one that hits the surface directly when considering
> > "radiosity".
>
> Your max_trace_level simply is not high enough, radiosity rays increase
> the trace level like other rays and if they reach max_trace_level no
> more rays are sent.

Actually, this isn't quite complete. If the ray reaches the minimum of
recursion_limit or max_trace_level then no more rays are sent.

The scene file I'm appending shows this effect.

>
> Christoph
>
> --
> POV-Ray tutorials, include files, Sim-POV,
> HCR-Edit and more: http://www.tu-bs.de/~y0013390/
> Last updated 06 Jul. 2004 _____.//^>_*_<^/.______

Bye for now,

Mike Andrews.

// --- radtrans.pov ---

// Radiosity and transparent surfaces
// the only change in each frame is the recursion limit

// run with the following command line:
// +w160 +h120 -a +kff5

global_settings {
  max_trace_level 100
  assumed_gamma 1
  ambient_light 1
  radiosity {
    pretrace_start 1
    pretrace_end   1
    count 100
    nearest_count 10
    error_bound 0.2
    recursion_limit max(frame_number,1)
    low_error_factor 0.01
    gray_threshold 0.0
    minimum_reuse 1e-4
    brightness 1
    adc_bailout 1e-10
    media on
  }
}

camera {
  ultra_wide_angle location y-z*10
  look_at <0,-0.8,-1> angle 35
}

box { -<20,5,20>,<20,-2,20>
  pigment { rgb <.9,.85,.75> }
  finish { diffuse 0.8 ambient 0 }
}

// light source - ambient
sphere { <1,0.5,1>, 0.5
  pigment { rgb 10*<1,.03,.05> }
  finish { ambient 1 diffuse 0 }
}

// light source - media, one extra transparent surface
sphere { <-1,0.5,1>, 0.5
  pigment { rgbf 1 }
  finish { ambient 0 diffuse 0 }
  interior {
    media {
      emission rgb 10*<.03,1,.05>
      samples 1,1 intervals 1 confidence .1
    }
  }
  hollow
}

// simple refractive sphere - two transparent surfaces
sphere { 0, 0.8 translate <-1,-1.2,-1>
  pigment { rgbf 1 }
  finish { diffuse 0.1 ambient 0
    reflection {1 fresnel on}
    conserve_energy
  }
  interior { ior 1.4 }
}

// double refractive sphere - four transparent surfaces
union {
  sphere { 0, 0.8
    pigment { rgbf 1 }
    finish { diffuse 0.1 ambient 0
      reflection {1 fresnel on}
      conserve_energy
    }
    interior { ior 1.25 }
  }
  sphere { 0, 0.7
    pigment { rgbf 1 }
    finish { diffuse 0 ambient 0 }
    interior { ior 1.4 }
  }
  translate <1,-1.2,-1>
}


Post a reply to this message

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