tag:blogger.com,1999:blog-7277449027963623452.post3379859822347766137..comments2023-12-07T05:43:10.401-08:00Comments on Ray Tracey's blog: GPU path tracing tutorial 4: Optimised BVH building, faster traversal and intersection kernels and HDR environment lightingSam Laperehttp://www.blogger.com/profile/05688552048697970050noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-7277449027963623452.post-18758018466163534082017-11-23T12:50:42.932-08:002017-11-23T12:50:42.932-08:00Thanks alot for these awesome posts :)Thanks alot for these awesome posts :)Anonymoushttps://www.blogger.com/profile/12529550415201225126noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-28395538407517575022017-08-23T01:08:14.057-07:002017-08-23T01:08:14.057-07:00Nice optimisation, thanks!
Storing the BVH in tex...Nice optimisation, thanks!<br /><br />Storing the BVH in texture memory was on the todo list, but never got around implementing it. Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-34702074837529258152017-08-23T00:38:26.686-07:002017-08-23T00:38:26.686-07:00Thanks for this nice self-contained example!
I sa...Thanks for this nice self-contained example!<br /><br />I saw that your code did not yet use tex1Dfetch to fetch the BVH nodes, so I fixed that on a forked repository on Github and sent a pull request.<br /><br />The trick for getting the tex1Dfetch to work is to use BVH_Compact2, which divides all node addresses by 16 (sizeof(float4)), so that they work as indices for tex1Dfetch.<br /><br />I removed the global memory pointers from the intersection routing, since now everything is fetched from textures, as in the original kernels from NVidia.Unknownhttps://www.blogger.com/profile/00944980912003558672noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-84839711497096373862017-06-01T07:52:15.044-07:002017-06-01T07:52:15.044-07:00hello Sam! I'm a student that really want to l...hello Sam! I'm a student that really want to learn "real-time path-tracing". <br />First, thanks for your work for beginners like me . Now I have a problem need your help. <br />when I try to build this code in visual studio 2015, In this part of code, asm("vmin.s32.s32.s32.min %0, %1, %2, %3;" : "=r"(v) : "r"(a), "r"(b) , line 96 to 99, I got error like "expected a ')'", I don't know how I need to do, thanks.zhangbo0037https://www.blogger.com/profile/14933099932055482298noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-75243660178437068172017-03-04T13:45:57.751-08:002017-03-04T13:45:57.751-08:00Just awesome !!!Just awesome !!!Anonymoushttps://www.blogger.com/profile/12529550415201225126noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-41705356328365351742017-01-20T04:24:47.355-08:002017-01-20T04:24:47.355-08:00Can we create compact bvh layout(woop tri buffer, ...Can we create compact bvh layout(woop tri buffer, nodes, and tri indices) parallel on gpu? Or it's can't be parallelized, and therefore can not be realized on the gpu?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-11083620583232290072016-09-25T09:06:57.306-07:002016-09-25T09:06:57.306-07:00Very great job! I have read your last three GPU pa...Very great job! I have read your last three GPU path tracing tutorial and implemented my very first CUDA path tracer. I am looking forward to your next post about how to efficiently implement direct lighting, especially MIS, on CUDA!Anonymoushttps://www.blogger.com/profile/05563511188768138781noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-55340189199410336282016-09-23T03:38:45.816-07:002016-09-23T03:38:45.816-07:00Hi Henrik, great progress on your renderer. The mo...Hi Henrik, great progress on your renderer. The most recent screenshots with subsurface scattering look fantastic. Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-66489945444724496482016-09-23T03:15:22.325-07:002016-09-23T03:15:22.325-07:00Great to see an update, I too have just implemente...Great to see an update, I too have just implemented this BVH construction paper! And thanks for responding to my e-mails when I'm clueless and confused.<br /><br />You can read my blog here, it's not as verbose as yours but it shows some of my progress:<br />http://henrikdahlberg.portfoliobox.net/dh2323projectblogAnonymoushttps://www.blogger.com/profile/08417092051824141288noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-40031991414717049612016-09-22T00:09:32.929-07:002016-09-22T00:09:32.929-07:00Houdine suppy: don't know if path tracking pro...Houdine suppy: don't know if path tracking provides better quality than race tracing, but path tracing definitely yields higher quality images than ray tracing. See this link: http://home.lagoa.com/2014/04/ray-tracing-vs-path-tracing-in-plain-english/Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-43216213175343869562016-09-21T23:48:57.695-07:002016-09-21T23:48:57.695-07:00I see that many Render Engines are moving from Rac...I see that many Render Engines are moving from Race tracer to Path Tracing. So Does Path tracking prove better quality than Race Tracer ? Please answer for me! Thank you!Anonymoushttps://www.blogger.com/profile/17256840105037493604noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-42693534279327582022016-09-20T20:08:01.819-07:002016-09-20T20:08:01.819-07:00Thanks Robbin. There's also the OMPF forum (om...Thanks Robbin. There's also the OMPF forum (ompf2.com) for ray tracing related questions, frequented by ray tracing researchers. I learned heaps about ray/path tracing from the discussions there.<br /><br />Anonymous: not sure what you mean by reusing rays that hit the camera. Rays are being shot from the camera here, the probability that they hit the lens/aperture is very small. I believe screen space reflections are just reflected view vectors (eye rays) around the normal of the surface point they hit. The reflected geometry must also be present in screen space for it to work, so it's quite limited. It sounds like Doom is only updating reflections every few frames. <br />There are standard techniques to reuse rays/samples like spatiotemporal reprojection, but it's difficult to avoid artifacts in scenes with highly random movement (from the camera or objects in the scene). I'm currently looking into a way to transform the scene geometry (and rays) into frequency space using 3D Fourier transforms, which promises to be a very powerful way to filter out high frequency geometric detail from distant objects. Making it fast and efficient is where it really becomes interesting.Sam Laperehttps://www.blogger.com/profile/05688552048697970050noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-5848299481134799862016-09-20T10:35:14.445-07:002016-09-20T10:35:14.445-07:00Great update Sam. I always look forward to your po...Great update Sam. I always look forward to your posts. What do you think can be done next to improve the path tracer - how about if we can store the rays that hit the camera and reuse them on the next frame (not sure if this would work with the current camera type). This would be similar to the way Doom does it's screen space reflections.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-42920241889580478622016-09-20T07:49:06.197-07:002016-09-20T07:49:06.197-07:00Awesome renders!
"I've also had a few re...Awesome renders!<br /><br />"I've also had a few requests from people who are new to ray tracing for a more thorough explanation of the code from previous tutorials. At some point (when time permits), I hope to create tutorials with illustrations and pseudocode of all the concepts covered."<br /><br />It would be awesome to see these tutorials, but for all of you out there with questions, if you have any questions regarding raytracing or pathtracing you can always ask them on one of the subreddits for raytracing:<br /><br />https://www.reddit.com/r/raytracing<br />https://www.reddit.com/r/pathtracing <br /><br />There are plenty of people there willing to explain these questions with joy!Spectrallichttps://www.blogger.com/profile/12343988024196284554noreply@blogger.comtag:blogger.com,1999:blog-7277449027963623452.post-378749650606475082016-09-20T07:46:52.324-07:002016-09-20T07:46:52.324-07:00Awesome progress!
"I've also had a few r...Awesome progress!<br /><br />"I've also had a few requests from people who are new to ray tracing for a more thorough explanation of the code from previous tutorials. At some point (when time permits), I hope to create tutorials with illustrations and pseudocode of all the concepts covered."<br /><br />It would be awesome to see these tutorials, but for all of you out there with questions, if you have any questions regarding raytracing or pathtracing you can always ask them on one of the subreddits for raytracing:<br /><br />https://www.reddit.com/r/raytracing<br />https://www.reddit.com/r/pathtracing <br /><br />There are plenty of people there willing to explain these questions with joy!Spectrallichttps://www.blogger.com/profile/12343988024196284554noreply@blogger.com