# Unbiased Randering and Caustics

**URL:** <https://forums.chaos.com/t/unbiased-randering-and-caustics/42119>\
**Category:** Render Theory\
**Created:** [July 21, 2012, 1:59am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119 "2012-07-21T01:59:23Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 10:03am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/41 "2013-03-30T10:03:40Z")

</div>

> [@Morbid\_Angel](#):
>
> Im not sure of the purpose of MetaSL is it used in games or is there a general application for rendering with it? what would be benefits of using it?

It was mostly because we were often be asked if one could write shaders for V-Ray easily and MetaSL was a way to get a shading language. But it did not get developed…

Best regards  
Vlado

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 10:05am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/42 "2013-03-30T10:05:42Z")

</div>

Here is a small test of the current vertex merging implementation.

Best regards,  
Vlado

 ![vertex_merging.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/2/8/28483b97743b090eeeccfe61cd18699201bbed90.jpeg)

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 1:52pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/43 "2013-03-30T13:52:20Z")

</div>

And another one:

Best regards,  
Vlado

 ![bpt_cornell1.jpg](https://europe1.discourse-cdn.com/chaosprd/original/2X/4/4df2a73d6bb730bee094c453617a5aa69b29af0c.jpeg)

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 4:49pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/44 "2013-03-30T16:49:58Z")

</div>

A comparison between regular bidirectional path tracing and bidirectional path tracing with vertex merging for the same amount of render time.

Pure bidirectional path tracing:

Bidirectional path tracing with vertex merging:

Best regards,  
Vlado

 ![bpt_no_vm.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/b/1/b14b1ccaf7ccb9ea2ac28b20ccd907b2f705a828.jpeg)  
 ![bpt_vm.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/4/c/4c53f87db27c69bc7954d5feaa36f0573110aee0.jpeg)

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 8:24pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/45 "2013-03-30T20:24:24Z")

</div>

And one more…

Best regards,  
Vlado

 ![bpt_cornell3.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/1/d/1d9c60025bf5f8d23cce556dc30dd7e00b21aad5.jpeg)

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [March 30, 2013, 9:54pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/46 "2013-03-30T21:54:38Z")

</div>

Another classic:

Best regards,  
Vlado

 ![pool_bpt_vm.jpg](https://europe1.discourse-cdn.com/chaosprd/original/2X/e/e3f161f7c4c61031ca2c1a850ef56abf08813785.jpeg)

---

<div class="post-metadata">

**Author:** ![jacksc02](https://avatars.discourse-cdn.com/v4/letter/j/779978/32.png) [@jacksc02](https://forums.chaos.com/u/jacksc02)\
**Post date:** [March 31, 2013, 12:55am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/47 "2013-03-31T00:55:39Z")

</div>

WOW!!! that looks fantastic!

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 1, 2013, 4:32pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/48 "2013-04-01T16:32:01Z")

</div>

Vlado-

Ok im im super excited by these, not sure when ill get to play but im going to be counting the days!!! looks like you are getting some nice results. Id love to hand you a couple of the scene files I had cooked up when we were first talking about this if you want to use them for some tests. Id also be interested to see some times. Certainly its resolving the reflected caustics much better. Any thoughts to if you are sacrificing much for it in the way of introducing other noise?  
Also do you feel that the overall image is resolving faster or just differently?

Thanks for sharing!

-Michael

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [April 1, 2013, 5:07pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/49 "2013-04-01T17:07:00Z")

</div>

Yes, feel free to send over any test files that you have 🙂 They will be very helpful. You can send them to [vlado@chaosgroup.com](mailto:vlado@chaosgroup.com)

Best regards,  
Vlado

---

<div class="post-metadata">

**Author:** ![Dubbie99](https://avatars.discourse-cdn.com/v4/letter/d/ea666f/32.png) [@Dubbie99](https://forums.chaos.com/u/Dubbie99)\
**Post date:** [April 1, 2013, 9:26pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/50 "2013-04-01T21:26:52Z")

</div>

I have got a large scene that I am very eager to try.  
Please let us know as soon as you merge into the nightlies.

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 3, 2013, 12:10am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/51 "2013-04-03T00:10:11Z")

</div>

Vlado-

I sent you a handful of files to play with. Cant wait to see some results.

-Michael

p.s. I love to pool caustics!

---

<div class="post-metadata">

**Author:** ![deflix](https://dub1.discourse-cdn.com/chaosprd/user_avatar/forums.chaos.com/deflix/32/8161_2.png) [@deflix](https://forums.chaos.com/u/deflix)\
**Post date:** [April 5, 2013, 8:32am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/52 "2013-04-05T08:32:13Z")

</div>

hands up who’s excited about vray 3.0?  
😃

---

<div class="post-metadata">

**Author:** ![deflix](https://dub1.discourse-cdn.com/chaosprd/user_avatar/forums.chaos.com/deflix/32/8161_2.png) [@deflix](https://forums.chaos.com/u/deflix)\
**Post date:** [April 5, 2013, 8:40am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/53 "2013-04-05T08:40:17Z")

</div>

> [@vlado](#):
>
> This is patented last time I looked into it. So forget about it 🙂
> 
> Best regards,  
> Vlado

sad…I regret filing one years ago myself.

“The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.”

― John Carmack

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 8, 2013, 6:00am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/54 "2013-04-08T06:00:09Z")

</div>

Vlado-

I hadn’t seen this paper. I might be of interest though at this point im not sure there are too many loose ends for your implementation.

> **[Light transport simulation with vertex connection and merging](http://www.iliyan.com/publications/VertexMerging/)**
>
> A reformulation of photon mapping as a bidirectional path sampling technique, enabling seamless combination with bidirectional path tracing via multiple importance sampling.

-Michael

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [April 8, 2013, 6:39am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/55 "2013-04-08T06:39:45Z")

</div>

Yep, I’ve seen it. I know Iliyan personally too.

Best regards,  
Vlado

---

<div class="post-metadata">

**Author:** ![\_Lele](https://dub1.discourse-cdn.com/chaosprd/user_avatar/forums.chaos.com/_lele/32/49986_2.png) [@\_Lele](https://forums.chaos.com/u/_Lele)\
**Post date:** [April 8, 2013, 10:08am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/56 "2013-04-08T10:08:58Z")

</div>

> [@stefan\_b](#):
>
> MLT doesn’t attempt to find anything; it relies on blind chance to find important parts (same as any other path tracing algorithm), and _then_ it explores nearby similar paths. But, same as other Monte Carlo algorithms, it can completely miss an important part of the image if it never comes across it in the first place.
> 
> Further on, MLT algorithms must use pure random numbers; it is not possible to use optimizations like Schlick sampling or Quasi-Monte Carlo sampling. This immediately makes them worse than regular (bidirectional) path tracing for a vast majority of not-so-difficult to compute scenes.
> 
> Finally, because of its pure randomness, using MLT for animations is difficult (there is no guaranteed consistency between successive frames).
> 
> Best regards,  
> Vlado

I was toying with the Mitsuba renderer, which sports just such a manifold exploration technique, and yeah, Vlado is ofc right.  
While i’ll admit it’s the funkiest render method i have ever witnessed (with buckets spreading light in the scene before they hit the corresponding raster space of it, leading to progressive brightening of the whole frame from early buckets), the VERY chancy way it uses to determine paths means that unless there’s an awful lot of very detailed paths, convergence will change quite dramatically across renders/frames/slight viewpoint changes.  
Still extremely funky to play with.

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 8, 2013, 9:54pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/57 "2013-04-08T21:54:24Z")

</div>

> [@vlado](#):
>
> Yep, I’ve seen it. I know Iliyan personally too.
> 
> Best regards,  
> Vlado

Some nice results, Are you looking to his work to influence how VRay will be handling the vertex merging? Also Im surprised that their 24hour reference images are so clean. Not sure how those are being approached but they are much cleaner than I would have guessed.

-Michael

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 9, 2013, 3:30pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/58 "2013-04-09T15:30:55Z")

</div>

Vlado-

Here is yet another little test. Ive resurrected the old winosi scene and set it up to somewhat match a version ive seen in one of the vertex merging papers

The interesting thing about this one is both of the lights are area spheres inside a reflector with a glass lens so every directly lit surface is I guess by definition a caustic.

Here ive removed a lens and you can see the illuminated reflector. Interesting that you dont see this through the lens in the versions where the lens is in place.

If anyone wants to play [http://morphographic.com/PathTrace/winosi\_BDPT\_Mirrorball\_004.max](http://morphographic.com/PathTrace/winosi%5C_BDPT%5C_Mirrorball%5C_004.max)

Thanks

-Michael

 ![2012_BDPathTrace_WinOSI_MirrorBallRoom_004.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/9/4/94cb291177c571132c7fc73e2151948b57f8cd84.jpeg)  
 ![2012_BDPathTrace_WinOSI_MirrorBallRoom_004_Alt.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/a/9/a9cab7988d482f597513a1d2fd6c8a82bb9eed78.jpeg)  
 ![2012_BDPathTrace_WinOSI_MirrorBallRoom_NoLens_003.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/0/f/0fa1bb8df9e258e1053aee81dea2d5da01eab9e1.jpeg)

---

<div class="post-metadata">

**Author:** ![anchovy](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@anchovy](https://forums.chaos.com/u/anchovy)\
**Post date:** [April 11, 2013, 6:46am UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/59 "2013-04-11T06:46:02Z")

</div>

Veach MLT Room

For fun here is my take on the Veach mlt room setup. Simple for sure but its a nice test all the same. I let this one run today while I was at the office. It was fairly clean within a couple hours. I like the subtle caustics behind the light on the right wall.

Here is the 2012 scene file [http://morphographic.com/PathTrace/2012\_BDPathTrace\_VeachRoom\_01.max](http://morphographic.com/PathTrace/2012%5C_BDPathTrace%5C_VeachRoom%5C_01.max)

-Michael

 ![2012_BDPathTracing_VeachRoom_02.jpg](https://europe1.discourse-cdn.com/chaosprd/original/3X/f/3/f390f18d9dec291b2a5085032b49f67f1619a6e6.jpeg)

---

<div class="post-metadata">

**Author:** ![vlado](https://avatars.discourse-cdn.com/v4/letter/v/779978/32.png) [@vlado](https://forums.chaos.com/u/vlado)\
**Post date:** [April 11, 2013, 12:11pm UTC](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119/60 "2013-04-11T12:11:19Z")

</div>

> [@anchovy](#):
>
> For fun here is my take on the Veach mlt room setup.

Do you have the scene for this too?

Best regards,  
Vlado

[Previous page](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119.md?page=2)

[Next page](https://forums.chaos.com/t/unbiased-randering-and-caustics/42119.md?page=4)
