UPS vs VCM? back

Board: Home Board index Raytracing General Development

(L) [2014/04/24] [tby MohamedSakr] [UPS vs VCM?] Wayback!

* I wanted to ask if any one has compared both algorithms before so I can find which one would be better? , as they both seems to be very close to each other in the basic idea of (SPPM + BDPT vs VM + BDPT)
* another question is:does VCM handles DoF, motion blur correctly? "I think UPS should handle this as SPPM handles these kind of effects"
* about BDPT (I don't have any experience about this algorithm), does it use Monte Carlo integration?
* lastly, does VCM algorithm portable to GPU?
(L) [2014/04/28] [tby MohamedSakr] [UPS vs VCM?] Wayback!

I asked this question from like 5 days "I've read a lot since that time  [SMILEY :D] )
so the questions has totally changed!!
* is there a big difference between VCM and UPS? "in other words which parts should I change to convert smallVCM to UPS"
* how to add motion blur, DoF, full spectrum to the integration equation "I have read this thread [LINK http://ompf2.com/viewtopic.php?f=3&t=1845&p=4122&hilit=vcm viewtopic.php?f=3&t=1845&p=4122&hilit=vcm] "
(L) [2014/04/28] [tby ingenious] [UPS vs VCM?] Wayback!

>> MohamedSakr wrote:* is there a big difference between VCM and UPS? "in other words which parts should I change to convert smallVCM to UPS"
The answer is surprisingly simple: nothing [SMILEY ;)] The actual algorithm you need to implement is the same for both methods. The VCM and UPS papers simply arrive at this algorithm in different ways.
 >> MohamedSakr wrote:* how to add motion blur, DoF, full spectrum to the integration equation "I have read this thread [LINK http://ompf2.com/viewtopic.php?f=3&t=1845&p=4122&hilit=vcm viewtopic.php?f=3&t=1845&p=4122&hilit=vcm] "
DoF is straightforward, as is done as in BPT. It is just another sampling dimension (inside the camera). The above mentioned thread already discusses motion blur and spectral rendering. An alternative approach is mentioned in [LINK http://cgg.mff.cuni.cz/~jaroslav/papers/2013-ltscourse/04%20-%20ltscourse%20-%20vcm%20-%20georgiev%20-%20notes.pdf this presentation] on page 35.
(L) [2014/04/29] [tby MohamedSakr] [UPS vs VCM?] Wayback!

I see [SMILEY :)]
as those features will be the last thing to implement "luxury features [SMILEY :D] " , I'm trying to implement a CUDA version now of smallVCM
in smallVCM, vertexcm.hxx, the code runs in this order (Generate light paths -> Build HashGrid -> Generate camera paths)
so there will be 2 kernels "with HashGrid built on CPU I guess" , the main question (does each pixel work independently from other pixels?) so I take each pixel in a thread safely without concern about other threads

edit:
I wanted to extract the direct illumination with VCM "I can do this with my own Naive methods" but as the rays/queries are already done, it would be better to extract the direct illumination (similar to camera rays which are reflecting/refracting and just stop at the first diffuse surface they hit and cast a shadow ray at that surface)
edit2:
after getting deeper in the algorithm, I find a very critical drawback!! , let's consider a camera inside a room, the scene got 20 different lights "an apartment for example", and only 2 lights will affect the room where the camera is located, so for rendering a full HD image, 2 million samples will be taken each iteration, and only less than 10% of these samples will actually affect the image
is this similar to how smallPPM works?
(L) [2014/04/30] [tby beason] [UPS vs VCM?] Wayback!

Perhaps in that last case you could benefit from "Robust Adaptive Photon Tracing using Photon Path Visibility".
(L) [2014/04/30] [tby tarlack] [UPS vs VCM?] Wayback!

....or simpler methods based on prior analysis of the scene (with simple photon shooting for instance) and which computes the probability of each light based on its estimated contribution at the point of evaluation ?
(L) [2014/04/30] [tby MohamedSakr] [UPS vs VCM?] Wayback!

>> beason wrote:Perhaps in that last case you could benefit from "Robust Adaptive Photon Tracing using Photon Path Visibility".
looks like a decent approach!!, so I should replace Mis with AMCMCPPM sampler?
 >> tarlack wrote:....or simpler methods based on prior analysis of the scene (with simple photon shooting for instance) and which computes the probability of each light based on its estimated contribution at the point of evaluation ?
I thought of this approach actually! "but I thought that it is wrong of being too simple  [SMILEY :lol:] "
(L) [2014/05/18] [tby MohamedSakr] [UPS vs VCM?] Wayback!

in smallVCM, I'm trying to "catch" only caustics, but couldn't find out how, I tried to output ConnectToCamera() only, but the result is all photons "not only caustics", what am I missing there to classify photons?
(L) [2014/05/18] [tby tomasdavid] [UPS vs VCM?] Wayback!

>> MohamedSakr wrote:in smallVCM, I'm trying to "catch" only caustics, but couldn't find out how, I tried to output ConnectToCamera() only, but the result is all photons "not only caustics", what am I missing there to classify photons?
You need ConnectToCamera for paths that have a flag that the previous interaction was purely specular.
I believe we have a flag like that already in, but cannot check now. If we don't, then adding one should be fairly trivial.
That gives you caustics as EDS(anything)
(L) [2014/05/18] [tby MohamedSakr] [UPS vs VCM?] Wayback!

>> tomasdavid wrote:You need ConnectToCamera for paths that have a flag that the previous interaction was purely specular.
I believe we have a flag like that already in, but cannot check now. If we don't, then adding one should be fairly trivial.
That gives you caustics as EDS(anything)
yes I have noticed this and solved the problem, but extended it for latter use, so I can detect any path like SDS using the function SampleScattering(), so I create 2 more flags , if they remain true then it is a pure specular path, if 1 is false then it is SDS path, else is neglected

back