2010-07-26
We are hiring
Our company is growing so we would be happy to see new team members: developers, PM, sales manager and system administrator. Moreover, the good news is our convenient office in Tomsk is now doubled in size!
2010-05-25
Heaven 2.1, Tropics 1.3, Sanctuary 2.3
Released updated versions of Unigine benchmarks with support of OpenGL 4.0 (including hardware tessellation) and stereo 3D technology (including 3D Vision): Heaven 2.1, Tropics 1.3 and Sanctuary 2.3.
2010-05-04
5 years since the first commercial release of Unigine
The first commercial version of Unigine engine was released five years ago, on May 4, 2005. With the release number 0.3, it had codebase size of approximately 10% relative to the current one. At that time, there used to be 5 people on board.
2010-03-23
Unigine Heaven Benchmark 2.0
Updated version of Unigine Heaven DirectX 11 benchmark is now publicly available. Main changes are: added more content, improved engine, introduced "moderate" and "extreme" tessellation modes, added Linux version (32/64 bit).
2010-02-22
Unigine booth at GDC SF 2010
We gladly invite you to come visit our booth #1344 at Game Developers Conference, San Francisco, 2010. There you will be presented the recent version of Unigine Engine and the Heaven Benchmark 2.0 along with a lot of featured Unigine-based content. Feel free to contact us for an appointment.

Development Log

You can subscribe to our RSS feed.
There is also a translated LiveJournal account: unigine_devlog.
2007-09-17 Link

Bugfixes and plans for DirectX 10

Recent changes:

  • Setting of time for video playback (Theora wrapper).
  • Video playback sample.
  • Viewports and multisampling are under control of GLExt and D3D9Ext now.
  • Compressed clipmap textures of terrain normals are replaced by uncompressed ones due to bugs in drivers (though compressed clipmaps works OK under Direct3D 10).
  • "Animation only" feature in Maya plugins for animation export.
  • Fixed bugs in Maya plugins.
  • Geometry shaders framework for OpenGL.

It was funny to found out that in order to speed up ResourceEditor on G80 under Windows one needs to select "Single display performance mode" in NVIDIA's control panel. Having multiple monitors one needs to add ResourceEditor into "Program Settings" tab of the panel and select "Single display" option for it.

A kind of announcement: Frustum (our lead developer) is occupied with Direct3D 10 render now. It seems that there will be 3 different renders: OpenGL, Direct3D 9 and Direct3D 10. Thanks to elaborate design of Unigine's framework the introduction of new render is performing easily.

2007-09-12 Link

New huge terrain!

What's new for this month:

  • Completed terrain framework (heightmap-based, 9 LODs, full LOD's geomorphing, full data streaming, normalmap support).
  • Terrain module in the engine with intersection and collision support.
  • Terrain editor (embedded into ResourceEditor): different brushes (normal, addition, subtract, smooth, dilate, erode) for editing heightmap and diffuse texture; normalmap brushes; undo support, maximal terrain size is 262145 x 262145, unique textures up to 262145 x 262145.
  • Clipmap textures for unique mapping of the terrain.
  • Improvements of material file syntax: materials use shader names from previous states.
  • List of visible nodes is saved into save file now.
  • XML module now disallow setting multiple arguments with the same name to a node.
  • Image class can copy compressed images.
  • ImageDDS now supports 2 new flags: -w (width) and -h (height).
  • Improved image scalator: more quality.
  • Support of mipmaps generation and scaling for odd size textures.
  • Shift of textures in shaders (all 16 texture combiners are used now).
  • Resolved static/dynamic libraries issue under Linux.
  • Release Linux build works on almost all distributives without weird libraries dependencies.
  • Fixed Maya plugins for animation exporting.
  • Image class supports all TGA formats (L8, L16, RGB8, RGBA8; both compressed and not) plus indexed ones (RGB8 and RGBA8).
  • "Rendering Sequence", "Simulation of Physics" and "File System" articles in "Principles of Operation" section of the manual.
  • Revised "Programming" section of the manual: "Development Environment", "Console", "Mesh File Formats" articles; "Unigine C++ API", "GUI", "UnigineScript" subsections.
  • Completed documentation for Core Library of UnigineScript.
  • UnigineAPI documentation has been embedded into Unigine reference manual, now all the docs are gathered together.

Texture limits for terrain with 2048 x 2028 clipmap: 65536 x 65536 for diffuse and 32768 x 32768 for normal map. If there is no need to support old hardware, clipmap texture size can be increased up to 4096 x 4096 pixels, thus we can obtain maximal size of the textures (see above). By means of TerrainEditor one can export/import parts of terrain from/to external applications.
Terrain
Sorry for the programmer's art, our artists had no time to create something more pretty-looking.

However, there are some unsolved issues with new terrain:

  • Terrain doesn't cast shadow from LightWorld yet.
  • There are some restrictions on reflections: water and other horizontal reflactions are OK, while having slope reflection causes frequent update of terrain buffers and clipmaps.
  • Rendering quality can be improved by interpolation between clipmaps, but is causes great speed drop on any GPUs except for DX10-capable ones.
Nevertheless such a huge terrain with unique mapping is something hard to imagine. But it works!

Our artists made a lot of work this month on forthcoming big demo, there are combined lighting and an almost completed new vehicle there. We hope next time we'll show you some pretty screenshots, stay tuned.

2007-08-09 Link

Less physics iterations, more docs

Recent changes:

  • Static library linkage under GCC 4.
  • Joints performance optimization.
  • Bunch of new physics samples.
  • Integer vectors in Mathlib.
  • Runge-Kutta integration of rotation.
  • JointWheel improvements: it can work correctly with low iteration count because of subiterations.
  • Contacts solver was taken out of BodyRigid into special Solver class.
  • Reducing of default iteration count for physics from 8 to 4 due to increased stability.
  • Objects handling sample: attaching a mesh to some bone of skinned mesh (useful for attaching weapons to a character).
  • "Engine Architecture" and "Execution Sequence" articles in "Principles of Operation" section of the manual.

Now we can randomize contacts and joints processing per-object and even per-contact, it produces a lot of CPU cache misses, however it brings drastically improved stability. Outside physics our main development efforts for the moment are works on terrain system, including corresponding materials and tools.

Meanwhile Unigine reference manual is becoming better and better, this is one of the pictures from "Principles of Operation / Execution Sequence" article: Frame time line

By the way, if you are interested, here is almost all of our Tomsk branch crew (other people work remotely):
Unigine Tomsk crew
From left to the right: Andrey "Pluton" Kushner (Lead 3D artist), Peter "Ruby" Sannikov (3D artist), Alexander "Frustum" Zaprjagaev (CTO, Lead developer and The Brain), Denis "Binstream" Shergin (CEO, Project manager), Valentina "Fattie" Vaneeva (Technical writer and Tools developer) and Eugenia "Jane" Shergina (Designer, Art supervisor). Our team is not so big, but extremely effective: the results speak for themselves.

2007-08-02 Link

Physics stabilization

This week changes:

  • Increased precision of physics simulation.
  • New JointWheel object, old one is renamed to JointSuspension.
  • Fixed functions of BodyRigid: addForce, addTorque, addWorldForce, addWorldTorque.
  • transposeRotation function renamed to transpose3.
  • Added inverse3 function for fast invertion of matrices.
  • Improved robustness of joints solver.
  • Fixed cone friction.
  • Ray car sample.
  • Crawler sample.
  • Maya 8.5/Linux plugins.
  • Network sockets functions in UnigineScript library.
  • "Virtual World" chapter in "Principles of Operation" section of the manual.

Our tire model is rather simple, however it is enough for games. All dynamic parameters can be read from wheels. Pacejka's magic formula can be easily implemented if one needs the highest level of realism, but it requires too much constants for different tires so we decided to neglect it.

2007-07-24 Link

Light scattering

Recent changes:

  • GCC 4 build.
  • Full-scene per-pixel light scattering.
  • Scaler manipulator.
  • Support of compression into DXT3 format.
  • Set of UnigineScript defines by means of API and command line.
  • Detection of CPU features via __cpuid and __rdtsc intrinsics under MS Windows.
  • JointWheel usage example.
  • New PlayerPersecutor object (3rd person look).
  • New PlayerActor object (1st person look).

After a set of experiments we have found out that non-uniform scaling of objects produces way too much problems, so this feature wouldn't be provided. Moreover objects scaling noticeably reduces performance so we recommend to use pre-scaled objects.

We are also intensively continuing works on reference manual, now we have a semi-automatic system for documenting our huge UnigineScript library, which contains more than 2000 functions for the moment.