Stereo 3D Improvements
2013-06-20
Stereo 3D
- AppOculus plugin (Oculus Rift VR googles integration) has been improved a lot: correct splashes, screenshots, distortion, aspect ratio, chromatic aberrations.
- Stereo separation parameter has been replaced with Stereo radius (1/2 of the separation value).
- Added stereo offset parameter (an offset after perspective projection, 0 by default).
- App3DVision and App3DSurround plugins create stereo-compatible screenshots (side-by-side).
Here is the video from Valley benchmark working in Oculus Rift mode:
...and Heaven benchmark:
Public release of updated benchmarks with Oculus Rift support is planned in July.
Render
- Better Clutter objects orientation based on normals to the surface.
- Additional render shader defines can be tweaked from UnigineScript and C++ API.
- Fixed a problem with water jittering on mobile platforms.
- Material bindings can be used in any materials, so ObjectDynamic can use any existing shaders by emulating the corresponding vertex format.
- Added a sample with orthographic rendering:data/samples/render/ortho_00.
- Added a sample with fake ObjectMesh viaObjectDynamic:data/samples/objects/dynamic_03.
GUI
- Performance optimization for complex widget hierarchies.
- Gui::clearTexture() function clears Gui texture file cache as well.
- Flash GUI uses simple FFP rendering mode to improve performance on mobile devices.
- Fixed a bug on deletion of the Widget instance with multiple registered callbacks.
- Added possibility to modify the global transfomation matrix for Gui and WidgetWindow (so you can tilt/rotate/move... the 2D GUI in 3D space).
- Added a sample with rendering Widget toImage:data/samples/widgets/render_00.
- User interface files (.ui) can include data from different files with multiple string substitutions (e.g.<include name="file.ui" foo="bar" foo2="bar2"/>).
- Perspective distortion for data/samples/widgets/canvas_00|01 samples.
- Added samples with Gui and Window transformations:data/samples/widgets/transform_00|01.
C++ API
- AddedString::substr(), String::utf8strlen() and String::utf8substr() functions.
- Added accessors for Vector and Matrix data types in the Xml class.
- Added functions for taking screenshots:Unigine::Render::ScreenshotFunc().
- Added functions for splash screen rendering:Unigine::Render::SplashFunc().
UnigineScript
- Reflection class can get type of function return value.
- Added classid() statement (can receive class signature or a variable), is_base_class() can receive its result as the first argument for faster result querying.
- typeid() can also receive type signature.
- Added bounds.h with simple bounding volume logic.
- USE_DOUBLE macros is available inWorldExpression.
Tools
- Added -n argument for ImageDDS (creates an empty image).
- Fixed a crash in 3D editor plugins on exporting files without surfaces.
- Added support for different object alignments and animation range exporting into Maya plugins.
Documentation
- Added documentation on new ObjectDynamic class.
- Updated UnigineEditor articles.
- Updated documentation on UnigineScript classes:Gui,Image, ObjectMeshDynamic,ObjectTerrain.
- Updated articles on UnigineScript function sets:engine.render,engine.editor, engine.physics,engine.system,engine.world.
Other
- NOSIGPIPE flag for Mac OS X and iOS version of Socket has been added.
- Added two samples of WinRT applications:source/samples/WinRT.
- Fixed linking problem with Clang / Mac OS X.
As promised, we have also published the video from ITEC 2013 demo (unfortunately it's a bit problematic to provide access to the build itself since the dataset is 60 GB in size already):
PS: It was only two weeks since the last SDK update, but we decided to roll out a new one before going into even more improvements and new features.