Wednesday, 6 February 2013

Wednesday Crammed

Plenty of Day

For some reason my body clock has been screwy this last week or so. I can't seem to oversleep?! No matter how late I go to bed, I am waking before 8AM and on my feet around 9AM. Very unusual for me. It might be those three sets of days I glued together last week! We will see if this disturbing trend continues this week.

Two Job Lee

My mind says I have two jobs to today. My AGK project and the Reloaded P002 prototype (and my blog). Okay, so three jobs. Four if you count emails. Four jobs today.  Firstly a report.

Reloaded Report

After my blog post last night I broke out the Reloaded prototype source and attempted to solve the issue causing some objects to remain visible even though there where clearly occluded. Turns out my top and bottom planes caused by the top and bottom edges of the bound box occluder where reversing the Z values, meaning the further back I went the more likely the reversed plane would slice right through the object being occluded and make it visible.  Easy to write down but took three hours to disassemble my plane creation and detection code to find it.

I have reduced my prototype to create a single face from an arbitrarily created bound box and that works great, occluding everything behind it with alarming accuracy. The downside is that the occlusion fails if my occluder has a negative Z position and the other faces of the bound box did not occlude at all. I am also concerned that my fudge to fix the top and bottom plane detectors is indicative of faulty plane creation/usage code.

I suspect the issue relates to my confused sense of world space versus view space and trying to get the two to co-operate. I have decided that instead of trying to fudge the other faces to get it all working around the bound box and in plus Z situations, I am going to re-write the occluder using all view space coordinates. This should mean that it will not matter if it's up, down, left, right, high, low or any other combination. A plane is a plane and anything trapped within the volume that employs it will be culled from view.


Before that however, I have some small tweaks and integrations to make on the other project I am finishing off. I don't anticipate this will take too long and I have already fixed the remaining issue from last night over my morning coffee so hopefully I can be out of AGK land and in Reloaded land before dinner time.

Sneak Peek Sniper Rifle

Rick kindly made a video of the new sniper rifle so you can see those lovely weapon shaders employing cube mapping and metallic reflection tricks.

Don't worry about the old classic zoom mechanism, we're going to upgrade this, along with new HUD art, extra motion options when you move and further down the road, customisable weapon attachments ;) Exciting times ahead!

Signing Off

I have no doubt emails will arrive to attempt to distract me, but time is a wasting and I only have two and a bit days to get the main FPSC source code and strip it down to eliminate the build step.  I did not anticipate the occluder prototype would take LONGER than the real-time light mapping prototype, but that's development right there!


  1. Rifle looks good.
    I wish new scoping would look something like Hitman's.

    Talking about 'customizable weapon attachments', you mean silencers and etc, right?

  2. Looking forward to seeing more ceilings that don't have floor textures. ;) j/k

  3. Lee, do you plan on or intend to add Direct X 11 support to FPSCR? If so, i'd like you to implement tessellation to the engine so that everything looks and performs fantastically. Just an idea.

    Please reply & thank you for your time.

  4. No plans to use DirectX 11. I will be sticking with the current DirectX 9 technology and going nuts with the shaders instead!

  5. I would be happy to have a shader driven technology so people can create their own materials and image effects (similar to Unity3D). And thus, you don't have to create countless of shaders your self. Also leave the door open for more advanced users (maybe C++ and/or scripting access).