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-07-04 Link

Node export and reference manual

What's new:

  • Support of parallax mask in materials.
  • Support of DXT1 textures with 1-bit alpha channel.
  • Bugfix of world loading: physical objects aren't moved to zero anymore.
  • Support of polygon primitive for COLLADA.
  • Adjustable polygon offset.
  • Node export from 3ds Max with materials.
  • "Priority" parameter doesn't belong exlusively to blending, it is available for all types of objects for rendering optimization (rendering order) now.

There is a Unigine menu item available after installation of our plugins for 3ds Max:
Unigine menu in 3ds Max
The most interesting item here is "Node export", which lets to export objects with materials into Unigine node files supported by UnigineEditor.

It's a vacation time, so there are only few changes in terms of code. However we have news in art content and documentation. We would like to introduce our technical writer, Valentina "fattie" Vaneeva. She is a highly competent person, prior to joining us Valia worked in ALT Linux development team as a translator and in Mozilla Organization as a chief of Russian localization team. So, for more than a month our reference manual has been being in safe hands, there is almost completed new "Technologies" section ("Lighting", "Shading", "Bump Mapping", "Shadows", "HDR Rendering", "Postprocessing", "Transparency", "Reflections", "Special Effects" and more to come) with a lot of pictures. This chapter of the reference manual is devoted to modern real-time technologies of virtual worlds in general, it would be useful for artists as well as programmers.

2007-06-05 Link

Sanctuary released!

Recent changes:

  • Release of "Sanctuary" demo!
  • Correct detection of MS Vista in SystemInfo.
  • Detection of ATI R600 cards.
  • Detection of SLI mode at NVIDIA cards.
  • Non-realtime rendering mode with fixed FPS for machinima movies.
  • Occluders skipping bugfix.
  • UnigineScript bugfix of complex expressions with brackets.
  • 64bit plugins for 3ds Max.
  • Freezing of physical objects.
  • Per-joint adjusting of iterations count.
  • Clamping of maximal impulses in joints.
  • New ObjectDummy object for hierarchy handling.
  • New convex hull physics primitive.
  • Setting of mass for ragdoll.
  • Automatic generation of ragdoll by arbitrary animated model.

Release of "Sanctuary" demo took a lot of our efforts, but it brought a lot of valuable feedback. Some major websites (including opengl.org and devmaster.net) published news about our demo and it became a starting point to massive testing and discussions about our technologies on different websites. Results are the following:

  1. Unigine v0.4 runs well on MS Windows 2000, 2003, XP and Vista, as well as different Linux distributives.
  2. Unigine v0.4 runs well on various NVIDIA NV30/NV40/G70/G80 and ATI R300/R400/R500/R600.
  3. Our render scales perfectly with GPU performance growth, we aren't CPU-bounded.
  4. SLI mode provides 2x boost of performance with our demo.
  5. There is very big performance problem of the driver with Vista/OpenGL on NVIDIA cards.
  6. There are a lot of people with great hardware, who are eager for great graphics.
  7. People do like our demos.
Benchmarking results are the following (with default settings):
  • ~2-5 FPS @ NV30
  • ~10-30 FPS @ NV40
  • ~15-80 FPS @ G70
  • ~150-180 FPS @ G80
  • ~5 FPS @ R300
  • ~10-25 FPS @ R400
  • ~10-85 FPS @ R500
  • ~130 FPS @ R600

At the end of this devlog entry we would like to show you our new effects for vegetation. This is ordinary rendering of leafs: No noise
The same scene with 3D noise for leafs:
With 3D noise

Some more news from our art department in conclusion: we aren't getting money for this, but here is a piece of advertisment: we bought all 4 DVDs of Arroway textures and they worth their price for 100%! Since we can't make photos of some materials we need, these textures is a big help for us.

2007-05-21 Link

Multithreaded physics, physics examples and bunch of other improvements.

What's new for this week:

  • Built-in XML parser in UnigineScript.
  • Improvements of UnigineScript's base classes: Dir, File, Image, RegExp and Xml can transparently interact with external functions, which use the same classes from the framework.
  • Now nv30 works with omni lights having hardware shadow maps enabled on OpenGL.
  • Correct work with fullscreen dualview mode on Linux.
  • Elimination of DirectInput usage.
  • Correct detection of videocard name via WMI under win32.
  • New renderImage() function in the render for image grabbing.
  • Small bugfix of video_restart on Direct3D9.
  • Elimination of LightWorld's singularity with parrallel to (0,0,1) view.
  • New billboard_impostor_base material for distant objects or LODs.
  • 3D spatial modulation of leafs' color by a texture.
  • Renaming parameters of vegetation materials ("amplitide" to "amplitude_scale" and "animation" to "animation_offset").
  • Reset of camera pivot point by 'g' button in UnigineEditor.
  • fabs() is now abs() in UnigineScript.
  • MeshMorph and MeshSkinned can save themself and be created from outside importers.
  • Morph target animation in MeshMorph, blending of up to 4 animations with arbitrary weights.
  • Skinned mesh import from Doom 3 format.
  • Morph mesh import from Quake 2 format.
  • Image class can compress/decompress 3D textures and create mipmaps for them now.
  • Independent angular and linear speed limits for each RigidBody.
  • A bunch of physics examples (we have finally replaced boring grey default textures by funny ones!).
  • Stable multithreaded physics by default.

If Unigine detects more than one CPU, it automatically use multiple threads (2 for now: render and physics). It gives drastically performance boost on multicore machines and even on systems with HyperThreading support. Now this scheme works perfectly and is enabled by default.

Stacking of objects:
Stacking of objects
Joints-based cloth:
Cloth
Accurate and fast joints:
Accurate and fast joints
Joints-based soft body:
Soft body
Joints destruction:
Joints destruction
Walking machine:
Walking machine

We have more physics examples now, all of them are available within evaluation kit.

PS: We were also busy with polishing our Unigine-based demo, "Sanctuary" (gothic-style one), which will be available tonight on our site, so stay tuned.

2007-05-13 Link

Rag doll physics.

Recent changes:

  • Linear and angular springs in joints.
  • Linear and angular limits in joints.
  • Linear and angular motors in joints.
  • JointUniversal has been removed because of uselessness (it can be done by JointBall with twist limit).
  • New JointWheel object.
  • Rag doll physics.
  • Editing of rag doll by UnigineEditor.
  • Functions of hierarchical transformations in skinned meshes.
  • Safe cloning of complex objects in UnigineEditor.
  • Support of lightmaps in mesh_reflection_cube material.

Rag doll physics can be easily switched from the animation-driven mode. Rag doll can works with complex skeleton affecting only big bones, smaller ones are transformed according to them.

Assembled rag dolls without skin:
Rag doll

2007-05-04 Link

Physics, stereo mode and history.

Recent changes:

  • Destroyable joints (maximal force and torque can be set independently).
  • Saving of joints into world and prefab files.
  • Damping in joints.
  • Linear motors.
  • Cone friction approximation instead of pyramid one.
  • Independent linear and angular damping in particles (don't forget to replace "friction" by "linear_damping" in all particle nodes).
  • Fixed tunneling bug in physics at low render FPS.
  • Correct "slow motion" mode in physics.
  • Play/Pause button in UnigineEditor (controls physics simulation).
  • Visualizer improvements.
  • Set of new functions: setWorldParent, addWorldChild and removeWorldChild, which preserve position of the object in the world space.
  • Quaternions improvements: unary operations, operations with scalars.
  • Saving of MeshDynamic geometry into world files.
  • Maya 8.5 plugins.
  • Fixed "force_no_shadows" bug with reflections.
  • Bugfix of soft hardware shadows at ATI/Direct3D9.
  • Deferred texture is available in the world_end pass and in postprocesses now.
  • Auto detection of videocard capabilities in Direct3D9 and OpenGL.

Frustum has made funny stereo mode as a proof of concept (you need stereo glasses like ones using in cinema to view this screenshots):
Stereo effect, special glasses required
This prototype effect works only under OpenGL/NVIDIA for the moment.
Stereo effect, special glasses required

By the way, today is 2nd anniversary of Unigine v0.3, our first commercial release (4 May, 2005). Here is some statistics about it:

binstream@binstream:~/work/unigine/Unigine_v0.3$ ./size.py
shaders           139 Kb   64 files    4459 lines
examples           94 Kb   18 files    3648 lines
levels             16 Kb    3 files     585 lines
src              1732 Kb  126 files   58521 lines
tools             118 Kb   30 files    4212 lines
total            2100 Kb  241 files   71425 lines
...and about the current state of Unigine v0.4:
binstream@binstream:~/work/unigine/Unigine_v0.4/source$ ./size.py
editor            568 Kb   49 files   20600 lines
scripts            59 Kb    5 files    1925 lines
shaders           634 Kb  166 files   23106 lines
tools              31 Kb   17 files    1230 lines
app                 9 Kb   21 files     303 lines
engine           4651 Kb  393 files  168415 lines
libraries         123 Kb   13 files    3649 lines
samples            69 Kb   29 files    2890 lines
tools             618 Kb   66 files   23842 lines
total            6764 Kb  759 files  245960 lines
Size isn't the most important parameter of the software project, but having the same quality level (even more higher for v0.4) you can estimate the progress.

PS: Don't forget to check out our updated screenshots gallery.