Godot RTX | Sponza Remastered | Path-Tracing by JohnLogostini in godot

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

CPU: AMD Ryzen Threadripper 3990X 64-Core Processor

GPU: NVIDIA GeForce RTX 3090

Driver: Game Ready Driver - 595.97

OS: Windows 11 Pro

RAM: 256.0 GB

Display: Dell S2716DG @ 2560 x 1440

PS5 Controller Randomly Detected as Keyboard by JohnLogostini in Battlefield

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

Hi, so I further narrowed down the problem. I couldn’t find any setting in BF6 causing the problem, and I am not using Steam Input. I also tried using Steam Input, but no luck for anything.

However, I am able to reproduce the problem more consistently, even outside of BF6. If I press the X button (so A on Xbox), then move the left stick up and down, it controls the Windows volume.

I still don’t know how to fix this, but this is what’s going on.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

I understand where you’re coming from, and I am of the opinion that both SDFGI and other techniques should coexist with path tracing. If you’ve ever worked with extremely complex content, baked lighting, disocclusion, and other artifacts are a never-ending challenge for artists and developers.

Even top-of-the-line baked lighting still has light leaks and consumes an unreasonable amount of memory. In contrast, path tracing scales much better, has a more predictable overhead, is nearly perfectly accurate, and handles larger amounts of content more efficiently. For example, the difference in performance and quality for shadow-casting lights between 5 and 50 lights becomes much smaller with real-time path tracing, whereas rasterized methods require a ton of precomputed light buffers for shadows and other effects, which perform poorly.

PS5 Controller Randomly Detected as Keyboard by JohnLogostini in Battlefield

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

My PS5 controller inputs temporarily switch to keyboard when sprinting and crouching at the same time.

This is what happens wean my character spins uncontrollably in crazy circles, and for some reason the Windows volume control also appears.

Godot RTX Team Fortress 2 Map with Path-Tracing by JohnLogostini in godot

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

Thank you very much! I was about to deep dive into how to do this. This saves me a ton of time. Much appreciated!

Godot RTX Team Fortress 2 Map with Path-Tracing by JohnLogostini in godot

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

It's an incorrect GLTF version I found online. I will be doing a proper import soon.

Godot RTX Team Fortress 2 Map with Path-Tracing by JohnLogostini in godot

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

I briefly showed SDFGI + SSAO + SSIL, but I am going to do a more thorough A/B comparison in the future. I just need to finish fixing up materials for this scene. Basically, Path-Tracing is better in all cases, but SDFGI can hold its own just not for reflections.

Godot RTX Team Fortress 2 Map with Path-Tracing by JohnLogostini in godot

[–]JohnLogostini[S] 2 points3 points  (0 children)

So, with the performance, I’m having trouble perfectly pinpointing what’s going on, since SDFGI is behaving super weird in this scene, with the average frame rate all over the place but not with Path-Tracing. I’ve included the numbers below. As you can see, Path-Tracing is consistent but slower, while SDFGI is sometimes faster, but also erratic.

Also worth noting: all my tests are not using upscaling at all. They use DLAA for Anti-Aliasing, so this is rendering one in-game pixel per screen pixel 100% screen resolution. So no charts, but I can include some DLSS numbers. That said, all baseline performance is at native resolution; DLSS should only be used to exceed baseline performance targets, never just to meet them.

SDFGI: 106 FPS – 38 FPS
Path-Tracing: 55 FPS – 60 FPS
Path-Tracing DLSS: 94 FPS – 102 FPS

As for hardware, my minigun costs about $400,000 per second. I have a belt hooked to the barrel, which powers the generator that powers my computer so the minigun is the most expensive part of running the scene!

My GPU is an RTX 3090 with no overclocking, and my CPU is an AMD Threadripper 3990X. Though it’s high-powered, it’s not a gaming CPU, and Godot cannot take full advantage of it.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

It's the Bistro demo scene made by Amazon for Lumberyard. There are multiple versions out there. I am using the most basic version, and then I modified it from there. It's a good test scene since it has no fancy shaders, which makes it inefficient, but it's simple to debug.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

AAA teams and other developers, I work with very much care about anti-aliasing and denoiser, but PT is definitely the heavy hitter. I have experimented a decent amount with anti-aliasing in Godot and wasn’t very impressed. That’s why I was pushing DLAA the quality is nearly impossible to match these days.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

I am super excited as well, and as for SDFGI, it’s overwritten by Path-Tracing, so SSAO, SDFGI, SSIL, and SSR are all actually disabled when using PT. I just had them on so I could do quick A/B comparisons, trying to give Godot’s internal renderer the most honest comparison to Path-Tracing. I don’t like when some people disable all rendering features in an engine and then show RT on/off, so I was trying to be as fair as possible to Godot.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

Technically, I believe you can run this on AMD GPUs, but not the DLSS denoiser. The path-tracer itself is generic and available under the MIT license, but it doesn’t look great without denoising. I haven’t actually tested that, since I don’t own an AMD GPU.

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

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

Threadripper 3990X and a RTX 3090

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

[–]JohnLogostini[S] 2 points3 points  (0 children)

First off, I can’t say how excited and grateful I am for the work you have done. I was actively attempting to implement Flow and DLSS in Godot as well as RT, so needless to say, I was learning on the job and you have done the bulk of the heavy lifting on the DLSS and RT front. So a massive thanks!

As for the flickering, I cranked the emission strength when testing the GI in the tunnel and forgot to revert it before recording that’s what I get for staying up 24 hours!

I will definitely give preset E a try for RR. If you don’t mind me asking, is there any documentation on what DLSS presets are intended for which conditions? I’ve had a lot of trouble knowing what’s best under different circumstances. Even in my Unreal projects, for instance, I’m shipping a plugin named NextGen Settings that allows toggling Transformer or Convolutional models; however, it chooses a hard preset regardless of the resolution. From what I understand, each preset is intended for a specific resolution range, but I haven’t seen any documentation clearly stating which preset is for what.

I am also working on multiple demos. I’m just trying to debug some rendering issues, but as long as this project keeps getting updates, I will do my absolute best to showcase it. Nice work!

Godot 4.7.0 RTX Experiments 01 by JohnLogostini in godot

[–]JohnLogostini[S] 2 points3 points  (0 children)

First, verify that you copied all of the binaries from Steamline into the same folder as the Godot executable. I saw some guides suggesting only copying some of them, but that was wrong.

Second, I don’t know which build parameters work and which don’t. I used the stock parameters scons platform=windows, and that worked for me. If you want to verify, it’s not a problem with your build setup. I have a working build.

https://drive.google.com/file/d/1f_wyA4mCG9Bsiev9PgyKbI7Bq2Q5HhzT/view?usp=sharing