2008-12-08
A step closer to indies
Unigine prices are set to a very affordable level prior to January 31, 2009: e.g. indie developers can get a binary license starting with $4990 (or even just $1985 per month during 3 months). Full licenses are now with lifetime updates access. See more on Licensing & Prices page.
2008-12-03
First stage of "Magus ex Machina" is completed
Qilqax International has successfully completed first production stage of "Magus ex Machina", the first 3D animated movie developed using a videogame GPU rendering technique, based on Unigine technologies. Read more in the official press-release.
2008-12-01
DHLXStudios licenses Unigine
DHLXStudios, a Greek game development company licensed Unigine engine to be used in development of a 3D multi-user virtual world platform for immersive, parallel, cultural story telling. Read more in the official press-release.

Development Log

You can subscribe to our RSS feed.
There is also a translated LiveJournal account: unigine_devlog.
Pages: 1234567891011
2008-12-31 Link

Happy New Year!

Changes of this week:

  • Added access to collision contacts of Players.
  • Fixed minor bug in UnigineScript with namespaces and user-defined classes.
  • Refactored Actor system.
  • LightSpot performance optimization.
  • User classes in UnigineScript can be stored as keys in maps.
  • Character class divided into Character, CharacterParticipant, and CharacterNpc.
  • Fixed missing Windows SDK issue in install.py script.
  • Updated reference manual (Console, UnigineScript library).

Current Unigine codebase statistics:

engine            6611 Kb  672 files  237312 lines
shaders           1148 Kb  288 files   41467 lines
scripts            162 Kb   15 files    5862 lines
editor            1221 Kb   96 files   42125 lines
tools              765 Kb   61 files   27704 lines
app main            62 Kb   28 files    2238 lines
app samples        238 Kb   62 files    9871 lines
build system        39 Kb   29 files    1770 lines
build scripts       59 Kb   91 files    1736 lines
docs scripts        30 Kb    7 files     963 lines
total            10339 Kb 1349 files  371048 lines

Happy New Year

Happy New Year!

2008-12-23 Link

Cinematic DoF and fast lights

Programmer news:

  • Dedicated shaders for non-shadowed surfaces, huge speedup on high quality shader profile.
  • Severe renaming of shader constants due to refactoring.
  • Added set of functions for access to packed files (engine.filesystem.getNumUngPackageFiles and others).
  • Per-node storing of properties and materials (use this feature carefully with materials because it can affect performance).
  • More verbose scripts parser: filename for #warning and #error, added __FILE__ and __LINE__ defines, more informative asserts and breakpoints.
  • Fixed PSD saving code.
  • More samples with lights.

Artist news:

  • New LightSpot object: very fast omni light without shadows, which can group by 4 sources and render at once.
  • Adjustable diffuse scale for all light sources.
  • Independent LOD system for lights, there are three new parameters: light distance (after this distance light starts fading), shadow distance (after this distance shadow starts fading), fade distance.
  • The same LOD model for particle systems with visible and fade distances.
  • Corrected ambient color calculation for water.
  • LightCube R.I.P., LightOmni now can be modulated by a cubemap, if needed.
  • ObjectMeshMorph support removed.
  • Fixed lack of accuracy in color dialog (HSV colorspace).
  • Adjustable background color of the scene (useful for blue/green screen composing systems).
  • Bokeh filter, available in DirectX10 and OpenGL with geometry shaders (it can be turned on by "render_dof 2 && render_restart" console command).

Bokeh filter is disscussed in blogs for a while, for example in Vincent Scheib's one, "Beautiful Pixels". Here are examples of Bokeh filter usage in Unigine:
Ordinary DoF Bokeh filter
Ordinary DoF Bokeh filter
Ordinary DoF Bokeh filter
Ordinary DoF Bokeh filter

That's how multiple LightSpots can improve a look of the scene, where it's hard to use that many LightOmni:
LightSpot disabled LightSpot enabled
LightSpot disabled LightSpot enabled
LightSpot disabled LightSpot enabled
LightSpot disabled LightSpot enabled

Resulting image quality of LightSpot + lightmaps mixture is very good for night modes, especially taking into the account nice performance (the screenshot is taken from an unnounced Unigine-based game, developing by our content department):
City lights

We're also pleased to note that two more game developers have joined our crew, Alexey "FadeToBlack" Egorov (developer) and Stanislav "brrrrr" Zagniy (3D artist), welcome aboard! They shipped a funny game "Sumotoha" recently and now are working on our internal projects.

2008-12-10 Link

New sound system is completed

Programmer news:

  • OpenAL-based (with EFX extensions) sound module is done.
  • Sound renderer can handle virtually unlimited number of sound sources with occlusion and supports single and multiple reverberation zones.
  • More robust loading of WAV files.
  • Updated sound samples.
  • Shader constants s_ilight_radius and s_ilight_shadow_radius are renamed into s_light_iradius and s_light_shadow_iradius.
  • Render speedup due to more effective shader caching.
  • Fixed rare flickering of transparent surfaces.
  • Fixed bug with recursive call of script functions through C++ API.
  • Added support of operator== and operator!= for user classes in UnigineScript.
  • Added data/core/scripts/math.h to simplify 3D math works.
  • New character system with adjustable camera presets, see data/core/scripts/character.h and "actor_04" sample.
  • Updated reference manual.

Artist news:

  • Faster and better Depth of Field implementation, you'll have to re-adjust settings a little.
  • Box occluders.
  • New random type of particle emitters.
  • Visualization of sounds and reverberation zones.
  • Independent tuning of specular power and specular scale for light sources.
  • Even more settings in scattering, independent adjusting of ray/mie colors.
  • Added color scale for reflections.

Reverberation zones

New version of OpenAL works well in Linux finally, so it's the right time to introduce our new sound system. There is also a pretty nice software implementation of OpenAL, which supports EFX extensions with a single reverberation zone.

By the way, recently AMD has issued a Unigine-related press-release: "Momentum for Microsoft(R) DirectX(R) 10.1 Grows with Major Game Titles, Next-Generation 3D Game Engines, and Windows(R) 7 API". There is also an interesting press-release regarding a Unigine-based project: First production stage of "Magus ex Machina" is completed:
A screenshot from 'Magus ex Machina', a Unigine-based 3D animated movie

PS: We have introduced a more affordable pricing scheme prior to January 1, 2009: indie developers can get a binary license starting with $4990 (or even just $1985 per month during 3 months). Take a look at "Licensing & Prices" page for more info. Moreover, full licenses are now with lifetime updates access.

PPS: Here is a photo of our new development studio's hall (yesterday TV reporters were here, so now one can see a story about Unigine via local TV network):
Unigine development studio

2008-11-26 Link

Optimizations and very verbose scripts

Recent changes:

  • Instancing of skinned and dynamic meshes.
  • Much faster stereo rendering due to shadows optimization.
  • Terrain speedup.
  • Alpha-channel of specular textures is no longer responsible for reflections, it modulates specular power (glossiness) now.
  • Square brush in TerrainEditor.
  • Manager has been renamed to RenderManager.
  • Adjustable number of splits for WorldLights.
  • Fixed material preview bug.
  • Fixed flickering of water reflections.
  • Added initial angle and velocity scale for particles.
  • Visualization of occulsion query primitives in UnigineEditor.
  • Added terrain sample with unique texturing (terrain_01).
  • Intersection masks, engine.world.getIntersection() functions get a mask as third parameter.
  • New order of arguments for initialization: Engine::init(UNIGINE_VERSION,argc,argv,project,password), where 'password' is a password for encrypted file packs.
  • Script and shader preprocessor accepts only angle brackets for #include directive.
  • Warnings on unused variables and arrays in scripts.
  • More verbose script interpreter output on errors, including file name and line number.

Some notes on instancing follows. There is a pool for 64 bones drawn in once, so there is a huge speedup on skinned meshes with simple skeletons. Cloned ObjectMeshDymamic are also instanced, they are drawn by 32 in a batch. Plus there are some performance improvements in instancing of static meshes.

Here are pics for today, particle-based fountains from our unannounced game:
Particle-based fountain
Particle-based fountain

2008-11-05 Link

Tropics 1.1, auxiliary buffer, NULL render

There is an updated version of Tropics demo 1.1 available now, main changes are performanse boost, added procedural grass and support of DirectX 10.1 multisampling features. Our web-server is experiencing heavy overload due to the fact, so please be patient while downloading the demo.

Recent changes:

  • New Auxiliary buffer (RGBA8) for different effects (e.g. you can store some object's masks there), it can be accessed from a postprocessing shader.
  • Fixed HDR bug with some rare configurations.
  • Pixel Shader Model 3.0 support is required now, so minimal supported hardware is ATI Radeon X1xxx / NVIDIA GeForce 6xxx from now on.
  • No more is*Available() functions in the render.
  • New console variable d3d10_render_use_alpha_test_level_1 for DirectX 10.1 AA.
  • 2D_Array textures are supported by Image class now.
  • Fixed terrain tool crashes on heavy meshes.
  • Fixed terrain seams.
  • Terrain speedup.
  • Restored clipmap material with unique material for the terrain (see below).
  • A new format of the terrain palette without borders, "palette" tool R.I.P.
  • Fixed too dark clouds in DirectX 10.
  • Correct detection of NVIDIA GTX 2xx series.
  • NULL render, which doesn't render anything (useful for server purposes).
  • New Terminal class to work with a text console.
  • Removed FMOD and xaudio2 support.
  • Translucence flag is splitted into two options for casting and receiving (it allows to avoid biases adjusting).
  • Fixed translucency in shadowed regions.
  • A function for setting composite material, default one is render_composite.
  • Foliage noise is reverted back on low shader profile.
  • Fixed enabling of disabled NodeRef's after reloading of a world.
  • Access to the list of filesystem's files.

Due to multiple requests we've got back old terrain material (with unique mapping) in addition to a new one, so now one can choose between them. Thus now there are two different materials available (if there is a mask, so it's a splattering material, if there is a diffuse clipmap, but no mask, so it's a climpaped one).

Pages: 1234567891011