Wednesday, 30 September 2009
Monday, 28 September 2009
Night vision will feature heat-maps for all vehicles that a shader will brighten or cool according to the activity of that vehicle. For the TADS optics we'll also put in a few scan-lines and a bloom effect to replicate 'gun camera' styles.
The new Arrowhead system that upgrades TADS has much improved optical resolution and the ability to see wires in the dark.
Posted by Richard Hawley at 22:12
This week I've been looking at fitting the engine around the desired game level size of 50x50km. That is a lot of data. So I said goodbye to the old Longbow 2 Azerbaijan terrain with it's demo forest and long grasses.
I put in the non-bump mapped SA9 to get an idea of scale and impression of how hard these things will be to find. They look first rate with moving shadows. The early bump map test models will look even better.
The new theatre of operations was hard to import at first. RAW height map files of 4096x4096 with the scale set to 10m per tile are now in place.
Now the terrain is set at 40x40km which is close enough to the desired size. The landscape has a barren feel, but real scale. The last two screen-shots show the same Longbow 2 terrain, but using layered bump mapping terrain textures. Vegetation is a problem to add on these large terrains, but I've been wanting to add a real-time editor mode so you can flip between sim and editing seamlessly, much like the award winning Playstation 3 title, Little Big Planet. The game as an editor you can play.
The resolution is not too good yet but it's a good region and an inspired choice.
The Apache model is looking a bit dated now, it really needs some love and care, and a paint job.
Very pleased with the overall feel of the terrain and scale. It serves the game well, short flight time to action, enough room for multi player missions to do their own thing and meet up for co-op play.
Physics and dynamics are looking promising. We may even get realistic Blackhawk sling-load operations from this.
Posted by Richard Hawley at 00:44
Thursday, 24 September 2009
A video demonstrating the HUD in action.
Posted by Richard Hawley at 15:09
Added bank angle and pitch ladder. Still some work to do on it, I'm having a few problems with the math, matching the angle lines to the horizon. The camera field of view is not taken into account and I really need the equation to to get the pitch ladder to fit with the outside world.
Plan B is to generate the whole ladder as a 3D object and use a pivot. That seems like cheating though.
Also I need to add a clipping area as parts of the ladder should not leak into other areas of the IHADSS.
Things to add,
- altitude bar
- torque and G bar
- flight path indicator
- command heading carret
- radar sweep position
- bobup marker
Found a bug with water reflection in the LE2 engine, it seems to rotate in the opposite direction to camera roll. You turn one way, the reflection rotates the other. Should be an easy fix.
Posted by Richard Hawley at 00:41
Tuesday, 22 September 2009
This weekend I began adding a head-up display system using OpenGL to draw complex line shapes as an overlay to scenes generated in the Leadwerks2 3D engine.
Problem I had before doing these HUDs was hard-coding all the locations. This time I'm using a system of relative points. With (0,0) as the center, (-1,-1) is top left, (1,1) bottom right.
This allows me to organise the HUD as a hierarchy and re-use elements for different vehicles/aircraft. As a benefit, it's resolution independent so should scale to any display device.
I will adapt the MFD code already in place, currently only the ground radar is operational, it needs to draw a lot of lines to represent the Arcs of the ground radar. It would benefit greatly from using OpenGL. I will optimise the HUD and MFD drawing to build all the HUD elements in the OpenGL buffer and only render them at the end of the update.
The only drawback is mixing in the text elements which use bitmap fonts in the LE2 engine. As I have to restore the OpenGL stack before using LE2, I wonder if there would be any benefit in populating my own command buffer to draw text after rendering the vectors (lines).
It's one possible optimisation to consider later.