POV-Ray : Newsgroups : povray.unofficial.patches : ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g Server Time
1 Nov 2024 21:19:26 EDT (-0400)
  ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g (Message 1 to 7 of 7)  
From: Stephane Marty
Subject: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 25 May 2000 19:17:54
Message: <392DB3DC.BC0@wanadoo.fr>
Hello,

One year ago, I wrote a patch for PoV 3.1g that implements a stochastic
ray-tracing technique using hemisphere sampling (Monte Carlo
integration) to compute global illumination.  This technique is a bit
different than the monte carlo technique already existant in PoV, but it
gives pretty nice, more "radiosity-esque" and interesting results.  In
fact, the effect of inter-diffuse reflection is much more realistic and
distinctly visible.  The hemisphere sampling distribution can be
computed by 8 methods, each of them giving differents rendering results.
The complete illustrated html documentation, the source code, and a
patched WinPoV executable can be downloadable from my web page :
http://perso.wanadoo.fr/albedo/patchedpov.html
Mr Kopp (a.k.a. Nathan), if you think this patch is interesting enough
to become a part of the next MegaPoV release, feel free to include it.
Yes, it sounds like an authorization... ;o)
In a near future, I will probably improve it by adding a few more
options.

Best regards,

Stephane Marty
Computer Graphics Software
- - - - - - - -
http://perso.wanadoo.fr/albedo


Post a reply to this message

From: Nathan Kopp
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 25 May 2000 21:02:44
Message: <392dcd34@news.povray.org>
Stephane Marty <alb### [at] wanadoofr> wrote...
> Hello,
> 
> One year ago, I wrote a patch for PoV 3.1g that implements a stochastic
> ray-tracing technique using hemisphere sampling (Monte Carlo
> integration) to compute global illumination.  This technique is a bit
> different than the monte carlo technique already existant in PoV, but it
> gives pretty nice, more "radiosity-esque" and interesting results.  In
> fact, the effect of inter-diffuse reflection is much more realistic and
> distinctly visible.  

How does the render time compare?

-Nathan


Post a reply to this message

From: Tony[B]
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 25 May 2000 23:49:52
Message: <392df460@news.povray.org>
Looks a little too visible for my taste. :)


Post a reply to this message

From: Kari Kivisalo
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 27 May 2000 12:36:47
Message: <392FF9EF.B1891CA5@kivisalo.net>
Stephane Marty wrote:
> gives pretty nice, more "radiosity-esque" and interesting results.

Looking at the sample pics I agree. The result looks what I'd expect
a real scene to look like. Std pov rad looks too flat. I have been
developing a scene that requires radiosity and std/mega pov rad isn't
enough. Maybe this patch is the answer.

-----------------------------------------------------------------------
Kari Kivisalo                                          www.kivisalo.net


Post a reply to this message

From: Warp
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 27 May 2000 15:30:35
Message: <3930225b@news.povray.org>
Stephane Marty <alb### [at] wanadoofr> wrote:
: This technique is a bit
: different than the monte carlo technique already existant in PoV, but it
: gives pretty nice, more "radiosity-esque" and interesting results.  In
: fact, the effect of inter-diffuse reflection is much more realistic and
: distinctly visible.

  I'm sorry to disagree a bit with you (and apparently everyone else).

  Ok, ok, my opinion is based solely on the example image on the mentioned
page, but I supposed that it was a good comparison image since that's the
purpose of it.
  Yes the "color bleeding" effect is more noticeable in the right-hand side
image. However, I wouldn't say that it's more realistic. Actually it looks
more like an overexposed photograph.
  I tried to recreate your example scene and try a bit the megapov radiosity
options. Actually the default options cited in the documentation worked
very well. I, however, rised up the brightness to get a more visible color
bleeding.
  Still I like the megapov image more. The result is extremely smooth precise.
The example image made with your patch looks a bit grainy (or am I imagining
things?).
  Ok, I'm sure that a very similar image can be made with your patch
by tweaking the parameters, but I remember seeing a post by you which
contained comparison render times of megapov and your patch and if I
remeber correctly megapov was considerably faster.

  My opinion is that the radiosity in MegaPov is very good.

  The image (512x386 +a0.1) can be seen at:

http://www.cs.tut.fi/~warp/radtest.jpg

  The rendering time in this Sun Ultra 5 was 9 minutes 40 seconds.

  The source code follows:

#version Unofficial MegaPov 0.5;

global_settings
{ ini_option "+QR"
  ambient_light .01
  radiosity
  { pretrace_start 0.08
    pretrace_end   0.02
    count 80
    nearest_count 5
    error_bound 1
    recursion_limit 4
    low_error_factor .5
    gray_threshold 0.0
    minimum_reuse 0.015
    brightness 1.7
    adc_bailout 0.01/2
  }
}

camera { location -z*11.9 look_at 0 angle 60 }
light_source
{ 0, 1
  looks_like
  { box { <-1,0,-1><1,.4,1> pigment { rgb 1 } finish { ambient 100 } }
  }
  translate y*3.6
}


#macro Wall(Color1, Color2)
  box
  { <-4,-4,0><4,4,.1>
    pigment
    { boxed color_map
      { [0 Color1][.1 Color1][.1 Color2][.2 Color2][.2 Color1][1 Color1]
      }
      translate <1,1,0>
      warp { repeat x*2 }
      warp { repeat y*2 }
    }
  }
#end

object { Wall(rgb 1, rgb .8) translate z*4 }
object { Wall(rgb 1, rgb .8) rotate y*180 translate -z*12 }
object { Wall(rgb x, rgb x*.8) rotate -y*90 translate -x*4 }
object { Wall(rgb x, rgb x*.8) rotate -y*90 translate -x*4-z*8 }
object { Wall(rgb z, rgb <.3,.3,.8>) rotate y*90 translate x*4 }
object { Wall(rgb z, rgb <.3,.3,.8>) rotate y*90 translate x*4-z*8 }
object { Wall(rgb x+y, rgb (x+y)*.8) rotate -x*90 translate y*4 }
object { Wall(rgb x+y, rgb (x+y)*.8) rotate -x*90 translate y*4-z*8 }
box { <-4,-4,-12><4,-4.1,4> pigment { checker rgb 1, rgb .2 scale .5 } }

box { -1,1 pigment { rgb x+y } rotate y*30 translate <-1.5,-3,-1> }
sphere { <-1.8,-.5,0>, .9 pigment { rgb 1 } finish { specular .3 } }
cylinder
{ 0, y, 1 pigment { rgb <1,.8,.6> }
  rotate z*70 rotate y*-20 translate <2.5,-2.5,-1>
}

union
{ torus
  { 1.2, .5
    pigment { rgbf <1,1,1,.95> }
    finish { specular .5 roughness .02 reflection .2 }
    interior { ior 1.5 }
  }
  cone
  { 0, .7, y*2.5, 0 pigment { rgb y+z } finish { specular .2 }
  }
  rotate z*65 rotate y*-40 translate <1,-1,2>
}


-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

From: Stephane Marty
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 27 May 2000 16:47:28
Message: <3930339B.3210@wanadoo.fr>
Warp wrote:
> 
>   My opinion is that the radiosity in MegaPov is very good.

Yes it is, I have no doubt about that. And I respect your opinion.
But my function gives another rendering approach, and no need to play
with complicated parameters.
The image sample you're talking about was rendered with the default
brightness (0.7). If you diminish it to 0.5 or 0.6, you'll get a less
overexposed image, but the inter-diffuse reflections will still be well
visible.

> Still I like the megapov image more. The result is extremely smooth precise.
> The example image made with your patch looks a bit grainy (or am I imagining
> things?).

I think the number of samples was 600 to render this image. If you want
something smoother, 800 will be good.


- - - - - - - -
Computer Graphics Software
http://perso.wanadoo.fr/albedo


Post a reply to this message

From: Warp
Subject: Re: ANNOUNCE: Stochastic Radiosity Patch for PoV 3.1g
Date: 29 May 2000 09:54:44
Message: <393276a3@news.povray.org>
Stephane Marty <alb### [at] wanadoofr> wrote:
: I think the number of samples was 600 to render this image. If you want
: something smoother, 800 will be good.

  I suppose that's quite slow.

  I used 80 samples for my test image. 10 times less. And the result is
surprisingly smooth. And fast.

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

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