POV-Ray : Newsgroups : povray.programming : Ken: Paging Mr. Nathan Kopp Sir : Re: Ken: Paging Mr. Nathan Kopp Sir Server Time
28 Jul 2024 22:29:55 EDT (-0400)
  Re: Ken: Paging Mr. Nathan Kopp Sir  
From: Nathan Kopp
Date: 20 Mar 1999 12:48:15
Message: <36F3DF04.A48ED01B@Kopp.com>
Ken wrote:
> 
> Greetings Mr. Nathan Kopp Sir,
> 
>    A couple of quick questions in regards to the Photon feature of your
>  newest patch. There are statistics available when using the photon feature.
> 
>   The first is a counter in the lower left of the window frame. If you are
>  lucky enough to get your scene description set up correctly it starts to
>  display two pieces of information when parsing the scene. One number to
>  the left for the photon map and a second number in parenthesis. What are
>  the two numbers and what may be learned from them as they are displayed ?

This counter gets updated every 500 photons that are shot.  The first number is
how many photons have been shot at the current object.  The number in
parentheses is how many total photons have been stored in the scene.  Thus, the
first number will keep getting reset (as POV finishes one light/object
combination and moves on to another).  For example, if you have three lights
shooting photons at three objects, you'll see this first counter start at zero
3x3=9 times.  The second counter will just keep accumulating.  This is useful
in a few ways.  First, if you notice that one object gets a lot more photons
than another object, you may need to adjust the settings (well, unless one is
tiny and the other object is huge).  Secondly, you can see if the photons
getting shot are actually being stored or not.  They will not be stored if
either a) they miss the object they were shot at, or b) they hit the object but
never hit anything else in the scene (bounce off into infinity).

>   Second question is in regards to the statistics reported in the message
>  window when a render is finished. Here you have as many as four statistics
>  returned - that is the most I have seen so far anyway.
> 
>  For example I just finished a render with these reported results:
> 
>       Photons:
>           Shot - 245,000
>         Stored - 117,000

Like I explained above, not all photons shot are stored.  The photons are shot
at the object's bounding box, so some are bound to miss the object.  The ratio
of shot to stored that you have here is pretty good.

> 
>  Priority Que:
>         Insert - 124,000
>        Removed -     165

This one was for some profiling/debugging that I was doing.  When photons are
gathered, they are stored in a priority queue, so that only the ones closest to
the gather-point are kept.  For example, if you use "gather 20,100" and more
than 100 photons are found in the search radius, some will have to be discarded
(removed from the priority queue).  So in this scene, you very rarely gathered
more than the maximum number of photons.  This is a good thing for render time.

>   Thirdly in regards to using the reflection feature of the Photon
>  process I would like to know what kind of intensity return to
>  expect from a reflected ray after one bounce. I don't believe I
>  am seeing anything close to 100% coming off of a smooth surface
>  with a reflection value of 1 and landing on a surface with a
>  diffuse 1 ambient 0 finish statement.
>   The reflected light seems more on the order of something closer
>  to 60% - 70% of the original. Is this again a result of user
>  chosen parameters or is this a known characteristic of the process ?
>  Not that I am complaining mind you. Even 15% returned of the
>  reflected light intensity is better than nothing at all.

If you use reflection 1, you should get 100% reflection.  Actually,
I just ran a test comparing a real (photon) reflection with a fake
reflection (mad with a light shining through a hole) and they
were of the same brightness.  I'll cut&paste the scene below.

>   Thank you for taking the time to read this and I am really enjoying
>  the new art coming from my computer.

Your welcome.

>   You dun guud things Mr. Nathan Kopp Sir.

Thanks!

-Nathan Kopp

================== reflection test code ===================

#include "colors.inc"
#include "textures.inc"
#include "stones.inc"

/*
 This scene has a floor plane, a wall, and two 'mirrors'.
 
 The mirror on the right is a real mirror that uses photon mapping.
 
 The 'mirror' on the left is really just a hole cut in the wall
 so that a light source on the other side can shine through so
 that it looks like a mirror.
*/

#declare phd=.6; // lots of photons for sharp edge

global_settings{
  ambient_light 0
  photons {
    gather 20, 100
    radius .05*phd*sqrt(20)/2, 1 // only one gather size
                                 // (all photons are the same density)
    autostop 0
    jitter .4
  }
  
}

camera
{
  location <6,2.8,0>
  look_at <0,0,0>
}

// here's the 'real' light source
light_source{
  <5,5,0>
  color White
}
 
// place another light source on the other side
// of the wall to do a fake reflection through
// a hole in the wall
light_source{
  <-5,5,0>
  color White
  photons{reflection off refraction off} // don't bother
}

// flore plane
plane{y,0 pigment{checker}}

// the wall
difference{
  box{-1,1 scale<.05,100,100>}
  
  box{ // hole for fake mirror
    -1,1
    translate <0,1,-1.5>
  }
  
  box{ // hole for real mirror
    -1,1
    translate <0,1,1.5>
  }
  
  pigment{checker Red,White}
}

box{ // real mirror
  -1,1
  scale<.05,1,1>
  translate <0,1,1.5>
  
  pigment{ color White }
  finish{ diffuse 0 ambient 0 reflection 1}

  photons {
    density 0.02*phd//*1.5
    reflection on
    ignore_photons
  }
}


Post a reply to this message

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