- Game Engines
- Web Development
- My Projects
NeoAxis Engine 1.1 — Technical Details and Feature Descriptions
This part is intended to provide an additional information about new features and give a little deeper insight into relevant technologies. If you are interested in game development and game engines — I highly encourage you to read the rest of the article, pretty sure that anyone will find something new and interesting in it. Also don't forget to check out the first part of this topic which is about the NeoAxis Engine 1.1 release.
Depth Buffer Access
One of the most long-expected and technically advanced new feature in NeoAxis 1.1 is the access to depth buffer as usual texture. This feature allows to integrate numerous modern rendering features such as Soft Particles, Depth of Field, Screen Space Ambient Occlusion ( SSAO ), etc. Technically this feature uses Multi Render Targets ( MRT ) for preparing depth buffer. Now, you have no need for special Z pre pass, as well as no need for rendering geometry twice. Currently, this feature is only available for Direct3D. At the picture to the right you can see the example of depth texture — dark areas is closest to the camera, gray and white are the furthest.
As the result of access to depth buffer Soft Particles technology has been added. Now any particle system and any material in general ( because the "Soft Particle" is the property of the material ) can be "soft", significantly improving visual quality of the special effects like smoke, fire, explosions, etc. The purpose of Soft Particles is to get rid of graphic artifacts that appear when particle quad intersects scene geometry. In such places particles that aren't "soft" usually got "cut", resulting in bad-looking particle "edge" or "seam". There is many techniques to deal with this issue, and one of them that used in NeoAxis is to just fade the particle if it’s getting to close to the scene. To do this, the scene without particles has to be rendered first and the depth saved in a texture. When drawing the particles, the depth of the particle will be compared to the scene depth. The alpha should be increased by a smooth fade by this depth difference. As result we got particles that are smoothly blended with the environment and scene geometry, making in look better.
Animation Tree System
Significant achievement was the addition of Animation Tree, that can be used to configure animations much easier. You don't need to write that much code for complex animation support anymore, like character animation, for example. Now you can do this by means of an animation tree file. This file is a scheme with operations and connections. Later visual editor will also be added.
In sum this will help to save a lot of time for adding your animations and setting them to work right. Animation tree systems is widely used by other modern and powerful AAA-class game engines, like Unreal Engine 3 from Epic Games. Now this feature also available in NeoAxis.
Navigation Mesh Pathfinding
There is a known difficult task in game development to implement fast and robust pathfinding system. NeoAxis 1.1 uses open-source Recast pathfinding system to implement powerful Navigation Mesh technology. Thus, in addition to previously available inside NeoAxis grid and waypoint-based navigation system, now it is possible to use third system — Navigation Mesh Pathfinding. One of the navigation mesh creation advantages is the fully automatic process — the system automatically created navigation mesh by defined settings.
The Recast process starts with constructing a voxel mold from a level geometry and then casting a navigation mesh over it. The process consists of three steps, building the voxel mold, partitioning the mold into simple regions, peeling off the regions as simple polygons.
1. The voxel mold is build from the input triangle mesh by rasterizing the triangles into a multi-layer heightfield. Some simple filters are then applied to the mold to prune out locations where the character would not be able to move.
2.The walkable areas described by the mold are divided into simple overlayed 2D regions. The resulting regions have only one non-overlapping contour, which simplifies the final step of the process tremendously.
3.The navigation polygons are peeled off from the regions by first tracing the boundaries and then simplifying them. The resulting polygons are finally converted to convex polygons which makes them perfect for pathfinding and spatial reasoning about the level.
In general, navigation mesh pathfinding is more up-to-date and "natural" way to create navigation possibilities for AI-controlled actors, rather than grid and waypoint navigation systems. Usage of navigation meshes technology provides additional benefits in terms of performance and speed due to reduced navigation graph density. With navmeshes one big open-space area can be represented by single navmesh polygon instead of dozen or even dozens of waypoints. This also reduces memory consumption because of decrease in the number of stored nodes, and can provide faster pathfinding through reduced overall navigation graph size.
Another advantage of Navigation mesh technology is the fact that it can be used for creation of multi-level pathfinding, when one level can be above or below another. With grid system pathfinding this option was unavailable. However, new system is not always the best one, and in some cases other systems can perform better — it is up to developer to use the most suitable pathfinding system in their projects.
New Vegetation Material
NeoAxis 1.1 is enhanced with new vegetation material. It can be used for realistic rendering of different vegetation, like grass, foliage and shrubs. New material uses combination of different approaches to achieve such results.
First, it uses Half-Lambert lightning, used by Valve in Half-Life 2. Translucency Maps support has been added to simulate effect of the passage of light through the vegetation material. Translucency maps in NeoAxis is the simple implementation of subsurface scattering effect that allows to achieve good results with good speed/quality ratio. Similar techniques for vegetation lightning was used in the most technically advanced PC first-person shooters of previous years — Crysis by the Crytek.
For even better results foliage and other vegetation can be animated, using values stored in vertex color attributes of the geometry. Finally, another major problem with the vegetation was the edge aliasing, where the edges can have graphic artifacts — so-called "ladders" on the edges. NeoAxis 1.1 now has new anti-aliasing effect to deal with this issue.
Fast Approximation Anti-Aliasing
Fast Approximation Anti-Aliasing ( FXAA ) — new anti-aliasing algorithm developed inside Nvidia by Timothy Lottes. FXAA advantages is the high speed and good quality. Technically FFXA is the single-pass pixel shader that applies to the image at post-processing stage. FXAA is less demanding in terms of resources , rather than FSAA ( full-scene anti-aliasing ) or MSAA ( Multisample anti-aliasing ).
That's it. Thanks for reading, hope you will enjoy using NeoAxis Engine!