binstream Posted November 21, 2015 Share Posted November 21, 2015 UNIGINE 2.1: New Sky, Increased Depth Precision, Improved AA, Optimizations, Bugfixes Key Changes Improved atmospheric light scattering: easy setup, more predictable visuals, better quality. Increased depth buffer precision. Rendering performance optimizations. Improved antialiasing quality. Introduced ObjectText. Support for OS X El Capitan. Support for a single licensing server instance per LAN with auto-discovery. "Assemble project" feature in SDK Browser. Support for both release and debug engine builds in the editor. Introduced new set of samples. A lot of bugfixes. Improved Rendering of Atmosphere Atmosphere rendering has been completely reworked in this release. Right now it is based on interpolation between several LUTs (Look-Up Textures) describing different states of the sky during the day. Improving realism for clouds is planned as the next step. Visual Quality The new sky brings dynamic environment lighting and fast sky reflections without the need for environment probes. It is also possible to use the high-quality photos as a base for the LUT gradients. Light scattering now works correctly with particle systems, volumetric objects and multi-layered transparent objects. Haze rendering has been improved as well. Added the Max distance parameter, which sets the distance of 100% dense haze concealing all the distant objects. There are also two different modes of haze rendering: render_haze 1 is to use solid color render_haze 2 is to use color from the sky LUT (recommended for better realism) Time of Day and Weather To change the time of the day, simply rotate the Sun or Moon object and the sky rendering will be automatically update respectively (previously, one had to use the Tracker system for that). To simulate mixed weather conditions, it is currently allowed to blend between three environment presets. Sun and Moon The sky now supports rendering of the Moon and the Sun at the same time. The "Scattering" option in the WorldLight object provides the following lighting types: None — render the atmosphere as if there were no global lights, that is, there will be no sky color gradient in any direction Sun — render the atmosphere in accordance with the Sun's lighting Moon — render the atmosphere in accordance with the Moon's lighting There is also a new Disable angle setting for LightWorld defining a critical angle above the horizon, where the light source is still enabled. Easy Setup Setting up sky is much easier with the new system: no more esoteric parameters. The new light scattering is also more predictable: you get desired results with less iterations. Light scattering settings have been moved to Rendering settings / Environment in the editor. There are nice ready-to use presets (clear sky, overcast, indoor dark lighting) available as well. Increased Depth Precision Aerospace simulation often requires an ability to render very close and very distant objects in the same frame without Z-fighting or any other depth buffer issues. We have increased depth precision thanks to the logarithmic depth buffer (to enable, use the render_logarithmic_depth 1 console command), so now UNIGINE is even a better fit for planetary rendering than before. There is a nice 3rd-party demo explaining advantage of logarithmic depth buffer over normal one. Improved Antialiasing Increased visual quality of TAA in motion. FXAA has been integrated into the engine. Anti-aliasing mode is now controlled with render_antialiasing console command: 0 - disable 1 - FXAA 2 - TAA Added bright pixels removal for TAA. Fixed ghosting effect on vegetation. Introducing ObjectText ObjectText is a simple node for placing a flat text in 3D space. The text is rendered into a texture and then overlayed over a flat polygon. It uses trilinear filtering and mipmaps for correct display of the text at any distance. There is no noise influence to the object and it is not distorted by the TAA. As a font you can use either TrueType (TTF) or a texture atlas with letters. Performance Optimizations Scenes with a single LightWorld instance gained extra performance optimizations. Increased speed of decals rendering. The render_rwtextures console command allows you to enable/disable rendering optimization (requires OpenGL 4.2 core profle, not supported on OS X; for DirectX 11 you should set render_optimization_normalbuffer 1 before render_rwtextures 1). Drastically increased speed of grass generation. Increased speed of the materials loading. Other Renderer Changes Removed permutation limit (65535 combinations) in shaders: now it is possible to add a lot of custom material states into shaders (up to 4 billions of combinations). Restored the triplanar material options in the mesh_base material, for meshes with auto-generated UV coordinates (States -> Base map/Normal map -> Triplanar). The corresponding parameters are: Base/Detail triplanar pow. Fixed rendering of the mesh_leaf_base and mesh_stem_base materials. Fixed DecalMesh and ObjectMeshDynamic behavior on mesh change. Default terrain_base textures are now white. Fixed multiplication blending for decals: the diffuse color now influences the microfiber effect. Added the Deferred state to the mesh_leaf_base and mesh_stem_base materials. Fixed tweaking of the LightOmni Shadow size parameter. Improvements in Visualizer (depth bias fixed, a couple new methods, etc). Fixed shadows noise. Added the render_shadow_shafts_quality console command allowing setting the texture size for the shadow shafts effect (0 — the quarter of the screen; 1 — the full screen). Improved shadows cascade blending. Fixed the SSAO ghosting effect. Editor Fixed FBX import in Merge static meshes mode. Improved undo/redo system. Added visualization of the G-buffer data (Rendering panel -> Buffers). Hotkey presets can now be located in the folders specified by the -extern_path instruction. Changed the Background alpha mask parameter in Video Grabber into toggle. Removed the Color option in the Terrain Grabber (the Diffuse option is used instead). Fixed incorrect textures import in the Landscape plugin. Fixed behavior of the editor_quit console command: Qt-based windows will also be closed. Deleted the Decal Grabber plugin. Fixed node cloning. Fixed textures orientation in the Terrain Grabber. Default UnigineEditor graphic API is now DirectX 11. Improved Asset Browser: Added assets copying and renaming. Added folder creation. Added items zooming. Increased speed of assets loading and reloading. Fixed large memory consumption issue on lots of FBX files import. Added standard hot keys (arrows, Del, F2, etc.). Increased maximum value of Animation FPS to 9999 on the FBX import. Added support for non-ASCII symbols for Windows startup options. Improved meshes streaming when editor is loaded. SDK Browser Only one running instance of the SDK browser in the local network is now required (it will be automatically discovered by other machines if SDK Browser is running on Windows and Linux, on OS X it is required to specify -licensing_host IP parameter on other machines) for users with per-company licenses. Added an Assemble project option allowing you to create ready-to-ship builds (Project / Other Actions). Added support for the OS X El Capitan. Added Debug/Release Editor option allowing you to choose the editor version when editing the project (available in the additional menu under the Edit Content button of the project). Added global settings for the Quad Buffered Stereo technology. Improved errors notifications. Improved upgrading of project's content. Automatic update of screenshots in the Projects section on exit from the editor. Bug fixes and improvements. C++ and C# API Added ObjectGrass interface. Added ObjectSky interface. Added ObjectMeshClutter interface. Improved Ptr<> implementation: it can now be stored in Qt containers. Added getSHA1(), getMD5() and getCRC32() methods to the Blob class returning corresponding checksums. Fixed crash on calling getSubTree() and getFormattedSubTree() methods of the Xml class when the .xml is empty. Added findChild() method to the Xml class. It searches for the Xml node child by its name. Added set/getViewportCorrection() methods to the Player class for making the projection matrix unaltered by different viewport aspect ratios (1 by default). This could be useful for custom screen projections. Added removeSurface() and removeSurfaces() methods to the ObjectMeshDynamic class removing surfaces by the name/index. UnigineScript Added the is_absolute() method to the file system functions. It lets you check whether the given path is absolute. Added the set/getViewportCorrection() methods to the Player class that let you enable or disable the aspect corrections of the projection matrix (1 by default). Fixed crash on calling the getSubTree() and getFormattedSubTree() methods of the Xml class. Added new scattering functions to the engine.render class: RENDER_ENVIRONMENT_NUM_PRESETS variable setting the number of environment preset. engine.render.set/getEnvironmentHazeColor() setting/returning the haze color. engine.render.set/getEnvironmentHazeDensity() setting/returning the haze density. engine.render.set/getEnvironmentHazeMaxDistance() setting/returning the distance starting at which the haze effect appears. engine.render.set/getEnvironmentHazeMode() setting/returning the mode of the haze effect: RENDER_HAZE_DISABLED | RENDER_HAZE_SCATTERING | RENDER_HAZE_SOLID. engine.render.set/getEnvironmentPresetIntensity() setting/returning the intensity of the given preset. engine.render.set/getEnvironmentScatteringBaseLUTName() setting/returning the path to the base LUT texture (the texture defining the base color of the sky). engine.render.set/getEnvironmentScatteringGroundColor() setting/returning the color set of the imitated landscape (ground). engine.render.set/getEnvironmentScatteringGroundLUTName() setting/returning the path to the ground LUT texture (the texture imitating lighting and reflections from the landscape). engine.render.set/getEnvironmentScatteringMieLUTName() setting/returning the path to the Mie LUT texture (the texture for setting the Mie light). engine.render.set/getEnvironmentTextureColor() setting/returning the environment color multiplier. engine.render.set/getEnvironmentTextureName() setting/returning the path to the cubemap defining the environment color. Removed the following engine.render functions: getScattering(), set/getAmbientColor(), set/getBackgroundColor(), set/getEnvironmentTextureName(), set/getEnvironmentCoefficients(), set/getEnvironmentExposure(), set/getScatteringSunColor(), set/getScatteringRayColor(), set/getScatteringMieColor(), set/getScatteringInnerAngle(), set/getScatteringOuterAngle(), set/getScatteringRefractive(), set/getsetScatteringDensity(), set/getScatteringDepolarization(), set/getScatteringTurbidity(), set/getScatteringDirection(), set/getScatteringGround(), set/getScatteringAreal(), set/getScatteringRayHeight(), set/getScatteringMieHeight(), set/getScatteringGreenstein(), set/getScatteringAngularity(), set/getScatteringThreshold(), set/getScatteringEnergy(), set/getScatteringPower(), set/getScatteringSun(), set/getScatteringRay(), set/getScatteringMie(). Removed the following Material class functions: set/getPostRefraction(), set/getPostScattering(), set/getLightBlending(). Other Engine Changes Added support for OS X El Capitan. Added C++11 and microprofile by default on the OS X. Added xcodeproj for building the engine and main applications. Unified screenshots capturing in engine and editor: Screenshots are taken on the F12 hot key. Default saving paths: bin/screenshots and data/screenshots correspondingly. The -engine_log startup CLI can now accept any paths (not only relative ones). Fixed calculation of mesh projections in Syncker. To get the final shader view after preprocessing specify EXPORT_SHADER(file_name) (relatively to the data path). Fixed ObjectMeshSkinned animation when loading the .anim file with the same name. A lot of bugfixes. Introducing New Samples The new Samples demo contains various examples on using the built-in UNIGINE objects with explanation of different settings. These samples are artists-friendly - feel free to take a look into the content. You can find them in the Samples / Demos section of the SDK browser. Decals Usage examples showing different decals use cases Decal materials blending types Difference between DecalProj, DecalOrhto and DecalMesh Materials Demonstration of material parent-child hierarchy and dependencies Different samples of the PBR material usage Light Sources Demonstration of LightOmni, LightWorld and EnvironmentProbe Different settings of LightOmni Different settings of LightProj Particles Systems Particles composite effect Forces, noises and deflectors influencing particles Particles materials and settings Particles parameters Particles types Particles emitter types The set of samples will be extended in further releases. Documentation Added articles on the new UNIGINE shaders wrapper, the Unified UNIGINE Shader Language (UUSL): UUSL data types and common intrinsic functions UUSL parameters UUSL textures UUSL semantics Creating of custom deferred shader tutorial Added article on the new scattering. Localization We're working towards localizing the documentation into Russian and Chinese. Russian: Chinese: At the moment only some articles are translated, more to come. To switch the language, use flag icons located in the top right corner. How to Get the Update To install the 2.1 update, use SDK Browser or get a standalone build at the downloads section. 1 Link to comment
silent Posted November 21, 2015 Share Posted November 21, 2015 Known Issues Engine (2.1, master-5cac4b2): TAA + Multi-monitor configurations (stereo) is working incorrectly. Workaround: disable TAA or use FXAA instead. ObjectText + video_restart commands will result in visual artifacts. TAA + multiple reflective surfaces with enabled Environment probe (with enabled dynamic mode) will result in black screen rendering. Workaround - disable TAA / dynamic option in Environment probe. Slow loading of the world resources (like grass masks) in specific circumstances. Engine visualizer is not working with logarithmic depth buffer. Objects with custom blend function will not be affected by haze (scattering). Shadow lerp for WorldLight can work incorrectly for some camera angles (shadows disappearing). Refraction + mesh_base can give visual artifacts (samples/render/refraction_00, samples/materials/refraction_00). Decals are rendered incorrectly with latest AMD Crimson Edition drivers + OpenGL API. Editor (2.1, master-5cac4b2): OpenFlight plugin is not loaded correctly. SDK Browser (1.4, build 3942): Sometimes buttons like "Run" will not react on click action. Creating a new project while downloading some package can result in user logout. Add-ons downloaded from SDK Browser will not work for Evaluation kit users. Workaround: to use add-ons libraries from standlone SDKs, available from the website. Common: No code highlighting in offline *.chm documentation. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
ivan.cuevas Posted November 21, 2015 Share Posted November 21, 2015 Great update! In my computer there is a strange behavior with player controls. Waiting for other users to see if they have sale problem. But again great job. New scattering system it's a great improvement! :D Link to comment
honya Posted November 23, 2015 Share Posted November 23, 2015 Hi, did you change type of input parameter for vec3 in some function? Because i get this error after upgrade to 2.1 professional: Variable::getDVec3Safe(): can't convert vec3 to dvec3. Thanks Honya Link to comment
silent Posted November 23, 2015 Share Posted November 23, 2015 honya As far as I know no special changes were made. It seems that you are trying to launch project that was previously made with Float precision with Double precision engine? Is that correct? Can we check at least the engine log from this project? Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
honya Posted November 23, 2015 Share Posted November 23, 2015 Silent: I found it, co-worker use double binaries instead of float. I ask because i thinked that we don't have access to double precision. Link to comment
renato.semadeni Posted November 23, 2015 Share Posted November 23, 2015 Hi there I'm trying to set the FXAA as default. I already tried it in the browser, the unigine.cfg (render_antialiasing = 1) file and in the project. But after restart, it remains set to TAA. Where do we have to set the default rendering? Thanks, Renato Link to comment
silent Posted November 23, 2015 Share Posted November 23, 2015 renato.semadeni All the rendering options are stored inside *.world file for now. So, if you want to set antialiasing to FXAA, just edit the render_antialiasing in *.world file and set this value to 1. This behavior is temporary (will be improved after settings refactoring). Sorry for the inconvenience caused. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
danni.coy Posted November 23, 2015 Share Posted November 23, 2015 We were getting better visual quality from 2.0. I suspect TAA but possibly some other things.We really like the quality in 2.0 :) Link to comment
renato.semadeni Posted November 23, 2015 Share Posted November 23, 2015 Silent, yes, as you say it. I was blind, not to look there... Thanks a lot Link to comment
binstream Posted November 23, 2015 Author Share Posted November 23, 2015 We were getting better visual quality from 2.0. I suspect TAA but possibly some other things. We really like the quality in 2.0 :) Could you please provide some more details on that? If I get you right, you see some visual quality degradation from 2.0 to 2.1, don't you? Some visual effects have configurable quality now - so it might be because of quality/performance settings for some specific project. Link to comment
ggris Posted November 23, 2015 Share Posted November 23, 2015 (edited) Wow, the TAA is really clean now and the FXAA is a wonderful feature The logarithmic Z-buffer was really an expected feature, nice to finally have it ! On the whole, the render quality is better and cleaner than even Unigine 2.0 Awesome work guys ! After solving some problems, our master branch is officially on Unigine 2.1 ! Edited November 25, 2015 by ggris Link to comment
danni.coy Posted November 24, 2015 Share Posted November 24, 2015 Could you please provide some more details on that? If I get you right, you see some visual quality degradation from 2.0 to 2.1, don't you? Some visual effects have configurable quality now - so it might be because of quality/performance settings for some specific project. Link to comment
danni.coy Posted November 24, 2015 Share Posted November 24, 2015 some of the issues are temporal. IE the swimming. We really like the way 2.0 resolves and keeps detail and remains static when the camera is not moving.Here are some more 3D scans I have been working on, In general I am impressed with how little work Unigine has required in getting these to look good :) Link to comment
werner.poetzelberger Posted November 24, 2015 Share Posted November 24, 2015 @ Danny are those Photogrammetry Works or definitely scans? best.w. Link to comment
danni.coy Posted November 24, 2015 Share Posted November 24, 2015 They are scans produced using photogrametry. Link to comment
binstream Posted November 24, 2015 Author Share Posted November 24, 2015 Danni, it is a matter of balance between visual quality in static and dynamic scenes. Our guys will take a look at what can be done here. Link to comment
Recommended Posts