Flax Engine Update 1.4.6334

Today, we’d like to announce the new Flax 1.4! This version brings lots of new features like Realtime Global Illumination, better licensing, crowd navigation, large world support , and tons of good stuff.

For this update together with our contributors, we’ve made over 643 commits and merged 23 Pull Requests into Flax repositories. Thanks for your support!

Download

Feel free to discuss the update here :slight_smile:

Contributors: mafiesto4, GoaLitiuM, iainmckay, PrecisionRender, mxruben, whocares77, ScottLongley, tom-weiland, Wolfos

PRs merged: 23

Changelog:

  • Add Dynamic Diffuse Global Illumination with real-time irradiance probes
  • Add JobSystem.Execute utility for quick jobs running
  • Add Global Sign Distance Field rendering
  • Add Distance to box/point for Bounding Box
  • Add LineHitBox to Collisions.hlsl
  • Add flip presentation mode and tearing support to D3D11
  • Add MeshAccelerationStructure utility for robust triangles geometry queries
  • Add more utilities for using Matrix3x3
  • Add IsSingleFrame to RenderView for thumbnails/pre-render views drawing without temporal effects and LOD transitions
  • Add DynamicStructuredBuffer and DynamicTypesBuffer utilities
  • Add automatic group panels hiding if all properties are hidden by VisibleIf rule
  • Add utilities for Model SDF generation (on import, in editor window, or batch for all models on a scene)
  • Add Sample Global SDF node to materials and particles
  • Add Collision (Global SDF) particle module
  • Add Conform to Global SDF module to GPU particles
  • Add Position (Global SDF) module to GPU particles
  • Add utility Copy option for various labels in assets editors
  • Add ISceneRenderingListener for using scene information in the renderer cache
  • Add utility to editor CodeDocs for tooltips from C# types and members
  • Add CustomBuffers for injecting custom state into RenderBuffers
  • Add support for implicit casting from Quaternion to other types in shaders
  • Add Rotate Vector node to Visject Surface graphs
  • Add Screen Space Reflections for transparent materials
  • Add Array Add Unique node to Visual Scripting
  • Add support for sampling Scene Color in transparent materials (forward pass)
  • Add keyboard key navigation to Content View based on items name first character
  • Add JsonAsset.Instance for C# asset object
  • Add Delegate::BindUnique
  • Add Dictionaries to Visual Scripting
  • Add support for array of Visual Script objects
  • Add support for constexpr fields in Scripting API
  • Add World Triplanar Texture node to materials
  • Add playback speed option for Scene Animation rendering
  • Add Smoothstep and Step material nodes
  • Add preserving existing value of the Visual Script parameter when changing its type
  • Add View Size node for GUI materials
  • Add additive scene opening in Editor via drag&drop into Scene Tree window
  • Add Custom Global Code node to materials for injecting custom code, includes or constants
  • Add loopCount to PlaySlotAnimation for looping slot animation
  • Add Color.FromRGBA
  • Add confirmation dialog for Scenes Data building in Editor toolbar (prevent misclicks)
  • Add cursor clipping (for RTS, MOBA games)
  • Add Double2, Double3, Double4 to C# scripting API
  • Add Large Worlds support for 64-bit world coordinates (enable UseLargeWorlds in custom engine build)
  • Add relative-to-camera rendering for large worlds
  • Add support for the latest Windows 11 SDK (22H2)
  • Add support for Physics Scene origin shifting
  • Add support for Double2/3/4 for native storage in Variant
  • Add custom floats formatting to prevent scientific notation
  • Add selectable Environment Probes resolution (in Graphics Settings or per-probe)
  • Add support for dispatching jobs within jobs in JobSystem
  • Add Transparent Lighting Modes for material with option to use non-directional shading
  • Add Global Illumination sampling option to transparent materials (eg. particles)
  • Add utility buttons to check/uncheck all Material Instance parameters overrides in Editor window
  • Add separate GBuffer view modes in Editor viewport widget
  • Add real-time environment probes support
  • Add support for baking env probes in cooked game
  • Add new trace mode to Screen Space Reflections for DDGI Scene tracing
  • Add showing model screen size in the Model Preview
  • Add editor camera speed up for gamepad right trigger
  • Add GamepadDPadX/GamepadDPadY input axes for gamepad DPad
  • Add Engine.FocusGameViewport to implement game menu with camera focus gather
  • Add HTML tags processing in Rich Text Box
  • Add HtmlParser to engine utilities (with unit tests for it)
  • Add option to disable text clipping in text boxes
  • Add option to disable selecting text in text box
  • Add utility for parsing Color from text (hex or named color)
  • Add Content.GetEditorAssetPath
  • Add EditorPlugin.DeinitializeEditor to properly cleanup Editor extensions on exit
  • Add support for generic types in Scripting API with Template flag
  • Add waiting for model to be loaded in SetMaterial
  • Add NavCrowd for navigation steering behaviors system for a group of agents
  • Add support for renaming GPU resources (development builds only)
  • Add new API_TYPEDEF metadata for Scripting API types instantiation (with Alias option)
  • Add FLAX_BUILD_BINDINGS define for Scripting API parser to be used if needed
  • Add various improvements for C# math library
  • Add Content Search window to searching Visual Scripts and other assets
  • Add Find references utility for graph parameters and methods
  • Add public events for Editor play mode flow
  • Add setting timer resolution to lowest possible value in all Windows systems
  • Add support for main view information in Surface materials during subpass rendering (eg. shadow depth)
  • Add support for font size and color in Header attribute
  • Add TypeReference attribute to actors/scripts searching utilities for easier type picking in Visual Script
  • Add support for setting C++ version for build module compilation
  • Add Nested Animations for compositing animation clips
  • Add new Noise library for C++/C#/VisualScript/HLSL utilities
  • Add Default auto-generated member to scripting structures and improve deserialization
  • Add UseAlpha to RenderBuffers for pass-though renderer with alpha channel
  • Add late initialization to Content Finder tool in Editor
  • Add support for virtual Prefab assets created from code
  • Add GPU Dispatch calls in GPU profiler draw calls collumn
  • Add batching undo actions for Surface editing to prevent undo actions spam during a single edit
  • Add missing pipeline barriers after Dispatch on Vulkan to prevent race conditions with UAVs
  • Add support for using mipmaps with 3D textures
  • Add support for in-built color constants in Visject (eg. red/blue/violet)
  • Add drawing RenderList if it was not batched/sorted
  • Add Actor::GetOrAddChild to C++
  • Add auto-selecting new item created in Content window
  • Add shader getter to IMaterial interface
  • Add shader reloading on header file edit for shaders with compilation errors
  • Add support for Volume textures to have residency changed as regular textures
  • Add events for streamable resources residency changes tracking
  • Optimize empty comments parsing in Scripting API
  • Optimize ProbesFilter shader
  • Expose IsDuringPlay property for actors and scripts to use in scripting
  • Improve StaticModel to register for Scene Rendering once the model has any LOD streamed-in
  • Improve initial name for static model collision data asset
  • Improve properties display (group all parameters from the same group together)
  • Improve JetBrains Rider installation detection
  • Improve Linux source code editor detection (Rider and VSCode)
  • Improve property names displayed in UI
  • Change search boxes in Editor to stick to the top of the panel
  • Update to .Net Framework 4.5.2
  • Update DirectXShaderCompiler to version 1.7 (July 2022)
  • Move Actor.DestroyChildren to C++
  • Remove disabling temporal reprojection from Volumetric Fog
  • Remove FlaxException
  • Remove warning on missing initial entry state for Anim Graph state machine
  • Refactor model Import Options to display only relevant properties for asset Type
  • Refactor PhysicsActor into Rigidbody (use IPhysicsActor interface manually)
  • Refactor HashSet to support custom allocator
  • Refactor API_INJECT_CPP_CODE into API_INJECT_CODE to support code injection in other languages
  • Refactor Visject reroute node to support reconnecting and have more usability
  • Refactor scene objects initialization to call OnAwake before all OnStart
  • Refactor engine to support double-precision vectors
  • Refactor OrientedBoundingBox to use Transform for transformation instead of Matrix (for large worlds)
  • Refactor FlaxTests to run as Editor with all engine services initialized
  • Format engine codebase with ReSharper
  • Fix Lightmap UVs Source not working in model import options
  • Fix for macOS dylib path
  • Fix text box not consuming key down event causing editor shortcuts to activate when typing
  • Fix preserving Alpha channel when changing color with Value slider
  • Fix Android build with NDK 25
  • Fix editor options startup to not log error on a missing file
  • Fix for faster models exporting
  • Fix opening and editing animation with missing Anim Events
  • Fix Vector2 equality comparison
  • Fix sampling Curves with keyframes that have negative time value
  • Fix displaying multiple structure parameters in Visject Surface parameters panel
  • Fix opening material or particle emitter in editor if shader compilation fails
  • Fix picking to properly select closest triangle for meshes
  • Fix Directional Light color alpha in Sky atmosphere color
  • Fix CSM split point when using 3 cascades
  • Fix TextureBrush to return valid size if texture is not yet loaded
  • Fix editor viewport capturing mouse if window is not foreground
  • Fix looping streamable audio clips with multiple chunks
  • Fix enum operators to be constexpr
  • Fix game ticking in editor during cut-scene rendering at edit time
  • Fix Ctrl+S in timeline view to not split the camera shot media
  • Fix debug name for DirectX resources
  • Fix Surface parameter attributes editor popup location
  • Fix Constant Buffer binding on D3D12 when using Graphics after Compute pass with the same constants
  • Fix the Depth Of Field to be consistent no matter the resolution
  • Fix borders sampling in Depth Of Field to reduce leaking artifacts on screen edges
  • Fix editor error when selecting foliage type
  • Fix FlaxStorage refs counting to be atomic
  • Fix pasting/duplicating nodes in Visject to call spawn event
  • Fix error when loading surface from not yet loaded asset
  • Fix drag&drop into Scene Tree if move goes over valid drop target first
  • Fix wrong timestamps in C# profiler events
  • Fix copy pasting multi-line text into a single-line textbox
  • Fix removing Gameplay Globals
  • Fix Multi Blend 2D node if all blend points are on the same line
  • Fix selecting Debug Log window entries with the left-mouse button
  • Fix errors in Editor when editing particle emitter if effect that uses it is selected
  • Fix missing Properties window focus after adding script to the actor
  • Fix ParticleEmitter.Spawn() with default duration
  • Fix [AssetReference(typeof(typeName)] not working for arrays of assets (fix for collection types)
  • Fix PhysX crashes due to lazy actors adding by adding PhysX actors to the scene immediately
  • Fix foreach loop in Visual Script to continue flow on null array or dictionary
  • Fix default value in Dot and Distance graph nodes
  • Fix editing LinearCurve<Color> in properties window (color picker window closed keyframe editing popup)
  • Fix using null array of dictionary in Visual Script for init
  • Fix invoking anim events for multi-blend animations
  • Fix mouse hovering controls under expanded dropdown list panel
  • Fix Spline::GetSplineLength freeze
  • Fix Editor Analytics tracking option file SetupStyle
  • Fix duplicated actors after reparenting actor in Prefab
  • Fix Reroute node in Visual Script impulse flow
  • Fix Editor play mode exit bug after closing maximized Game window
  • Fix using preprocessor define values in Flax.Build bindings parsing
  • Fix processing else and elif preprocessor blocks in Flax.Build bindings parser
  • Fix parsing comments for Scripting API types that are templates
  • Fix snapping object to the group in Editor to skip trigger volumes
  • Fix error when double-clicking empty RichTextBox
  • Fix minor issue with Visual Script set parameter node calling flow during debugger value evaluation
  • Fix uploading volume texture data to GPU in D3D12
  • Fix shader source code encoding error on a compilation error
  • Fix font rendering and alignment with custom DPI scales
  • Fix Dictionary::Remove return value if empty
  • Fix error in Forward Shader Feature when rendering directional light shadow map
  • Fix ParticleEffectEditor issues after emitter editing if selected
  • Fix UsedSRsMask/UsedUAsMask when binding arrays to the shader
  • Fix normal map when importing materials for model files
  • Fix sorting items in various contextual list popups in Editor
  • Fix InstanceOrigin, PerInstanceRandom and LODDitherFactor to not use interpolation between shader stages
  • Fix Multiply (and similar) nodes result value in Visject if the first input is disconnected
  • Fix highlighting the first error/warning from the Output Log message text
  • Fix opening particle emitter editor window if shader compilation fails
  • Fix invalid Rigidbody bounds if it has no shapes attached
  • Fix crash if D3D device gets DXGI_ERROR_DEVICE_REMOVED during init
  • Fix crash with Vulkan when using Blur Panel in Screen Space canvas
  • Fix crash on macOS due to Vulkan timestamp queries error
  • Fix crash due to GPU Particles define not used in some headers
  • Fix crash when setting up recursive Material Instances inheritance
  • Fix crash when changing actor scene
  • Fix crash on opening skeleton mask window
  • Fix crash in scripting init if current localization is null
  • Fix crash on API event in C# after Editor hot-reload
  • Fix crash on Linux with empty log message
  • Fix crash when spawning prefab without scenes loaded
  • Fix crash when loading empty json for Variant structure data
5 Likes

Thanks for the update!

Excellent job! Thanks!