XaiJu
sonicether
sonicether

patreon


Update on Path-Traced Global Illumination Progress

Inspired by all the shiny new RTX stuff, I've been working more on SEUS PTGI and want to share my progress.

If you're a Gold patron, you've probably tested out SEUS PTGI E1, the first experimental version of SEUS with path-traced lighting. It was a good first attempt, but there were myriad problems that were visually unappealing and distracting. 

SEUS PTGI E1 traced lighting at 1 sample-per-pixel at half-resolution for an effective 1/4 samples-per-pixel. You could argue that path-traced lighting is nearly useless at 1 spp, so it's a tremendous challenge to try to get a good result with 1/4th the samples. I think I did a decent job, but it still wasn't quite good enough to enjoy during real gameplay due to the artifacts, and I couldn't really get a much better result after a lot of effort.

So, I thought, if I'm going for path-traced GI that's enjoyable enough for real gameplay, I need to adjust my performance target and start from 1 spp instead. It's a super high-end feature, and limiting myself to what is acceptable performance for typical rendering doesn't make much sense, since the visual drawbacks were so severe and outweighed the visual benefits.

So, I improved performance of the path tracing itself slightly by making the volume data more spatially coherent and cache-friendly for the GPU. I also doubled the render distance of the path-traced lighting. Getting decent performance out of 1 spp at that point, I put a lot of work into the denoising filter. The filter now preserves harsh lighting transitions for better contact shadows while still eliminating a lot of noise. OptiFine just doubled the number of available composite render passes, so that allowed a lot of new options. I've also made it user-adjustable so the user can choose between better lighting details and more noise, or less noise but more aggressive blurring of the lighting and loss of details.

The result is something that runs at almost exactly half the frame rate as SEUS PTGI E1, but with 4x the samples-per-pixel, 2x the render distance, and it looks way more than 2x better, in my opinion. If the user wishes, they can still switch back to 1/4 spp tracing, but I think the performance impact is well-worth the visual improvement. If you want some of that performance back, you can decrease your render quality to 0.7x and still get a decent image thanks to TAA. Just don't expect a perfect 60 fps at 1080p unless you've got something better than a GTX 1080 (what I'm using and getting an average of 50 fps in typical scenes, sometimes dropping to 30 in really complex worlds).

I know it's hard to show in screenshots, but here's how it looks now.

My window size was 2560x1440 and Render Quality was set to 0.7x for an effective render resolution of 1792x1008--just shy of 1080p--for these screenshots. TAA isn't nearly as good as it is in the latest main versions of SEUS, since this is based on an old branch.

I'll put out a new version of SEUS PTGI soon with these improvements, and may upload a video of it as well. 

Comments

That would be awesome

Danny Mountjoy

get vanilla normals renewed https://github.com/Poudingue/Vanilla-Normals-Renewed-1.12 it works with higher versions to

Ashton Erlandson

I think it broke water, though. Can't get any of my shaders to reflect light off the surface of it. Back to that dull vanilla water for now. :(

Jnutz

Optifine 1.13.1 released! Yey

KampfschaFF

Couldn't you do some modifications of the minecraft client itself to implement RT core support?

Descaii

This is fantastic work.

Anorax

Unfortunately, we won't be able to leverage hardware acceleration with RT cores, since this is still just pixel shaders on the OpenGL API. Man, I wish we could!

Sonic Ether

This is some really cool stuff! Speaking of raytracing and RTX cards, will SEUS use the RT cores on the new cards for raytracing if the user has a 2070 or better?


More Creators