Friday 14 March 2014

Last Day Of The Week

Work

Another week, and another round of performance improvements while juggling the issue of keeping the visuals sweet.


I have sacrificed a few FPS, but managed to add a system which renders the details provided by normal maps into the terrain, in addition to adding specular as well. The trick is pretty neat and means it only costs near the camera, and as the terrain pixel gets further away it fades out the high definition normal surface lighting and reverts to a cheaper lighting formula.

The biggest kicker, and I will be striving to add it before I jet off is to separate the static shadows with the dynamic ones (i.e. shadows cast by dynamic moving objects like the character), so that I can cast a higher resolution shadow from the chappy and make him pop more in the scene.  It will definitely be in the next Reloaded beta but I would have liked it to be in this version by now. Ah well.

I wanted to do a few more visual/performance tweaks, but time has run out for this week. It's now 3AM and I really need to add some 'secret sauce' now for the GDC demo next week.  I can only reveal what that sauce will be at the event, but I can blog it in much detail on my return.

The GDC plan has been brewing for weeks now, and at last count my schedule is pretty packed and I hit the ground running on Tuesday AM and don't stop until Friday when the EXPO closes it's doors. If you are doing GDC this year and want to know which parties I am attending, the biggest one will be the YetiZen at the stadium. I will 'not' be attempting to drink my own weight in beer (as that would be fatal) and instead will be doing my part to remain sensible enough to tweet and blog my way through the week.

Thanks to the awesome crew at Intel, I will be on their booth every day of the Expo, doing a little talk on the magic of AGK and Reloaded, joining in several discussions on the next steps in technology and meeting a few guys and gals who might help us push our products during 2014.  I am also attending a session on how to use the NVIDIA NSIGHT tool to deep dive my graphics engine and really squeeze every last analytic morsel out of what is going on. Such knowledge would have lead me to the cost of the shaders months ago! It will be a busy week, and I hope to learn a lot, and then return refreshed to continue the good fight.

15 comments:

  1. Of course, some of us have been shouting that shadows are the main slow down area for months! Just from using the software and seeing the performance drop like a stone when using them ;)
    Hmm, now I'm wondering what this secret sauce is all about! It must be pretty much done already to leave it this late to introduce before GDC. We will have to wait and see I suppose!

    ReplyDelete
  2. again good luck lee m8, have fun and learn stuff new for reloaded :)

    ReplyDelete
  3. Looking a little better than the other screenshot Lee, at least the trees don't glow anymore!

    ReplyDelete
  4. That's a great screenshot! Far outweighs the terrain shots we've had of X9 outdoors :P

    Still, it feels....old. Or something. Hangon, I'll find a comparable screenshot of Half-Life 2 and analyse the issue...

    Ok, I compared a screenshot of Half-Life 2 that I found to Thursday's screenshot (YES, I know today's screenshot has better lighting and terrain, but I'm taking that into account) that matched it surprisingly well:

    http://techgage.com/articles/graphic_cards/settings/oct_2008/half_life_2_episode_two.jpg
    http://3.bp.blogspot.com/-kWRVZqre7Vk/UyJUKEeQBgI/AAAAAAAAEBo/5BN94xQ43Mg/s1600/myGDCdemo.jpg

    Here are the points I noticed, in order of most important to least important:

    1) Self-shadowing. The HL2 shot shows a similar style of trees to the Reloaded shot, and the first thing I noticed when comparing them is that the Reloaded trees feel washed-out and flat. While the far higher-res textures in the HL2 significantly contribute to its sharpness, the biggest reason is that the entire scene is not blurry. This point is incredibly important.
    2) Crispness. The HL2 shot feels crisp, clear and high-res. The Reloaded shot feels soft, blurry and decidedly low-res. This is caused by the bloom shader, so I'm currently looking into rewriting it to handle bloom better (HL2 has excellent bloom without blurring the entire scene).
    3) Polygon count. If you look at HL2, its entire environment and everything in it is fairly low in polygons (look at the end of the barrel of the shotgun, for example), yet the game generally looks amazing. That's not to say you can't use more polys than HL2 did, I'm just saying....don't go overboard.

    I'm going to try replacing ground textures and modifying shaders to try to make Reloaded look as much like HL2 as is possible without having engine source and I'll report my results here later.

    ReplyDelete
    Replies
    1. I'm glad I'm not the only one who feels like this. You can see between those two shots that Reloaded is so incredibly blurry, overbloomed and flat.

      Delete
    2. Yeah, definitely a good point you've made there! Compared to the HL2 screenshot, Reloaded's visuals look a little technicolour and artificial to me, well. Not doing down Lee's great work! He's in the process of rewiring the shaders, so I guess we can expect some flaws in the visuals for a while

      Delete
  5. I would agree with the comments and concerns here in general.

    Half Life and other engines of note are just better than Reloaded all round. The scenes show this in relation to everything visible in the scenes that can be compared.

    Reloaded weapons and enemies are much in keeping with the engine too and don't meet with the quality of other engines. Clearly the Shader use is overbearing.

    Everything seems to have been tried to be overdone without success as that cant return it. If you look at the H Life shots of course things are on the one hand more detailed but visuals are far more subtle and - well natural.

    These engines are superior to Reloaded and its fair to say that Its not really fair to judge Reloaded by the screen shot here. Lee is trying to optimise the engine so its difficult to have it all ways. High Quality and detail and high performance too. Not an easy task for Reloaded.

    Of course not all game types need realistic kinds of visual displays but in the main they do and then the game designer can deviate if need be. By default one would obviously look to some high levels of realism out of the box. Presumably we still have a universal Shader which is always going to be an issue as it affects everything similarly when in real life not everything is so affected perhaps. In reality metal looks like metal (of whatever kind, plastic looks like plastic similarly and wood like wood with different surfaces and so on.

    No doubt users can improve the visual quality somewhat at their end using various, techniques, methods described, mentioned and so on being the clever lot they are.

    At the moment Performance is King in development terms and that can not be sacrificed for anything else until and if someone is satisfied that no more can it be improved with the current engine. Then as it seems to now be accepted that performance is paramount, then it has to be maintained and carefully managed when adding anything more to the engine.

    The comments/concerns here are very valid still and cant be disagreed with.

    The obvious issue with the Reloaded screen shot is the over Bloom usage. Presumably users will have still some control of that and its level of intensity. Users turning it off or setting it very low therefore, global bloom Shader use would have the least impact on the game visuals.

    :-)

    ReplyDelete
    Replies
    1. To be fair I doubt Lee was concerned with post bloom when working on entity shader performance nor was he thinking of it when taking his screenshot,

      With pre and post bloom control already in there it would have been no great deal to turn in it down and get a better screenshot all round. I also feel that comparison with games whose assets are created by a team of artists who have a vision in mind and a lead artist to tie it all together leaves poor Lee in the shade here, not to mention their using a completed and fully functional engine.

      I think that is probably the best screenshot Lee the coder has shown yet and to be honest it shows how far improved it has all become, I get it that he's reducing quality and trying to squeeze what he can with performance gain whilst getting the best appearance he can from it, but tell you if he gave this to a AAA game artist who could throw in the appropriate assets you would see something not too far removed from the finished games engines you compare.

      Delete
    2. Yes, I agree with you on this rolfy. It was a little unfair of me to be pointing out those things when I've also been saying firmly that functionality comes before looks, but I am just a little surprised that Mark Blosser wrote a shader that blurred the entire scene. The reason I wrote that was to try and ensure that Lee didn't go too far down the wrong road in terms of visuals before realising it was the wrong road.

      And yes, that is indeed the best screenshot of Reloaded we've seen so far on this blog :)

      Delete
  6. The post processing issues in Reloaded have been fixed in Nomad Mod amongst others.

    http://fpscrforum.thegamecreators.com/?m=forum_view&t=207958&b=1

    ReplyDelete
  7. One consideration to keep in mind about quality is that, to my knowledge, FPSC:R does not allow custom resolutions and always runs in stretched mode at 1024x768. As such the quality will always look more inferior to comparable games that can be ran at 1920x1080 on widescreen displays in my opinion.

    ReplyDelete
    Replies
    1. Actually no. It really does run at the correct resolution. I made absolutely sure of that pretty early on. Only X9 runs at a fixed resolution, and even then you could still change it in setup.ini (as archaic as that system is).

      Delete
  8. Rolfy has summed things up very well - perfect :-)

    There's always going to be limitations and a balance needed to be found in any engine between the content and performance - the difference of course is that every engine has different sets of the underlying criteria and thus the levels of quality and performance will vary ultimately by the engines base quality of design I guess its fair to say.

    Performance is the key and you can only get so much out of an engine and keep the quality of content at a balanced level wherever that is. Can't make something what its not.

    As Rolfy has said and we know the rest is down to the end users and they can make a big difference. You can have great visual content and so on but still you cant get past the limits whatever they are in each engines case.

    Hopefully the next Beta will be helpful to end users and some of them may get some new screen shots out to show what can be done to date especially using the new Veg Pack when it comes or even their own media.

    :-)

    ReplyDelete
  9. Hopefully Lee's just about solved performance (for the time being). 1-2 more weeks and we should start getting other stuff, like basic visuals and more functionality :)

    ReplyDelete
  10. For those who didn't know you can adjust pre and post bloom,lightrays, brightness etc to suit your tastes in test level using F1-5 and < > keys :)

    ReplyDelete