POV-Ray : Newsgroups : povray.news-submissions : Spectral Rendering with POV-Ray : Re: Spectral Rendering with POV-Ray Server Time
15 Oct 2024 15:56:27 EDT (-0400)
  Re: Spectral Rendering with POV-Ray  
From: clipka
Date: 1 Jan 2013 17:43:44
Message: <50e366a0$1@news.povray.org>
Am 01.01.2013 22:23, schrieb Mr:
> Ive <ive### [at] lilysoftorg> wrote:
>> The animation feature of POV-Ray can be used to make it a spectral
>> render engine. The basic idea is to render a set of gray-scale images
>>    - each representing a specific wavelength - and finally combine them
>> using the CIE color match function.
>> To simplify this task I have created a few POV-Ray SDL scripts and some
>> examples.
>> You'll find the download link, some images and more explanation here:
>>
>> http://www.lilysoft.org/CGI/SR/Spectral%20Render.htm
>>
>> -Ive
>
> Would this help POV to render caustics any faster?
>
> I ask this because I could not after all my attempts get POV-Ray to render some
> caustics scene with chromatic dispersion as fast as Lux Render did (Lux uses
> spectral rendering)other than that I would have been so happy to use POV because
> of so many other features, but for this particular scene, the speed issue was
> really too high of a bottleneck, preventing it to keep the same quality between
> the two renderers.

I'm not sure how Lux does it, but here's one optimization I could 
imagine, which POV-Ray currently doesn't do:

When the generated photon map is evaluated for a dispersed (and hence 
monochromatic) ray from the camera, dispersed (and hence also 
monochromatic) photons with a different wavelength could theoretically 
be ignored (and those typically are a lot if you make ample use of 
high-quality dispersion).

In POV-Ray, the fact that a photon was subject to dispersion (and hence 
is monochromatic) is forgotten in the stored photons map; such photons 
are instead stored just like normal non-dispersed colored photons. Thus, 
POV-Ray needs to evaluate each and every photon even for monochromatic rays.

As Ive's approach only deals with one single wavelength per render 
anyway, it automatically gets that optimization for free. However, for 
non-dispersed rays and photons it loses a lot in terms of performance, 
as it needs to trace such rays and photons over and over again for each 
wavelength even though their trajectory is the same for all wavelengths.

Hard-coding this optimization into POV-Ray should be no big deal; it 
doesn't even need full-fledged spectral color math to work. It would 
probably increase the photons map memory footprint by 20% though.


Post a reply to this message

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