Caustics and Raytracing
#1
Posted 04 May 2012 - 09:33 PM
Thanks.
#2
Posted 04 May 2012 - 10:17 PM
#3
Posted 04 May 2012 - 10:53 PM
#4
Posted 05 May 2012 - 02:03 AM
#5
Posted 05 May 2012 - 04:14 AM
#6
Posted 05 May 2012 - 07:37 AM
#7
Posted 05 May 2012 - 02:14 PM
#8
Posted 05 May 2012 - 03:41 PM
#11
Posted 06 May 2012 - 06:21 AM
Alienizer, on 06 May 2012 - 12:54 AM, said:
They do? I thought it cast a ray from the cam to the scene at point X, and then from a light to point X!!!
First they trace a bunch of thotons from each light, then path trace and finally shadow ray test each photon. More or less.
Avtually, you would save tthe positions of all ray and photon BOUNCES, then take the average of all combination of ray and photon bounce, filtered by shadow ray testing. Or something. It was a while ago.
#12
Posted 06 May 2012 - 03:23 PM
#13
Posted 06 May 2012 - 04:43 PM
#14
Posted 06 May 2012 - 05:49 PM
How come photon mapping can do caustics only to a certain dergree? I thought photon mapping could do caustics at 100%
#15
Posted 06 May 2012 - 06:04 PM
#16
Posted 06 May 2012 - 06:36 PM
So on the BDPT, you cast a ray from the cam (CamRayHitPoint), and one from each lights (PhotonsHitPoints), then cast rays from CamRayHitPoint to each PhotonsHitPoints?
#17
Posted 06 May 2012 - 09:23 PM
So some technical stuff:
Light tracing - tracing photon from light, bouncing it around and waiting till it strikes camera plane. (can be optimized by testing each light path point against camera and accumulate energy)
Path tracing - tracing photon from eye and waiting till it strikes light (can be optimized by testing each path point whether it hits all of lights and accumulate energy)
Bidirectional path tracing - first you perform light tracing, remembering all light path points with their energy. Then you perform path tracing from camera and test against all light tracing points.
See some images here - http://www.cescg.org...alvi/node8.html
Thats the basic idea on this.
You can further extend algorithms with Importance sampling (which greatly helps in number of steps to finish the computation) - with good Importance sampling, one can even compute caustics in just few steps.
Of course you can migrate all the stuff to GPU and do it at interactive speeds
If you don't know how to speed up application, go "roarrrrrr!", hit the compiler with the club and use -O3 :D
#18
Posted 06 May 2012 - 09:58 PM
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












