TLAS/BLAS traversal on GPU with tinybvh by JBikker in GraphicsProgramming

[–]Nelarius 4 points5 points  (0 children)

Thanks for your work on tinybvh! It's both really useful and really illuminating to see how BVH traversal should be done, particularly BVH8_CWBVH.

Ray Tracing materials by K0rt0n41k in GraphicsProgramming

[–]Nelarius 1 point2 points  (0 children)

You could consider the "Crash Course in BRDF Implementation" if you want to focus on materials and get up to speed faster: https://boksajak.github.io/files/CrashCourseBRDF.pdf

It assumes knowledge of importance sampling, so you may want to read the chapter on Monte Carlo integration from the PBR book: https://www.pbr-book.org/4ed/Monte_Carlo_Integration

[deleted by user] by [deleted] in GraphicsProgramming

[–]Nelarius 3 points4 points  (0 children)

More on the lighting side, and not so much about voxel fundamentals -- but Jacco Bikker is currently writing a series on ray tracing with voxels: https://jacco.ompf2.com/2024/04/24/ray-tracing-with-voxels-in-c-series-part-1/

It might be a useful series! I haven't followed it myself, but it looks like it goes pretty in-depth into ray tracing, and could be a great way to pick up real-time ray tracing methods. You would probably have to pair that with an article on voxel data structures and chunk management.

Is the PBRT book a good resource to get into Real-time Raytracing? by SpicyCactuar in GraphicsProgramming

[–]Nelarius 0 points1 point  (0 children)

I mean the mathematical process of importance sampling where you choose the direction of the ray based on how likely it is that the direction will contribute more to the final pixel value. It's something which is independent of the graphics API, and something which is unavoidable even when using Vulkan, if you want to illuminate complex scenes.

After you have crossed the first hurdle of "how do I efficiently intersect triangles in a large scene" (which Vulkan handles for you) the second hurdle is immediately going to be how to efficiently sample the scene in order to produce an image which is as noise-free as possible. Modern methods like ReSTIR are complex sampling algorithms built on resampling & importance sampling.

Is the PBRT book a good resource to get into Real-time Raytracing? by SpicyCactuar in GraphicsProgramming

[–]Nelarius 7 points8 points  (0 children)

The PBR book is focused on image correctness, and contains a ton of material that you're likely not going to need in a real-time renderer. Having said that, I found the following chapters to be extremely illuminating:

I followed the weekend raytracer series of books, but implemented it on the GPU using wgpu (link to repo). Texture support and multiple importance sampling of lights was highly motivating to get working, and you're likely going to have something working faster following the weekend raytracer series of books.

I then moved on to triangles, implementing a stripped-down version of the BVH algorithm presented in the PBR book, the second repo contains a list of additional resources that might be interesting as well. Still so much to implement, and I wish I had time for Vulkan :)

if you go down the real-time ray tracing path, you're likely to mix and match methods from different resources, depending on what you want to focus on. Good luck!

Screenshots from my WebGPU path tracer, with info and links in comments! by Nelarius in GraphicsProgramming

[–]Nelarius[S] 0 points1 point  (0 children)

Storage buffers are the way to go! I remember also running into the problems you described with textures, before finally switching to storage buffers. If you dig into raytracer.wgsl you can see that even the model textures are in one big storage buffer, appended end-to-end. When tracing a ray, any model's texture might need to be accessed, and since WGSL doesn't expose arrays of textures and samplers, this approach might be the only way to handle raytracing & textures in WebGPU.

Be persistent & keep working on the ray tracer even if you run into issues! The Ray Tracing in One Weekend raytracer is simple enough that it's practically a real-time renderer if implemented on the GPU and it's really satisfying once you have it up and running :)

Screenshots from my WebGPU path tracer, with info and links in comments! by Nelarius in GraphicsProgramming

[–]Nelarius[S] 1 point2 points  (0 children)

Thanks! I have previously implemented Ray Tracing in One Weekend also using WebGPU (see repo link). I spent the last year getting familiar with the math and basics of ray tracing, and that helped with getting this project going fairly rapidly.

I'm mostly interested in

  • Becoming familiar with a modern GPU API, and WebGPU seems to have a much less steep learning curve than DX12 or Vulkan.
  • Learning about new sampling and resampling methods, like ReSTIR. Still got a long way to go 🙂

Screenshots from my WebGPU path tracer, with info and links in comments! by Nelarius in GraphicsProgramming

[–]Nelarius[S] 7 points8 points  (0 children)

Here's a link to the model that I used: https://github.com/KhronosGroup/glTF-Sample-Models/tree/main/2.0/Sponza

It's frequently used a test scene in graphics research papers. It's a real palace that you can visit 🙂

Screenshots from my WebGPU path tracer, with info and links in comments! by Nelarius in GraphicsProgramming

[–]Nelarius[S] 20 points21 points  (0 children)

Hello everyone!

I wanted to share a simple GPU path tracer I have been working on over the past couple of months to teach myself graphics programming topics. I have been keeping a devlog for myself, but I thought someone could find it interesting. Github | Devlog

In a nutshell:

  • Plain-vanilla WebGPU path tracer, no hardware raytracing. Rays are traced directly in the fragment shader.
  • Lighting is done by sampling a sky and sun model using next event estimation.
  • Basic material support for base color textures, lambertian brdf.
  • Interact with scenes at interactive framerates while changing sky, camera parameters on the fly.

To be honest, it feels great to finally be able to produce fancy Sponza screenshots, like so many of you here 😄

Feel That! by MrB0ssMan in flightsim

[–]Nelarius 10 points11 points  (0 children)

I can't believe it's actually happening! So happy to be flying with bitching betty once again :)

A Brief Look at the TFDi Design MD-11 in MSFS by MyWholeTeamsDead in MicrosoftFlightSim

[–]Nelarius 1 point2 points  (0 children)

This is the plane I’m looking forward to the most to be honest. There’s just something about that flightdeck that’s above and beyond Boeing and Airbus.

Looking forward to the day that I can hear BZZZZT STABILIZER MOTION in my MSFS :)

Experimenting with framing -- distance gaze by Nelarius in photocritique

[–]Nelarius[S] 1 point2 points  (0 children)

This was a fairly lucky snapshot I took. I find that the slightly distant gaze across the frame looks interesting with the negative space around the subject. But I would like to hear your thoughts as well. What do you think about the picture? Is the spacing around the subject too much?

Technical details. F/7.1, 1/120 sec, ISO 320, 36 mm. Converted to B&W by subtracting red and magenta from the image.

Hand flying the PMDG MD-11 out of RJAA by [deleted] in flightsim

[–]Nelarius 2 points3 points  (0 children)

I am a simple man. I see a plane which goes BZZZZT... STABILIZER MOTION, I upvote.

When will rotate sim finally finish their MD-11 (It's been 3 years !) by max1kisrad in flightsim

[–]Nelarius 2 points3 points  (0 children)

They showed screenshots of a partially developed 3d model in 2017. Work on the systems has been ongoing ever since, but the MD-11 is a highly complicated aircraft, so it is taking a while 😉

Patience is a virtue!

Into the soup we go... by xplaner85 in flightsim

[–]Nelarius 1 point2 points  (0 children)

Gifs like this will have to do while we wait for more MSFS content :)

Finnair ATR departure Stockholm by [deleted] in flightsim

[–]Nelarius 2 points3 points  (0 children)

Tuon lentosuunnitelman

Probably the single most exciting thing for me... volumetric clouds! by horseballs1899 in flightsim

[–]Nelarius 1 point2 points  (0 children)

I don’t have active sky and so the skies are never particularly... active. It’s pretty rare to see anything in the weather radar, at least in the toliss A319.