POV-Ray : Newsgroups : povray.programming : Photons, radiosity ? : Photons, radiosity ? Server Time
6 Oct 2024 13:49:32 EDT (-0400)
  Photons, radiosity ?  
From: Rafal 'Raf256' Maj
Date: 21 Nov 2002 14:26:38
Message: <Xns92CDCF6276D24raf256com@204.213.191.226>
Hello,
I think that I have some idea that may speed up renders, BUT i'm still 
"lame" in Pov code, so following ideas might seem very stupid :-/ is so - 
please tell me ;)

I see that using photons and/or radiosity (both - with big count/spacing) 
terrible slows down render.

If I understood corretly - each photons is saved, and most important 
function needs to check if there is a photon that hits some (x,y,z) point 
(with some tollerance ofcourse).

Let's discuss this problem in 2-D version - photons shining on plane (on 
line) :

12345678 = x
-------- plane y=0

**-*----

there are 2 photons, and bin-tree (in 3d - octall-tree) stors them in 
format :

is there any photon in 1..4 ? etc...

    root
    / \  
  1-4  5-8(no)
 /   \
1-2  2-3(no)
/ \
*  *

is this correct ?

If so, then searching this tree (for large numbers of photons, like 80 MB 
ram) tooks so much time and slows down *render* time (I know that photon-
shooting is ofcourse bigger fot bigger count).

So, any algrithm that will be able to 
a) remember (x,y,z) point
b) tell is ther some point in (x,y,z) - (x+e,y+e,z+e) area

that will be faster then current implementation - will speed up rendering ?

If so - I have some promising ideas to test :)

Any opinions, suggestions are welcomed, I want to do somthing for POV but  
need Yours help :P

-- 
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M


Post a reply to this message

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