Out And About
As you may know today was a meeting day so between driving and talking, not much left in the tank for coding tonight. I did show off that speed increases are possible on integrated systems with room to spare, which means we can retain some level of visual fidelity in the modified shaders.
It is not realistic to get ALL the effects, running ALL shaders at white hot speeds on low-end hardware and expect high frame rates to compete with the mid and high end systems. There MUST be compromise. The trick is in compromising those shader hungry effects that are not immediately apparent, thus allowing performance to increase without significantly affecting the end shot.
My jibe at removing EVERYTHING from the shader was really just to highlight my starting point, from the point of view of performance. The work now is to introduce shadows, texture variations, normal mapping and other elements in an efficient way, and as there is no one solution here I will probably opt for several shader levels to choose from. It will then be up to the individual creator what settings they prefer for making games, and what settings they recommend and preset for their users.
The End User
We will be having option screens so the end user of your game can likewise choose which shaders are employed for best results, and during the meeting we talked briefly about being able to 'post' recommended settings filed by graphics card name so new users of Reloaded and it's standalone games to quickly find and apply the best settings as discovered by fellow members of the community.
I plan to work on bringing the basics back into the terrain shader Wednesday as I am pretty sure can restore unfiltered shadows and terrain selection without hurting performance, and I have a question whether you can really appreciate the normal mapping as you're running through a level (and more importantly, whether it's worth the few FPS it costs to render them on low-end systems). Similar measures can then be applied the entity, weapon and other-game render surfaces. Combine these with the savings on scene and terrain polygons, we might start to see some serious improvements for many Reloaded users.
Whether the sacrifice of visuals is apparent or welcome is the subject of another discussion, but it may be possible to supplement any short falls with some pre-baking. Many modern games that run on low-end positively depend on various forms of pre-baking to get the performance you expect, whereas Reloaded is attempting a complete real-time engine with zero-pre-baking. In laymen terms, pre-baking is sitting and waiting for your level to 'build', and something I really want to avoid for as long as possible, and hopefully find a nice solution that satisfied the majority.
Anyone wants to have a look at my terrain shader (in effectbank/reloaded/) and suggest how it can be made 'more efficient' without loosing 'any' of the visual effects, please do get in touch ;)