As often seems to happen after I do a stint of ‘gameplay’ oriented work on Dom, I then end up taking a wee break to tinker with rendering.
I’ve been looking at Substance of late, and I have to say it’s mighty nice, and comes with a mighty nice pricing model as well, where you effectively ‘rent to own’ by instalment payments which eventually buy the software outright.
I decided to export some simple PBR textures so I could do a side-by-side comparison of the PBR system I put into 666 a while back. Using Substance’s B2M tool, I gave it a simple ‘space panel’ texture, and it produced the most amazing PBR texture set which looks awesome in Substance itself.
Dropping it into my PBR system didn’t fare so well 🙁 It seems I’ve got a fair way to go to get my PBR shaders up to speed. Slightly dismayed, I put PBR back on the shelf, and instead turned to Post Processing effects.
‘OMG Noes!’ I hear you cry – it seems PPFX are the bane of game players across the known gaming universe. Excessive Motion Blur! Excessive Depth of Field! Excessive Chromatic Aberration!
Have no fear. I intend to use PPFX wisely, and to good effect. And also let you turn them off 😉
Post Processing means just that, it’s a rendering pass that happens after all the other rendering goodness has been finished. You can just grab the screen buffer in OpenGL into a texture and then tinker with that but it’s not ideal and means a GPU -> CPU fetch, which is more GPU bandwidth consumed. But as of OpenGL 3.0 we have the joy of Frame Buffer Objects which do all this grunt work on the GPU itself, and more besides.
The LensFlare (Glare) system in Dom ATM is a good example of PPFX, and will need to be rolled into the new system when it’s done – in other words, changing stuff is going to break it 🙂
So in short, I turned to putting a Frame Buffer rendering pipeline into 666, which allows PPFX to acquire, manipulate and output a modified frame which is finally rendered to the display. These changes are also fundamental to the (long overdue) Deferred Lighting system, which Dom will definitely benefit from for rendering loads of light effects (far more than the current PolyLux system can).
This work is now done, and the result is…. the same as before! Sadly, nothing exciting to see! The key to success when changing the rendering pipeline is that it looks the same afterwards as it did before 🙂
My next step is to put a blur/darken effect in, as I want the player to be able to focus on a particular aspect of the 3D GUI even though they are still ‘in the scene’ in game.
Comments are closed.