I just pushed an update to GeDoSaTo which makes it significantly easier to work on shaders and effects (i.e. downsampling, SSAO, postprocessing). It’s now possible to bind a key for reloading shaders. The magic thing however, and what really saves time, is that if loading the new shader fails the old one will continue to be used instead, and the error will be reported:
This really saves a lot of time restarting games. My workflow is now to have the game running in a window in the corner of the screen, and have Visual Studio take up the other half. This way, I can make changes to the shader and see the result in-game in about 3 seconds. It’s not a GUI, but it’s much more flexible and almost as fast in terms of iteration.
To prove the claim that this makes shader development much easier, I set out to improve GeDoSaTo’s SSAO. While better than the built-in monstrosity, this was never really high quality, particularly considering its performance impact. Well, it’s a whole lot better now:
That’s the old version on top and the new one in the bottom. Look in particular at the detail in the distance, the lack of pixelation on the grass, the much better definition on objects like the staircase and the lack of polygonal artifacts on the floor.
Now, you might ask “But Durante, the AO was already really heavy, can I really afford to run the new version performance-wise?”. The answer is yes, absolutely. For the result shown above, the previous version took around 9 ms of GPU time on my 770. The new one takes 4.8 ms. If you’re keeping track, that’s almost twice as fast as previously. While also looking better, and sporting fewer artifacts.
You can get the new version right now with the updater.
Oh, one more thing. Since someone asked in a donation message: yes, I do read all the donation messages