Friday, 17 October 2014

Improved Ray Cast Command

Spent most of the day improving a central command called INTERSECT ALL which is used by both enemies and the player. The old implementation was good enough, but given it's heavy use and it's tendency to create performance spikes, I decided to implement some better ways of doing the same thing.


The new system first collects all the collision boxes that are touched by the ray, and then sorts them by distance, and only then does it go through the polygons associated with each box.  This way I get very early exits when the ray does not pass through any boxes, and a minimal traversal of polygons when it does hit something. Thanks to the internal team for their ideas on this, and it definitely solved the performance spike issues.

I was set to do some work on explosion improvements, but the decision was taken to spend two more days on visuals next week, namely TONE MAPPING and AMBIANCE FROM SKYBOX which will combine to create a better light balance in the scene. My minor concern is that both of these might require a small performance hit so it will be interesting to see what the trade-off and benefits are when these techniques have been implemented.  The good news is that FPSC Classic had a sort of tone mapper shader, so I will be looking to dig that out as a starting point.

11 comments:

  1. Sorry, is that EAI weapon tweaked for reloaded? Is this a hint at something?

    ReplyDelete
    Replies
    1. Yes indeed, I am working with EAI to improve the weapon system. This weekend I added support for illumination maps so you can have glowing things on your guns. He's also helping refine the 'feel' of the guns too so watch this space for more armory news!

      Delete
    2. That all sounds freaking awesome!! I'm SO excited that EAI (who I've never heard of but assume created the really cool weapon packs for X9) is helping make guns feel better! And glowmaps are ALWAYS appreciated!

      Delete
  2. Even if it does have a performance hit, hopefully if it's implemented well enough it will make the visuals more appealing.

    After all, rendering anything at all is a performance hit.

    ReplyDelete
    Replies
    1. My gut feel is that the tone mapping hit will be minimal as bloom is already doing a lot, and the skybox ambience adds an extra texture ref to ALL shaders so this might be the one to think out. One idea is to pre-load an array of values into shader constants and use that instead of a texture read. Links to FAST techniques welcome!!

      Delete
    2. I am loving the sound of tone mapping (always liked that effect) and I'm not worried at all about it being slow. AFAIK tone mapping should be one of the fastest fullscreen effects you can do. And ambient lighting from the skybox should be mostly precalculable, should it not?

      I'll see if I can find a link to a good tone mapping shader...

      Delete
    3. Ok, I know I've said this before, but Valve's slides can be very, very helpful in getting your head around how something might be done, and also PROVE that the graphics I want were done perfectly back in 2004 on 2004 hardware. There's no reason whatsoever that Reloaded should be having this much trouble with performance.

      The following PDF link is one of Valve's slides from 2006, giving examples and comparisons of the different methods they took to achieve the graphics they got:

      http://www.valvesoftware.com/publications/2006/SIGGRAPH06_Course_HDRInValvesSourceEngine_Slides.pdf

      Delete
  3. hello
    I have a idea why not find a level created in unreal or cry3 and reproduce it in
    fpsc reloaded so people can get a better idea of fpsc reloaded power and stuff.

    ReplyDelete
    Replies
    1. Yes that would be great, I just need a volunteer. I recommend a simple scene to start with, maybe a few objects in the scene and an FPS run around mode and then reproduce in Reloaded, and to a side by side comparison :)

      Delete
    2. It is an excellent suggestion - create a good-looking level in a AAA engine, then attempt to create the same in Reloaded and compare them. Obviously Reloaded isn't meant to be AAA but it would show up any glaring issues. I'll see if I can do this myself as I have a fair amount of experience with this sort of thing and I'm always going on about how bad Reloaded's graphics are :P

      Delete
  4. Also, Lee - how about I suggest something incredibly useful for you:

    http://store.steampowered.com/hwsurvey/

    It's Valve's massive hardware survey they conduct frequently. It shows basically what millions of people are using and also what the minorities are so you have a near-perfect idea of what computers people have.

    ReplyDelete