Please sign in to access this page
A basic ray-tracing implementation in Godot. Created as a way for me to learn compute shaders and learn more about graphics programming
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Fixed a bug in the antialiasing causing it to not overlay the current render over the last frame properly.
Despite my multiple hours contemplating how to implement the progressive AA in my last devlog, I found it hard to find a way to make the effect multipass in Godot. I previously tried to set the texture of a second screen texture to the last render, but what I should have done is set it to the last overall frame, so that the effect actually overlays properly. I didn't notice this and simply thought my implementation was subpar, but you can tell the difference looking at the edge of the sphere in the screenshots.
Attempted to implement a progressive antialiasing method on the raytraced output, but I'm not sure that it was worth the time or effort. The end result does have less jagged edges, but the image is somewhat jittery. It works by shifting the render slightly every frame and then overlaying it over previous frames. I tried to put it in a seperate shader, but found that the way I wanted it to work, it would only work in the main compute shader
I may later implement SSAA or a custom MSAA, but that would require some work and I have alreayd wasted a lot of time on this
Implemented basic ray tracing with a global ground plane and a sphere. I took a long time to debug this partly due to a stupid mistake on my part, where I forgot to move the Camera3D above the ground plane, making me think that my code wasn't functional, so the time spend on this is somewhat (unintentionally) inflated due to my idiocy and me not thinking to check the sceneview for debugging and only the shader
After spending much time learning and failing to use compute shaders, I've setup a basic compute shader pipeline and created a basic shader to show the UV of the screen coords. Hopefully I can fully focus on writing GLSL now and less of learning to set up rendering devices and compute pipelines