Perhaps someone can help me with this. I was doing some experimentation with lenses and PBTR v4. This was going great, I was able to model the projection of an object through a lens onto a surface quite well. However, now I want to simulate doublets: lenses which consist of two parts so with two materials. I don't know how to model this in PBTR. It seems that it is not possible to have a shape (lens) touch more than one other material.
> PBRT's MediumInterface system can only represent a single "inside" medium and a single "outside" medium per shape. If a shape physically touches multiple different media (for example, a glass sphere sitting at the interface between water and air), PBRT cannot directly represent this configuration.
I think this is kind of odd for a renderer which is otherwise quite capable. Can anyone explain why this is the case, and how I can work around this limitation?
> Conventional ray-tracing is estimating illumination using a single sample across the entire domain, which constitutes a particularly crude approximation.
Straw man.
> Shadows have a hard edge, as only infinitesimally small point light sources of zero volume can be simulated
Uh, no. Raytracing can definitely have emitting surfaces and volumes.
> Reflection / Refraction can only simulate a limited set of light paths, for perfect mirror surfaces, or perfectly homogeneous transparent media.
You sure about that?
> More complex effects like depth of field are not supported.
This is implicitly about Whitted Raytracing, which was synonymous with cost effective "raytracing" for a time.
The simplified history is usually presented as Whitted Raytracing -> Distributed Raytracing -> Path Tracing.
The gist is that in Whitted for each surface hit a single shadow ray per light, a reflection ray and a refraction ray are traced. Shadows and reflections are perfectly hard. Distributed raytracing takes all those single rays and shoots N randomized rays instead, which gives soft reflections and shadows. Neither of these orthodox algorithms imply indirect lighting, which is what Path Tracing added into the mix.
This is not considering other light transport algorithms such as radiosity or photon mapping, which were popular ways of doing more cost effective global illumination in the nineties and noughties.
4 comments
[ 4.3 ms ] story [ 29.4 ms ] thread> PBRT's MediumInterface system can only represent a single "inside" medium and a single "outside" medium per shape. If a shape physically touches multiple different media (for example, a glass sphere sitting at the interface between water and air), PBRT cannot directly represent this configuration.
I think this is kind of odd for a renderer which is otherwise quite capable. Can anyone explain why this is the case, and how I can work around this limitation?
Straw man.
> Shadows have a hard edge, as only infinitesimally small point light sources of zero volume can be simulated
Uh, no. Raytracing can definitely have emitting surfaces and volumes.
> Reflection / Refraction can only simulate a limited set of light paths, for perfect mirror surfaces, or perfectly homogeneous transparent media.
You sure about that?
> More complex effects like depth of field are not supported.
https://www.povray.org/documentation/view/3.60/248/
Also, the title should get a "2019" tag.
The simplified history is usually presented as Whitted Raytracing -> Distributed Raytracing -> Path Tracing.
The gist is that in Whitted for each surface hit a single shadow ray per light, a reflection ray and a refraction ray are traced. Shadows and reflections are perfectly hard. Distributed raytracing takes all those single rays and shoots N randomized rays instead, which gives soft reflections and shadows. Neither of these orthodox algorithms imply indirect lighting, which is what Path Tracing added into the mix.
This is not considering other light transport algorithms such as radiosity or photon mapping, which were popular ways of doing more cost effective global illumination in the nineties and noughties.