Development log: November 02, 2010
Refactored render, improved vegetation system, increased data precision in scripts
Render:
- Completely new vegetation system: trunk bending, rotation of billboard leaves, spatial noise for randomized movement of vegetation.
- Added the motion blur postprocess (takes into the account both the camera velocity and velocities of physical bodies).
- Added indirect occlusion (SSDO) to simulate real-time global illumination.
- Complete shaders refactoring (all texture samplers were shifted).
- Unified LOD system for all objects, parameters are in surface settings (visible and fade distances are removed from objects).
- Smooth transition between LODs for all meshes, 3D GUI objects and billboards basing on the screen space noise. Leaves use fading based on the to alpha test scale.
- Improved stereo 3D model: parallel axis asymmetric frustum perspective projection instead of the old toe-in projection. Now there are only two stereo 3D parameters: depth and eyes distance.
- Added mesh_terrain_base base material for mesh-based terrains.
- Slice count in volumetric clouds became tweakable (ObjectSky).
- Transparent surfaces are sorted by the the distance from the oriented bounding box (OBB).
- Unified shadow rendering for all light types into a single pass.
- Improved tesselation DIP performance.
- Eliminated deferred buffer conflicts.
- Added dedicated depth buffer with 24 bit precision, dedicated diffuse color, normals and parallax offset buffers.
- Different sets of deferred buffers are used depending on the render settings.
- Added a super-simplified rendering of lights - pure deferred shading, when geometry is drawn only once. It is activated with 'render_deferred 2' console command and can be very useful for old hardware.
- Fixed a bug by WidgetSpriteRender rendering.
- Improved ObjectVolumeBox precision.
- Fixed PolygonOffset in auxiliary and refraction passes.
- DirectCompute is not used for postprocesses, beacuse it has proven to be useless.
- Added more render profiler counters (RT*); use 'render_profiler 1' console command to activate.
- Added support of of circle and circular sector rendering into the visualizator.
- WorldClutter can be randomized with a seed.
- Global scale parameter for all distance-related render parameters, including LODs (easy quality/performance tuning).
- Fixed sRGB on diffuse texture of terrain.
- Improved parrallax occlusion mapping quiality.
- All objects can be drawn into the auxiliary buffer.
- Changed blending mode of the auxiliary buffer: now it's lerp() according to its alpha value.
- Added a sky background cubemap into the ObjectSky.
- Added a shadow offset for billboard-based grass.
- Added two more parameters for DoF.
- Fixed Direct3D9 bug of rendering random additional geometry instead of a fullscreen polygon.
- Several minor Direct3D9 bugfixes.
- Added a fast antialiasing filter, use 'render_antialiasing 1' console command to enable.
- Removed post_filter_antialiasing material.
- volume_cloud_base supports a gradient image for volume rendering.
- Improved render streaming for objects with big number of surfaces.
UnigineScript:
- Added new data types with increased precision into UnigineScript: long, double, dvec3, dvec4 (see details below).
- Support of 'long long' data type in streams.
- Support of #pragma preprocessor instruction.
- Fixed wrong 'this' statement in UnigineScript class destructor.
- Added a frame counter: engine.game.getFrame().
- Fixed NULL pointer memory leak.
- Fixed bug with incorrect deletion of user classes.
- Added Unigine::Quadrulple container.
C++ API:
- Introduced C++ plugins to the engine, that allow to load a custom library dynamically in engine runtime (see Unigine::Plugin class in C++ API documentation). To enable a plugin, use engine.addPlugin(PLUGIN) or add '-extern_plugin PLUGIN' command line option, where PLUGIN is a name of the plugin library (without a postfix and extension).
- Added sample of C++ plugins usage: source/samples/Api/Plugin.
- A set of functions for easy access to C++ API pointers without complex type casting.
- C++ API pointers can be cleared by calling clear().
Tools:
- Added global parameters for hardware tessellation into UnigineEditor.
- Added global parameters for vegetation animation into UnigineEditor.
- Added Maya 2011 plugins.
- Added tooltips to all material parameters in UnigineEditor.
- Restored ImageView tool.
Documentation:
- Added terrain tutorial into the reference manual.
- Added "Programming / Memory Management" article.
- Updated UnigineScript library documentation.
- Added articles on terrain and terrain occluder objects into the "Principles of Operation / Objects" section.
Other:
- Support of OpenCL 1.1.
- Added dumping of linear velocity for ropes and cloth.
- Fixed signal handling in Linux.
- Access to bodies of the object or its parents via nodes.
- Fixed FontRich parser in GUI.
- Added support of font spacing in GUI.
- Changed the file format of terrains. Use utils/Upgrade/terrain.py script for upgrade.
- Non-physical PlayerActor supports friction.
- Added 'clear' console command.
- File searching in a separate thread (be aware that filesystem_reload is less safe now).
- Fixed HScroll and VScroll precision bug.
- Fixed crash by loading NodeReference without a node.
- Network system now works as a C++ plugin.
- Added support of Sixaxis gamepad (new script defines are available now: HAS_JOYSTICK, HAS_XPAD360 and HAS_SIXAXIS).
Notice on double-precision data types in scripts
Long data type has L/l postfix. Long and double data types don't consume additional memory in comparison with ordinary types, while dvec3 and dvec4 are quite heavy.
There are two useful preprocessor instructions: '#pragma no_long' and '#pragma no_double' is to treat all variables in old fashion (ints and floats); '#pragma warn_long' and '#pragma warn_double' is to block script compilation if there is a long or a double variable present.
Please be aware that if you leave your scripts unrevised, memory consumption will increase, while the performance will decrease!
There are also updated in-game screenshots in OilRush gallery (don't mind the UI, it's still work-in-progress):
Whew, that was a huge update indeed!
Last News
We continue to share the experience of UNIGINE Corp. team in creating interactive real-time 3D worlds.
A new article from our technical artists about some techniques used in development of Oil Rush naval strategy game is published, it contains a set of re-usable filters available for download.
Read the article: Procedural Content Generation for Real-Time 3D Applications Part 1: Oil Rush
UNIGINE Corp. sets a new visual standard in the simulation and training industry with a preview of its next-generation technology demo. The project has the cutting-edge UNIGINE Engine under the hood and showcases a simulation of a rescue helicopter operation with an extreme level of detail while running on consumer-level hardware.
Read more in the official press-release.
As of today, Oil Rush, the epic naval strategy game, comes together with the Humble Indie Bundle 8. It is a unique, pay-what-you-want offer available for less than seven days, and this fascinating 3D game is unlocked as one of the bonuses if more than the average contribution for a bundle is paid. The game is an independent project by UNIGINE Corp. based on the proprietary UNIGINE Engine. Read more in the official press-release.
Trinity Interactive, one of the leading Polish suppliers of software and equipment for simulation and training, has chosen the UNIGINE platform for pushing their newest projects to the next level of visual fidelity and performance. The company is well-known due to the highest quality and innovative character of its products both for military and civil purposes which provides the maximum possible training experience.
Read more in the official press-release.
The International Forum for the Military Training, Education and Simulation Sectors (May 22-24, Rome) is one of the most important and major industrial events that combines thematic exhibition and forum. UNIGINE Corp. demonstrates new features of UNIGINE Engine for simulation, visualization projects and virtual reality systems at ITEC. Visit our stand #B160 to see all-new unannounced UNIGINE-powered technology demo based on geospatial data. We also invite you to attend the UNIGINE Engine presentation at the Innovative Showcase at 5 PM on May 22!
The game supports Linux (as a standalone application) from the very beginning, so we are really happy that finally Linux users can enjoy hot naval battles with the whole Steam community (cross-platforms multiplayer matches are available). Fight for the last drop of oil and try to survive!
UNIGINE’s Valley Benchmark, which features an enormously vast outdoor 3D environment filled with lush forests, is coming bundled this spring with groundbreaking EVGA GeForce GTX graphics cards. This all-new comprehensive benchmarking tool from the lineup of trusted benchmarks from UNIGINE Corp., is already acclaimed by users and industry professionals as a miraculously beautiful yet efficient GPU stress-testing tool for Windows, Linux and Mac OS X. Read more in the official press-release.
Oil Rush, an epic naval strategy game, is released for Android devices based on Qualcomm’s Snapdragon S4 chip. The game is already available on the Google Play Store and you can jump into the next-generation of 3D graphics, hardcore depth and touch-native controls directly on a mobile device. Oil Rush for Android is based on the proprietary multi-platform UNIGINE Engine and developed by UNIGINE Corp. Read more in the official press-release.





