Development log: July 20, 2012

Full Support for Windows 8

Render:

  • Added Overlap and Overlay modes for detail materials into mesh_terrain_base material. Now caves, cliffs and other meshes can have the same detail texturing as a terrain does.
  • Improved support of geometry shaders on Mac OS X. Now wireframe mode and bokeh DOF are supported on this platform.
  • Added SHADER_LANGUAGE definition to define a version of OpenGL and OpenGL ES shaders.
  • Engine profiler and engine messages are now always rendered on top.
  • Fixed incorrect rendering of static reflections for water.
  • WorldOccluderTerrain now properly works with reflections (for example, on the water).
  • Increased the number of HDR cross flares up to 32 (beware, high number of flares can cause a FPS drop on low-performance hardware).
  • Fixed an issue with normal map orientation for one of the projection faces for mesh_triplanar_base material.
  • Fixed an issue with triplanar projection for mesh_triplanar_base and terrain_base materials.
  • Added an option to change normals rendering mode for mesh_overlap_base material (States -> Substitute option). Normal maps of an underlying and overlapping material are either combined together (by default), or only the overlapping material normals are used.
  • Added support of two background cube map textures for sky_base material.

Mobile Platforms:

  • Added Retina display support for iPhone 4 and 4S.
  • The loading time of Android applications with a large number of files in assets folder is dramatically improved.
  • On Android, custom project data can be stored into a folder on a SD card (specified via project_name start-up option).
  • On Android, configuration file (unigine.cfg) can now be stored under assets folder.
  • Lifted a limitation on screen resolution for Android applications. Now you can set any screen width and height, no matter what the physical screen resolution is.
  • Improved exception handling and RTTI support on Android.
  • Eliminated an issue with random crashes on Android.
  • Added d3d119_render_use_rgba8 console command to use RGBA8 format (instead of R5G6B5) for all color buffers. It is applicable for OpenGLES and DirectX 11 renderer of DirectX 9 feature level. This option increases rendering speed, decreases memory usage (up to 2 times lower) at the cost of small quality degradation (artifacts are possible when rendering transparent objects). It is enabled by default.
  • Status bar on iOS devices is now automatically hidden.
  • Added detection of Qualcomm Adreno 320 graphics chips.

UnigineScript:

  • Scrips are now faster by 10-20 per cent. This speed-up is especially noticeable on platforms with small cache memory (mobile tablets and devices).
  • Improved performance of all callbacks: world, physics and GUI callbacks, as well as calls from Flash (ActionScript) to script are much more robust.
  • Fixed a file size bug by saving and restoring the world state multiple times when the editor is loaded.
  • Added a function to clear a loaded GUI dictionary with a localized interface (engine.gui.clearDictionary()).
  • No lags when pausing/resuming playback of Theora video files.
  • Fixed a crash on deletion of ObjectBillboards and WorldCluster nodes.
  • Any of high-level Unigine::Widgets can be used to create an interface for editor plugins. There is no need to explicitly include them via #include directive.
  • Fixed a bug with non-updated messages in Unigine::Widgets Dialog widgets.
  • Small speed-up of all GUI widgets, faster rendering of fonts.
  • Huge memory deallocation speed increase. On Unigine stress test samples with heaps of objects, world shutdown is now 15x faster.

Flash:

  • Increased performance of WidgetFlash: for example, interfaces in samples/widgets/flash_* now work 2 times faster.
  • The number of draw calls for Flash is significantly decreased. Polygons and lines are batched when rendered. A texture atlas is automatically created for all textures smaller than 256x256 pixels in size (only non-tiled textures) to increase the rendering speed.
  • Fixed a bug with incorrect scaling of rich text set via WidgetFlash::setFontScale().
  • Added functions to get information on the number of triangles, lines and draw calls required to render a Flash movie widget: getNumTriangles(), getNumDips(), getNumLines().

Other:

  • Improved detection of the number of available CPU cores for all Linux-based platform (Android included). This allows for more efficient load balancing.
  • Added a new Interface color chart into the performance profiler that shows statistics on rendering time of GUI.
  • Start-up option project is renamed into project_name.
  • Added a new sample with mesh_triplanar_base material: samples/materials/triplanar_01.
  • Fixed a minor bug with incorrect parsing of hspacing and vspacing arguments for text in UI files.
  • Fixed a bug with crashes on multiple successive calls for engine initialization/shutdown.
  • Added an additional implementation of Engine::init() function with a custom application path argument. Pass NULL value to skip this argument.

Documentation:

  • Added an article on custom plugins for Editor (Tools -> Unigine Editor -> Custom Editor Plugins).
  • Added information on LUT shading material: LUT generation tool (Tools -> Tools Panel -> LUT Generation Tool) and mesh_lut_base (Materials -> mesh_lut_base).

Windows 8: Full Support for Metro-Style Apps

We are glad to announce that Unigine engine is now fully compatible with Windows 8 Release Candidate SDK. To add a new Metro-style look and feel to your Unigine-powered application, all you need is to launch it. It just works.

Moreover, you can get support of upcoming tablets and other ARM-based mobile devices with Windows RT at zero development cost. Unigine already provides it out of the box - you simply take advantage.

Metro-style Unigine applications in Windows 8

Find the following features supported:

  • Added full compatibility with Windows 8 Release Candidate SDK.
  • Added support of Windows RT for ARM devices.
  • Windows RT comes with NEON optimization support on the ARM platform.
  • Added D3D11AppTablet class to initialize the video mode in Metro-style applications for Windows RT.
  • Added support of DirectX 11 of feature level DirectX 9.1, 9.2, 9.3 to cover the whole range of next-generation Windows RT mobile devices.
  • It is possible to set DirectX 11 renderer of DirectX 9 feature level (direct3d119) via video_app start-up option. With this feature, you can check how the application will be rendered on upcoming ARM mobile devices with Windows RT.
  • Added detection of available CPUs for Windows 8, as well as a processor name.
  • Added remote debugging support: connect to Windows RT application via Telnet application on port 8888 (telnet:8888).
  • Added support of FileClient plugin for faster development iterations on Windows RT.