tag:blogger.com,1999:blog-7277449027963623452.post2302138867390695249..comments2023-12-07T05:43:10.401-08:00Comments on Ray Tracey's blog: Real-time path traced Sponza fly-through on 3 GPUs!Sam Laperehttp://www.blogger.com/profile/05688552048697970050noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7277449027963623452.post-45495877142638473782012-01-24T09:36:30.892-08:002012-01-24T09:36:30.892-08:00seems like a good sampling strategy. I have to lea...seems like a good sampling strategy. I have to learn more about CUDA and sampling before I can try this out :)<br /><br />Just to be clear, I'm not developing Brigade, but just testing some ideas with it. Jacco Bikker and Jeroen van Schijndel are the main developers. <br /><br />I'm interested in all sorts of noise reduction methods and more efficient sampling/tracing, but it is not something I'm able to actively contribute to in the very near term (in terms of programming). Currently I'm focussing on making something playable in real-time.Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-44676334337874838432012-01-24T08:28:08.785-08:002012-01-24T08:28:08.785-08:00Why wouldn't it be doable? You don't have ...Why wouldn't it be doable? You don't have to pick that many samples. What happens if you get an incorrect answer? If you distribute the samples intelligently you will pretty much end up with a worst case of what you started with.<br /><br />Perhaps distribute samples something like this:<br />50% evenly over the screen<br />10% at a few places with perhaps 32 samples each to decide where to spend the last 40%<br /><br />A very rough guess would be a worst case efficiency of 80% and an average of 200% over evenly distributed. Can't back it up, it's just an educated guess.David Skyfallhttps://www.blogger.com/profile/16602643391557506753noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-58933440721071518972012-01-24T07:17:51.847-08:002012-01-24T07:17:51.847-08:00Interesting and simple. It's obvious where I w...Interesting and simple. It's obvious where I would like to spend more samples in the Sponza scene, but as you said, the initial number of samples must be high enough to decide if more sampling is required, which I doubt is doable in real-time. It's certainly worth trying though (need to read more on this and other noise reduction techniques).Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-84698715710565933172012-01-24T06:54:50.105-08:002012-01-24T06:54:50.105-08:00Simple adaptive sampling: Pick a random point p in...Simple adaptive sampling: Pick a random point p in the framebuffer, calculate its value with x number of samples. Compare with previous frame, if enough difference spend y number of samples in the neighbourhood of p.<br />Stochastic noise is your enemy here, x needs to high enough to fight it.David Skyfallhttps://www.blogger.com/profile/16602643391557506753noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-88217460590233232702012-01-24T06:40:25.920-08:002012-01-24T06:40:25.920-08:00Adaptive sampling is something that could help, bu...Adaptive sampling is something that could help, but I'm not sure if it's feasible in a real-time context. I read somewhere that it's quite expensive to determine the pixels that need more samples. But you never know until you try it yourself :)Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-26312905882149667362012-01-24T06:38:37.003-08:002012-01-24T06:38:37.003-08:00Thanks! I was meaning to dive into more sophistica...Thanks! I was meaning to dive into more sophisticated motion blur techniques including motion vectors, and also to explore reprojection techniques to reuse pixels/samples in order to lazily update dynamically changing lighting over several frames. There are some good papers floating around, I'll see how far I'll get.Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-65202671909882741232012-01-24T06:36:23.949-08:002012-01-24T06:36:23.949-08:00There is so much more you could do, for example ad...There is so much more you could do, for example adaptively distribute samples where there is more change.David Skyfallhttps://www.blogger.com/profile/16602643391557506753noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-5893015513467608522012-01-24T06:30:43.205-08:002012-01-24T06:30:43.205-08:00I dont know of any webpage but you could look at i...I dont know of any webpage but you could look at it this way. Store the 4 corner directions of the previous frame. If you let the originate from the current camera position they will each project to a single point in the framebuffer. Draw a quad between these points with the last frame as a texture for the quad. Done!<br /><br />I think you will se a huge improvement from this. If you want to take it one step further then you could reproject each sample individually and compensate for the translation as well. Bit more work and more expensive as well. Assign a motion vector for each sample and you will take care of moving objects as well.David Skyfallhttps://www.blogger.com/profile/16602643391557506753noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-39781753429948227982012-01-24T05:59:38.070-08:002012-01-24T05:59:38.070-08:00Thanks for the tip! The motion blur that I'm u...Thanks for the tip! The motion blur that I'm using is a really cheap hack (just three lines of OpenGL code). Can you point me to a tutorial on how to implement your method in OpenGL?Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-84371923585749410592012-01-24T05:52:54.068-08:002012-01-24T05:52:54.068-08:00Your frameblending has one big flaw: Even small ro...Your frameblending has one big flaw: Even small rotation is causing a lot of blurring. But there is a simple fix, rotate previous frame by the delta rotation to the previous frame before blending and you will only have motionblur for translation and moving objects. Just calculating the dx,dy on the midpoint of the previous frame will be a huge improvement.David Skyfallhttps://www.blogger.com/profile/16602643391557506753noreply@blogger.com