Repository navigation
Blog post: https://flaxengine.com/blog/flax-1-13-released/
Release notes: https://docs.flaxengine.com/manual/release-notes/1_13/index.html
Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-13/2718
Changelog:
- Add Hardware Occlusion Culling to models, foliage, particles, terrain and local light shadows
- Add HZB Occlusion Culling
- Add more logging on GPU crash
- Add
Arrayctor fromSpan - Add security limits for network to avoid too many messages processing
- Add option to hide debug commands (eg. one auto-added within container class)
- Add new defaults to Graphics settings to target
Highby default - Add auto-fill to plugin project clone based on clipboard
- Add debug preview to selected resource in GPU Memory tab
- Add API to draw Skinned Model from code with Animated Model pose
- Add
FLAXENGINE_VERSION_MAJOR/FLAXENGINE_VERSION_MINORmacros to shaders compilation - Add
PostProcessEffect.CollectDrawCallsto properly draw custom meshes - Add temporal dithering and more accurate blending for contact shadows
- Add volume debug draw highlight to the selected env probe
- Add Light Overlap debug view mode
- Add
IndirectShadowsStrengthtoGIsettings for artist-controlled light leaking - Add NVIDIA PerfSDK plugin for Flax Engine
- Add
Graphics.Shadows.Dumpcommand for profiling shadow mapping - Add
Graphics.GI.Dumpcommand for profiling DDGI/GlobalSDF - Add
Graphics.GI.GetConvergenceto use GI bounce progress for game loading screens/fades - Add new DDGI Reflections rendering mode for fully dynamic indirect specular
- Add
CanBuildto target for selective project references compilation - Add
GIProbesSpacingandGlobalSurfaceAtlasResolutionto globalGraphicsfor runtime editing - Add noise to Global SDF and Surface Atlas debug preview to smooth the tracing
- Add Global SDF dynamic chunks updates between full cascade updates to hide latency on fast moving objects
- Add new
Lightingdebug view mode for both diffuse and specular lighting preview without material colors - Add option to render DDGI indirect lighting in half-res with bilateral upscaling
- Add zooming in and out (FOV) in editor viewport using
CandZkeys - Add support for Windows 11 SDK version
28000 - Add auto focus on model when changing Base Model in Anim Graph
- Add direction gizmo rotation while holding right mouse button
- Add help support to Debug Commands via XML docs parsing
- Add client-side window decorations support for macOS editor windows
- Add
MacWindowlogo loading and use correct one for Editor - Add Volume to audio clip import options
- Add material instance creation out of other instance
- Add filtering whitespaces to Xml doc comments of type members and optimize filtering
- Add type picker when creating abstract class or interface
- Add cross button to unset abstract class or interface object value
- Add layers settings shortcut to actor layer dropdown
- Add support for building Android targets from macOS
- Add navigation to Slider control
- Add
Create Prefab Variantoption to Prefab asset context menu - Add utility UI Control spawn menu inside scene/prefab context-menu
- Add middle and right mouse button actions to asset/object pickers to clear value or show popup quickly
- Add shortcut to show editor windows content (
Ctrl + 0) - Add max .NET version to 11
- Add hiding tooltips when mouse buttons are pressed
- Add custom animation inputs to Multi Blend nodes
- Add improved tooltips to Visual Script types with file name
- Add auto-scroll the Content Window navigation bar to the current folder
- Add grey display for deprecated enum options
- Add improved Rider projects C++ preprocessor definitions (Linux/macOS)
- Add new
ScriptingObjectInterfaceReferenceto reference object with interface - Add rich text formatting to Debug Log title messages
- Add
Start/EndTextInputfor control to toggle character input events - Add MSDF font enhancement (eg. shared size per-asset)
- Add word wrap support to Rich Text Box
- Add various improvements to CSG Brushes editing workflow
- Add more useful titles for BT decorator nodes
- Add red/green highlights to debug BT node decorator result
- Add editable keyframe proxies for linear and bezier curve editors, including time/frame fields and curve values
- Add tangent editing support for bezier curve keyframes in the keyframe edit popup
- Add curve keyframe edit popup draggable so it can be moved away from the curve view
- Add CLion support (via CMake project files)
- Add option when entering play mode to always restore to the editor window after exiting play mode
- Add auto-select of newly copied/moved content items
- Add
CHECK_NO_RETURNfor checks in code that should continue function execution - Add
VariantType::GetScriptingTypefor easier type information access - Add simpler
Variant::Enumthat auto-setups variant type from enum scripting info - Add more LOD Generation options to model import settings (eg. borders lock, preserve UVs)
- Add
Physics::DeleteScene - Add properties search field
- Add distance-scale to vertex paint vertices
- Add vertex paint brush size changing with shift+scroll
- Add improvements to Gameplay Globals editing
- Add auto-renaming newly added Visject parameters
- Add Texture and Cube Texture support to Gameplay Globals
- Add
RealtimeSkyboxmode toSkyLightfor dynamic skylight - Add
Brightness,ResolusionScale,DebugView, andLayerMaskto viewport persistence - Add Video playback value on Video Player
- Add way to get blackboard by type
- Add
AGENTS.mdfile (to Engine repo) - Add auto scroll to new track when adding track to animation
- Add groups to Animated Model properties and improve skeleton debug drawing
- Add GetValue by type in c# for gameplay globals
- Add
Escapekey to deselect in Editor - Add
VersionControlInfoto output game build info and log game version with branch/commit info - Add
D3D12MemoryAllocatorfor resource allocations on DX12 - Add
GPUMemoryStatsfor GPU video memory stats - Add
GPUDrawPassfor more efficient render attachments setup - Add detecting Vulkan SDK version in build tool
- Add scalability via AA Quality setting for TAA
- Add realistic soft shadows on Ultra quality with
PCSSfilter - Add
SourceAngleproperty to Directional light that controls PCSS penumbra size - Add highlight to Motion Vectors Debug view for better content optimizing
- Add
Optimizationsub-group in view modes list in Editor Viewport - Add VSync support to Vulkan
- Add support for loading custom mouse cursor images
- Add support for using macros in scripting function parameter default values
- Add
GetTextureDatafunction to texture API in C# - Add 'GPUBuffer' parameter type to materials and particles
- Add rendering stats for Data Upload
- Add Reversed Z rendering for higher depth buffer precision in open-worlds
- Add in-built editors for
DateTimeandTimeSpan - Add
ShowInPlayModetoHideInEditorattribute for properties/fields that should display in editor only during play mode - Add new
Level.PreloadSceneAsyncfor streaming levels before they need to be loaded in - Add debug prints for logs init for console issues troubleshooting
- Add missing serialization and empty ctor to
CultureInfo - Add
EditorUtilities::GetSDKto query SDKs viaFlax.Buildfrom editor - Add
FromMemoryandLoadMemorytoTexturefor loading images from memory - Add
GetUserAvararto Online Platform interface - Add rich-presence to Online Platform interface (status text and game id)
- Add game overlay UI utilities to Online Platform interface
- Add online platform implementation for PSN on PS5
- Add GDK manifest localization to fix packaging issue
- Add half-res DDGI reflections resolving to optimize rendering on low-end devices
- Add Global SDF trace step scale for SSR reflections to handle SSR Quality
- Add
ViewportRecttoCameraand rendering for split-screen drawing - Add
ViewportRecttoUICanvasfor UI placement - Add
InputLatencyMsstat toProfilingTools - Add
Loadedevent toAssetin scripting - Add
BoundingSphere.TransformwithTransforminstead ofMatrix - Add
GPUQueryType::BinaryOcclusionfor simpler visibility checks - Add
MaterialTextureMipBiasto control texture mip bias in materials for better frame upscaling - Add new temporal upsampling option (TAAU) when using location
DuringAntiAliasing - Add new FSR 4.1 plugin update (SDK 2.3)
- Add
Graphics::MotionVectors::MinObjectScreenSizeto skip too small objects from drawing motion vectors - Add mesh index buffer optimization based on
meshoptimizerlibrary - Add Global SDF Overdraw debug mode for content optimizations
- Add improvements to DDGI sampling and filtering in areas far from probes
- Add improved fallback GI outside the DDGI range to use a special ambient probe for stability
- Add
CascadeBlendSizeto Directional Light - Add
DefaultProbeCubemapFormatto Graphics Settings with option to compress env probe textures - Add
MeshAccessor.LoadBufferwith format for Index Buffers - Add Temporal Antialiasing as default AA method
- Add selection drawing and picking gizmo to Foliage Types editing tab
- Add audio device change detection in OpenAL backend
- Add
ExpandChildSizeoption to vertical/horizontal panels to resize child controls to fill the panel size - Add
DrawMaterialfeature toRenderToTextureControlfor custom post-processing the cached UI image - Add
ConstantInvalidateoption toRenderToTextureControlfor no-cached image - Add
Bypassfeature toRenderToTextureControlto skip rendering cached image - Disable Motion Blur and Eye Adaptation by default
- Deprecate the
Directionactor property and replace withForward - Remove deprecated
UWPplatform from Game Cooker window - Rename
SceneRenderTask::RenderingPercentagetoRenderScale - Rename Sphere Mask node A and B inputs to be more clear what they do
- Rename Actor bounding box and sphere properties to be more verbose with
Boundingprefix - Rename
BRDFvisibility functions prefix toV_fromVis_ - Change default for showing Debug Draw in game window
- Optimize XML documentation reference parsing and overall performance
- Optimize model actors entries serialization
- Optimize auto generated Variant Types in bindings to reduce dynamic memory allocs in game builds
- Optimize dirty shadow bounds update for particles and foliage
- Optimize Vulkan texture clears with render pass attachments clear operation
- Optimize Vulkan render passes with a new
GPUDrawPassto manually control attachment operations in higher-level API - Optimize various rendering effects with
GPUDrawPass - Optimize GPU memory allocations on D3D12 with
D3D12MemoryAllocator - Optimize foliage serialization by batching instance data, performing quantization, and LZ4 compression
- Optimize first scene startup by preloading it during loading screen
- Optimize content modifications watching events processing in large projects
- Optimize CPU rendering of shadowed foliage by splitting draw contexts into separate async jobs
- Optimize foliage instance bounds calculations
- Optimize
FoliageInstancesize to cut down memory by and reduce cache misses when drawing foliage - Optimize foliage rendering with less cache misses
- Optimize foliage drawing by caching per-instance world matrix
- Optimize large scene files loading by aligning json pool allocator pages to 64kB
- Optimize large scene/prefa/json assets metadata loading by avoiding parsing full contents
- Optimize draw calls batching and instancing with better sort keys generation and processing
- Optimize shadows and depth rendering with instancing support for transparent shaders
- Optimize
LightmapUVsto be stored already asHalf4to avoid runtime conversions during rendering - Optimize scene rendering loop performance
- Optimize Global Surface Atlas to cache objects shader data
- Optimize Global Surface Atlas updates distribution for subobjects (eg. foliage instances)
- Optimize Global Surface Atlas with object draws limit per frame
- Optimize Global Surface Atlas defragmentation with copying old atlas to avoid redrawing all objects
- Optimize Global Surface Atlas full direct lighting redraw to copy whole emissive atlas at once
- Optimize basic
Mathffunction to use more inlining - Optimize
Mathfto usefloatversions of intrinsic - Optimize Animated Model rendering with hardware instancing
- Optimize animated model startup to avoid double init of the bones buffer and pose
- Optimize resizing dictionary to add new unique keys faster for primitive and
intvalues - Optimize DDGI probes debug with a batched instanced draw
- Optimize DDGI indirect lighting resolving to use depth bounds test
- Optimize rendering when using TAA to draw PostFX directly to backbuffer
- Optimize development-only shaders and rendering code to compile it out in Release game builds
- Refactor
BRDFroughness input to be squared - Refactor Temporal Anti-Aliasing shader to have less ghosting and quality scalability
- Refactor
RenderingUpscaleLocationenum item names - Refactor
Wireframeview mode to draw wireframe on top of lit view - Refactor
Assetevents naming to match engine scheme - Refactor
CommandLineparsing and processing - Refactor
GeometryDrawStateDatastorage intoRenderBufersfor correct split-screen rendering - Refactor
ISceneRenderingListenerevents to contain more data - Refactor rendering code by moving
RenderContextto a separate harder file - Refactor
Actor::Drawto use only variant withRenderContextBatchto simplify rendering code - Refactor
NetworkMessageandNetworkStreamto handle errors gracefully, including in Release builds - Refactor engine shaders folder to have better organization
- Refactor
OnlinePlatformXboxLiveandOnlinePlatformSteaminto sharedFlaxEngine.Onlinenamespace - Update to .NET 10
- Update
LZ4library tov1.10 - Update to the latest Vulkan SDK
1.4.350 - Update Vulkan API to
1.2on Windows - Update Vulkan API to
1.1on Android - Update Vulkan API to
1.4on macOS and iOS - Update
DirectX12Agilityto1.619.3 - Update
DirectXShaderCompilerto1.9.2602 - Update actor
LookingAtto be a more descriptive name - Fix deprecated flag usage when loading scenes over multiple frames
- Fix loading
SceneReferenceproperty in Visual Script - Fix Global Surface Atlas rasterization of objects with negative scale
- Fix Global Surface Atlas tiles padding and position precision to have proper stability
- Fix DDGI sampling when using non-directional lighting (eg. smoke particles or volumetric fog)
- Fix default shadow depth bias values and control them based on shadow resolution/quality mix
- Fix Directional Light fade at distance
- Fix Directional Light rendering to be skipped when color alpha is zero
- Fix
Guiddiff serialization and loading invalid values - Fix editing flag enum to properly toggle bits incl. bit masks
- Fix missing SDK print for ones from modules or plugins
- Fix editing array of
CultureInfovalues - Fix
ForDistributionbuild option to not be explicitly enabled inReleasebuilds - Fix various shader warnings
- Fix UI double-click actions to work only with left mouse button
- Fix editor fonts resolution scale on High DPI screens
- Fix main camera by proper active cameras list ordering
- Fix delay on virtual GPU texture upload to be immediate
- Fix Quad Overdraw pass to skip draws from materials that don't support it
- Fix
CanvasScalerpoint projection when using location offset - Fix for flickering tree structures on expand/collapse
- Fix Windows SDKs and Toolsets log from build tool to be sorted descending by version
- Fix compiling project with plugins for Web
- Fix project version control info for empty
.gitrepo - Fix Global Surface Atlas sampling sub-texel error
- Fix self-shadowing artifacts in DDGI on fast moving objects
- Fix DDGI/SDF quality in editor view when moving static objects around
- Fix Debug Draw shapes manual depth test when using resolution upscaling
- Fix various rendering elements when using upscaling
- Fix using
Toolsmenu without Game Settings asset - Fix custom draw calls submission within post-process callback
- Fix Global Surface Atlas with large worlds
- Fix height fog density calculation with large worlds
- Fix warnings when running on
nullrenderer - Fix rendering transparent material on WebGPU without shadows
- Fix occlusion queries on WebGPU and Vulkan
- Fix missing network messages reading init to avoid crashes on incorrect message
- Fix various edge-cases in network replication system to avoid crashes
- Fix dangling replication queue items and parts after client disconnected
- Fix saving virtual Material Instance asset
- Fix safety of the network handshake and C# network stream
- Fix
ENetpacket leak after receive event - Fix
ENetnetwork driver to use 3 separate channels for different packet types - Fix
ENetnetwork driver stats from all peers - Fix assertion on shader load failure
- Fix missing
Int2/Int3/Int4inVariantsupport implementation parts - Fix Rider detection on macOS when installed in the user Applications folder
- Fix Vulkan Tracy timestamp queries on MoltenVK
- Fix macOS popup/tooltip windows handling
- Fix drag&drop on X11 Linux with SDL
- Fix mouse position in events reported from caption area on Windows
- Fix window decoration buttons not clickable with DPI scale
- Fix property get/set function name length in dotnet bindings
- Fix output log history popup management to smoother usage
- Fix
MeshAccessortriangle count calculation bug - Fix Variant static typenames caching bug in Editor
- Fix asset 'Reload' option to be available when asset failed to load for manual load
- Fix asset storage handling when file is locked
- Fix asset cache eviction for locked files to retain cached info
- Fix reloading assets that failed to load
- Fix dirtying scenes after building navmesh in Editor
- Fix scene texture node with
WorldPosition - Fix model material access with empty entries
- Fix Web build when python is installed in folder with whitespaces in path
- Fix building deps for Windows ARM64
- Fix UI focus entries list when opening import files dialog
- Fix auto-selecting newly imported or created assets in Editor
- Fix prefab Script track IDs for Scene Animation remapping
- Fix vertex paint brush size to match the highlight sphere
- Fix Editor Grid jitter after TAA resolve
- Fix
ProgressBarfill with large margin - Fix spline editing in Large Worlds
- Fix alternating table row coloring
- Fix Render2D line thickness scaling
- Fix procedural Skinned Mesh creation from code
- Fix t-posing when Multi Blend 2D when one of the triangulated point animations is empty or loading
- Fix timeline curve expanding to properly show whole curve area
- Fix GUI blur panel to respect input image alpha
- Fix Camera Space canvas rendering to properly clip viewport
- Fix collapsed curve keyframes display bug
- Fix mesh vertices deduplication to use relative error, not fixed value
- Fix Large World offset bug in triplanar texture nodes
- Fix eye adaptation to be turned off in editor asset previews
- Fix shader error when using non-ASCII characters in material
- Fix importing skinned models with multiple LODs
- Fix text box highlighting not using DPI
- Fix material drag over highlights to not flicker
- Fix missing distortion rendering on Deformable materials
- Fix missing treeview folder shortcuts
- Fix project generation when configuration/platform is unsupported
- Fix Editor toolbar to exclude project path but only name
- Fix dynamic C# scripting features in Editor by preloading stdlib assembly
- Fix indexed properties from displaying in Editor (throws exception)
- Fix terrain resolution in editor
- Fix terrain collision leftover when destroyed manually
- Fix terrain patch add mode not picking patches in scaled terrain
- Fix game window resize to maintain placement within screen (eg. centered)
- Fix game window resolution when resizing during fullscreen on Windows
- Fix game window to maintain resolution and be centered when going out the fullscreen on Windows
- Fix window layout when changing System DPI on Windows
- Fix infinite grid actually infinite
- Fix mesh index buffer when using 32-bit indices
- Fix content browser stealing focus from popup asset windows on SDL
- Fix Wayland window not getting attached to the drag operation
- Fix Vulkan swapchain surface to be preserved during resize
- Fix the release of Vulkan samplers
- Fix
NodesCachedesync after hot-reload in Editor - Fix C# std lib detection due to
RepositoryUrlchange - Fix nested prefab stack overflow when adding new object to nested prefabs hierarchy
- Fix nested prefab stack overflow when applying changes with animated models inside hierarchy
- Fix CSG Brush face moving bugs
- Fix mesh collider updates after recooking collision data
- Fix curve track right-drag panning responsiveness
- Fix curve track resize handling
- Fix Scene Animation preview playback controls and time comparison behavior
- Fix scripts/content files getting deleted after file modifications
- Fix scripting assembly file loading when file is locked
- Fix Editor's Game window minor stability issues
- Fix Editor windows order when restoring after scripts reload
- Fix floating editor window ordering and focus restoration on macOS
- Fix default value in Editor when it's
nullfor value-type - Fix GUI traversal during child removal
- Fix streaming of wide/tall textures
- Fix discarding unsaved asset editor changes
- Fix Roslyn analyzer include resolution
- Fix using
NuGetpackage with different dependencies - Fix Game Cooker wait on code compile/load end before cooking starts
- Fix
ParseFloatrejecting a '+' sign in the exponent - Fix slider control with negative minimum range value
- Fix spawning actors in viewport to have better origin placement
- Fix animation slot bugs and stabilize scripting playback
- Fix BT node size when renaming decorator
- Fix bug in BT sub tree knowledge type validation
- Fix C# 'IsByRefLike' types that cannot be created on heap
- Fix
In/Outattribute warning in generated bindings for boolean arrays - Fix Multi Blend animations reversed playback when using negative speed
- Fix missing mutex lock in Game Cooker thread
- Fix Wayland dragging events racing with SDL data offers- #4279
- Fix crash in scripting bindings when unboxing
nullclass - Fix crash on custom Assimp logger
- Fix crash on headless Editor game run
- Fix crash on inactive DDGI probes on 1st frame
- Fix crash on D3D11 init with debug when Direct3D debug layer is missing
- Fix crash when looping BT with Force Success node
- Fix crash when loading invalid
VisjectMeta - Fix crash when using curves inside Anim Graph
- Fix crash when encoding CJK characters from UTF-16 into UTF-8
- Fix crash when
GPUBuffercreation fails on D3D11 - Fix crash when skeleton node has invalid binding in Animated Model pose
- Fix crash
StringUtils::Copyon Win32 when length is zero - Fix crash on D3D11 draw without valid state set
- Fix crash on too long path on Unix
- Fix crash when reading process output on Windows with an empty data
- Fix crash when calling
DebugCommandsfrom async threads - Fix crash when using
WheeledVehicleas player pawn in Arizona Framework - Fix crash on invalid Multi Blend 1D indices