Hi guys,
I'm proud to announce thet B8 update has been published :)
It is, until now, the greatest update I've ever made since Steam release.
A LOT of things have been fixed and A LOT of things have been added.
Here is the summary of all B8 PREVIEWS published plus the complete RELEASE NOTES list:
ANISOTROPIC FILTERING
I've just implemented the possibility to set Anisotropic Filtering inside engine (without being forced to use Graphics card control panel), in realtime:
BROWSER NAVIGATION
I've finally improved browsers navigation by storing the latest visited folders in a stack fashion:
NEW GIZMOS
New, more professional and comfortable, gizmo look and improved gizmo picking:
ANIMATION SPLITTING
Partly redesigned animation system:
- reducing memory consumption for every character instance
- simplifying code
- making animation system easily extensible in future
- animation splitting
The following is a video tutorial showing how to split a "more than one clip" animation in different animations:
https://www.youtube.com/watch?v=b_K1BGIYND0&feature=youtu.be
CUBEMAP REFLECTION OPTIMIZED
All of you know that when checking Realtime cubemap reflections the framerate misses about 10 FPS (!!!!).
This is due to the fact that, for drawing reflections into the cubemap, the scene must be drawed 6 times (even if simplified a lot).
For improving things I've worked on to 2 sides:
REFLECTION PROXY
I've added a new parameter to the meshObjects for loading a proxy mesh to be used into reflections. When drawing objects into the reflections cubemap The system works as following:
1 - Looks for impostor
2 - if impostor not found the system looks for reflection proxy
3 - If reflections proxy not found the system uses the last available LOD
FRAME RE-PROJECTION
Reflection proxies aren't sufficient for speeding-up cubemap rendering, also they need additional work (proxy must be modelled).
How to speed-up things without forcing users to produce new models?
Well...
I've found an elegant solution to the problem:
why don't draw only one cubenap face at frame?
In this way cubemap rendering increases about 6 times BUT at a cost, a single cubemap face is updated every 6 frames which is not much good due to reflections frame loss when camera moving.
So how to reduce this side-effect? JUST reprojecting the face for the remaining 5 frames basing on camera movements! :), in this way the cubemap rendering speeds-up 6 times and the frame loss effect is sufficiently reduced. :D
In addition I've added a parameter for setting how many frames cubemap faces must be updated so you can control Quality/Speed ratio.
DAY TIME TOOL
In the B8 version the "record" button remains checked until you uncheck it. When record button is checked and you change a parameter of the weather tool a new keyframe on the timeline is created automatically, and / or if you change a parameter on an existing keyframe it is automatically updated and recorded.
For better explain how this works I've made a new tutorial:
https://www.youtube.com/watch?v=DyQsQ9J702M&t=5s
NEW TERRAIN LOD
The new terrain LOD system improves memory usage, LOD transition and rendering speed respect to the previous system.
In this version the terrain LOD is performed inside shaders letting to avoid cracks between different tile LODs in a very cheap and elegant way: tiles resolution is scaled by smoothly adapting vertices basing on camera distance, so there is no more need to create different combinations of tiles geometry using much less memory.
In addition tiles resolution now can be customized letting users to decide how many tiles needed for covenring the whole heightmap: bigger resolution means less tiles and so less draw calls.
IMPROVED LIGHT DECAY
A new equation for lights decay has been implemented. It is much more physically plausible helping expecially indoor rendering.
New layer blending
Material layer blending shaders have been re-written by taking into account layers heightmap (stored into alpha channel). This makes the transition from a layer to another more realistic, as showed into the following animated gif:
Decals painting
Now decals can be painted in the same way you can paint on "standard" objects. Decal alpha transparency is stored into the layer mask alpha channel. Decal layers (also alpha channel) are blended in the same way as other object materials:
Up to 132 Terrain Layers
Finally terrain layers have been increased from 4 to 132!!
This is possible because now every terrain tile can have more than one material assigned (1 base material, just as before, plus up to 32 detail materials) to it, and every material, as usual, can have up to 4 layers for a total of 132 layers.
For every material, terrain tiles are re-drawed, unlucky this could be potentially heavy for GPU and GPU drivers (imagine to draw the terrain up to 32 times...).
So as an optimization the system has been designed to automatically compute the materials that a tile must have by checking if the tile covers a part of the material mask that isn't empty. In this way the tiles are drawed only if it is necessary, so speeding-up the rendering.
In addition the detail materials are skipped at a certain distance.
The terrain material editing also has been simplyfied and merged with the material editor. In this way you can easily edit terrain materials as they are standard materials: creating masks, editing layers and properties.
IMPROVED IMAGE QUALITY
The overall rendering quality has been improved:
- Motion Blur and Depth of Field moved into HDR stage
- Improved linear to gamma transformation by fixing banding artifacts
ALL RELEASE NOTES
- Added new browser mode "without Folders" also in Browser Dialogs
- Sorted classnames in active/Stock/AI/Statics lists in object selection tab
- Added FileDialog storing of latest visited folders
- Added Browsers storing of latest visited folders
- Added Anisotropic Filter setting option
- Bug Fixed: Mie phase in reflection sky
- Bug Fixed: night in reflection sky
- Added parameter "AnimSpeed" to the "Animation" track (cutscene editor)
- Added "animation splitting"
- Added new gizmos
- Added AIdevice configuration
- Added PathResolution and AreaThreshold parameters to AIDevice
- Improved ExclusionList inside object tools
- Bug Fixed: mid and low cubemap reflection shaders don't work
- Added parameter "reflectionProxy" to MeshObject
- Added Automatic Exposure control speed parameters in FX tool
- Animation browser dialog now remembers last loaded animation folder
- Dynamic reflection cubemap rendering speed-up
- Added Dynamic cubemap reflection rate parameter
- Bug fixed: Road path sub-segments geometry generation sometime fails
- Improved Daytime editing with automatic keyframe generation
- Bug Fixed: Daytime keyframe moving/cloning doesn't work when timeline is zoomed / panned
- Added possibility to choose the object to create class when importing a model
- Bug Fixed: Using emptyPlayer and shooting some flames when you exit from game mode the engine freezes
- Bug fixed: a bug that potentially could crash engine when exiting from game mode
- Added parameter layerMaskDistance for setting the maximum distance of additional layers of a material (it works also for terrain layers)
- Issue Fixed: some omnidirectional lights shadowmap artifacts
- Bug Fixed: SetObjectLocalOrientation action doesn't work well when smooth is enabled
- Added AWAKE event that is sent to Object FSM when it is awaken.
- Added new class VisibilityCounter that sends an event when an object is viewed a given number of times
- Added FadeTime parameter toCrossFadeMusic action
- Fixed speedTime parameter of MusicTrigger and MusicSwitch
- Changed material shaders when MacroBump parameter is TRUE. In the new version glossiness of layers upon 0 aren't taken into account when computing material glossiness.
- Added reflectionMultiplier parameter into AmbientLight
- Added parameter "selectable" to all entity class type objects
- Added GetSelectableRootObjectName action in GameMachine
- Added GetRootObject function in S2Script
- Added GetSelectableRootObject function in S2Script
- BugFixed: asseimport configuration files inverted
- Exposed Messages of Switch class
- Bug Fixed: when rotating, traslating, scaling an entity, sometimes their transforms aren't updated when starting the game simulation
- Bug Fixed: sometimes StartGame or StartGameFromHere commands crashes the engine
- Added "Insert Default Cube" option in the New scene Frame Dialog that places a cube object when creating a new scene
- Bug Fixed: wrong UV coords when drawing the tickness map for scattering
- Now the projective textures of the lights are blurred basing on light distance
- Added parameter SS Refl Multiplier into Post Filtering SpecialFX tool
- Improved material layers blending. Now it is based on heightmap (store into the diffuse texture alpha channel)
- Changed MacroDiffuse and MacroBump materials parameters from boolean to float (i.e. from check button to sliders)
- Added parameter MacroGloss into material properties tool
- Added support for 32bit layer masks
- Added possibility to choose the format (24 or 32 bits) and resolution of the material layer mask to create. The alpha channel of the 32bit mask is used for material transparency (decals)
- Added the painting of the alpha channel of a material layer mask (useful for painting on decals)
- Added loading of an external input map into a project
- Added "Show in Browser" icon into inspectors
- Fixed some GodRays shader artifacts
- Added Godrays setting into FX Post-processing tool
- Replaced parameter "Object" with parameter "prefab" in Splinter class
- Crash fixed: When PrefabViewport, containing an object (es. a Splinter) that spawns and attaches another object, is closed
- Crash Fixed: When it is selected an object that is destroyed by another object (i.e. not explicitly by user) during simulation (editing with freezeAll to off)
- Added FadeIn and FadeOut parameters to ParticleSystem class, for controlling the particles in and out transparency fading
- improved ocean reflections
- MotionBlur and Depth Of Field moved from LDR to HDR stage
- Improved linear - gamma conversion quality in the darkness (avoiding banding)
- Improved Vignette shader
- Added vignette settings
- Added Film grain effect
- Removed Stock Objects list and "activable" object parameter
- Added "ActiveAtStart" parameter to objects
- Added possibility to paint on materials directly on dynamic (active) objects
- ColorDialog now affect instantly material layer color
- Improved Object cloning when in hierarchy
- Improved object spawning when in hierarchy
- Improved ocean foam
- customizable ocean simulation speed
- added Layer Mask UV clamp flag
- Changed ActivateObject action: pos and angles parameters disabled
- BugFixed: wrong browsers update when load a new project and "ShowFOlders" mode is false
GENERAL IMPROVEMENT TO TERRAIN
- Added multimaterials support (up to 124 additional layers + 5 layers of the base material)
- Added slopeMin - slopeMax, heightMin - HeightMax, slopeFallof - heightFallof parameters for the layers of the terrain base Material
- Improved layer blending
- Terrain Painting GUI re-designed
GENERAL IMPROVEMENT OF HIERARCHY / ATTACHING SYSTEM
- Bug Fixed: When adding more than one prefab in which there is complex hierarchiy of entity objects, the objects creation into scene fails
- Bug Fixed: When cloning objects in which there are complex hierarchies of other entity objects the copy fails
- Bug Fixed: When Moving an object from a node of a hierarchy to another node of the same hierarchy the system fails
- Bug Fixed: When attaching and object to a node which parent is an entity that has another parent the system fails
- Bug Fixed: when cloning an object inside a hierarchy, its clone loses world transform
- Added IN_EDITOR event in GameMachine default events list.
EASY GAME PACK
- Bug fixed: Freeze all, create a new player character, move the player and then un-freeze all, the engine crashes.
- Improved explosions
THANKS TO ALL SUPPORTERS
Thanks to all who believe in S2ENGINE HD project
I hope you enjoy this update :)
Stay tuned!