Build 106
Build 106

✨ Add FVoxelCubeAssetEditorToolkit

✨ Add FVoxelBaseEditorToolkit

🐛 Fix graph preview colors

🐛 Fix embree

✨ Add VoxelCubeAsset

♻ Add SM_CubeWithFaces

♻ Remove FVoxelFoliageSave again

♻ Add disabled DistanceFieldResolutionScale

🐛 Fix generator picker type dropdown

✨ Add channel mapping to cubic greedy renderer

♻ Add back foliage save type to avoid BP corruption

🐛 Fix greedy renderer

✨ Add back binary nodes

✨ Add MaterialId output type to graphs

🐛 Fix smooth union

🐛 Fix float parameters

🐛 Voxel graph fixes

🐛 Fix raytracing crash

🐛 Fix voxel embree

♻ More EA fixes

🐛 Fix EA

🐛 Fix 4.26

♻ Safer generator picker

🐛 Fix voxel graphs

♻ Fix UE5 warnings

♻ UE5 fixes

♻ Remove voxel erosion

🐛 Fix voxel graphs

🐛 Fix foliage crash

✨ Add very slow Nanite support

♻ Embree3 -> VoxelEmbree3

✨ Fix UE4

✨ Fix UE5 part 2

✨ UE5 support

🐛 Fix center of mass issue on scale voxel foliage actors

♻ Cleanup base types

♻ Clamp voxel density between -10 and 10 instead of -1 and 1

🐛 Fix sphere tool

♻ Add VOXEL_IMPLEMENT_MODULE

🐛 Fix initialization of static members

🐛 Fix remaining tools

♻ Start fixing tools

🐛 Fix voxel saves

🐛 Fix reader bulk getter

♻ Refactor data reader/writer to have less templates

♻ Start refactoring voxel types to support dynamic precision

♻ Add FVoxelBitArrayHelpers::Copy

♻ Start cleaning up voxel types

♻ Remove surface net mesher

🐛 Fix 4.26

✨ Smarter FVoxelDistanceIntervalCustomization

✨ Add back automatic foliage refresh

✨ Better FVoxelDistanceIntervalCustomization

✨ Compute ray spawners neighbors for clusters

🐛 Fix type issues

🐛 Cluster fixes

✨ Add foliage clusters

♻ Cleanup HISM build task

♻ Faster HISM build tree

🐛 Fix magica vox import

♻ Fix save object load

♻ Fix save object

🐛 Fix error when reaching max LOD nodes

🐛 Fix crash

♻ Add voxel world setting migration

♻ Better data assets

♻ Fix ensure when creating material instance with null parent

♻ Fix asset actors

♻ Deprecate voxel asset actor

♻ Remove voxel cooking

♻ VoxelDataLockInterface -> VoxelDataLock

♻ VoxelDataLock -> VoxelDataLockImpl

♻ Remove old voxel data impl

♻ Remove dead voxel graph code

♻ Remove ShowAxisDeoendencies

♻ Remove voxel graph debug

♻ Remove Niagara support

♻ Remove VDB support

♻ Add comment

♻ Cleanup includes

♻ Don't include VoxelWorld everywhere

🐛 Fix undo not refreshing voxel world property changes

🐛 Fix generator picker details

🐛 FIx flat generator color

🐛 Fix 4.26

🐛 Fix outer ensure

♻ VoxelValue.h -> VoxelDensity.h

♻ More Value -> Density renames

♻ FVoxelValue -> FVoxelDensity

🐛 Remove interpolated getter stat

✨ Add back foliage

♻ Add comment

✨ Add data assets rotation

🐛 Fix LOD settings changes not being properly applied at runtime

🐛 Fix glitches in greedy material due to using int instead of uint

🐛 Fix dithering issue

♻ Remove GetGraphOutputTypeRangeTypeSize

♻ Fix data assets range & interpolated queries

♻ Cleanup voxel range

♻ Remove old graph generators warnings

♻ Remove VoxelRef

♻ Start adding back data assets

🐛 Fix default LOD ChunkSize

🐛 Fix IsDestroyed not doing the right thing

♻ Update FastCrater example

✨ Add back crater noise

✨ Add back voxel graph preview

✨ Add back celullar noise

✨ Add back more noise nodes

🐛 Fix LOD octree bug

🐛 Fix WorldSize default

♻ Noise node progress

✨ Hiding the voxel world in the editor cancels all pending tasks

♻ Add noise node skeleton

♻ Deprecate all noise nodes

🐛 Fix VS 2017

🐛 Fix shipping

✨ Refactor voxel noise

♻ Remove old op codes

✨ Faster voxel graph

✨ Faster voxel graph VM

✨ Faster FVoxelValue constructor

✨ Faster query zone

♻ Working graph VM & C++ translation

♻ Ensure value output is always float

♻ Working new graph bytecode

♻ Add graph output compiler

✨ Add new graph output node

♻ Remove most of the old voxel graphs

🐛 Fix include

✨ Start switching nodes to new bytecode

♻ Remove unused node helpers

♻ Remove unused node functions

♻ Deprecate random nodes

♻ Deprecate setter nodes

✨ Add skeleton for new voxel graph VM

♻ Remove more nodes

♻ Start removing voxel nodes

♻ Start cleaning up voxel graphs

✨ Add voxel modifier picker

🐛 Fix ShouldCreateSubsystem not getting the correct settings in preview

✨ Add back material propagation

♻ Fix flatten tool

♻ Remove voxel data asset editor

🐛 Fix preset duplicate

✨ Add data asset automatic thumbnails

✨ Add UVoxelStaticMeshConversionLibrary

✨ Add data asset actors mesh preview

✨ Add voxel material serialization

✨ Recreate runtime when dynamic class changes

✨ Add IVoxelRuntimeInterface

✨ Add wrapper around materials to allow serializing them & updating them

♻ Start ApplyWorldBounds

♻ Cleanup World Size settings

✨ Add subsystem settings display order

✨ Add World Size Subsystem

♻ Start data asset actor work

♻ Remove all voxel world properties

♻ Move NormalConfig to mesher

♻ Remove UVConfig and UV Scale

♻ Migrate LOD settings

♻ Migrate foliage settings

✨ Add duplicate option to presets editor

✨ Add voxel runtime presets

✨ Add voxel presets

♻ Safer hot patching

✨ Add TVoxelStaticBitArray visualizer

✨ Add GetMeshDescription

✨Replace foliage hack by engine hot patch on startup

✨ Add greedy cubic material support

♻ Cleanup voxel interfaces
♻ Add DECLARE_/DEFINE_VOXEL_COUNTER

♻ Cleanup FVoxelRuntime

♻ Add dynamic property update support

✨ Add set/get runtime variable K2 nodes

♻ Add VoxelBlueprint module

✨ Add subsystem class dropdowns

✨ Add FVoxelRuntimeActorDetails

♻ Add PCHs

♻ Add missing Fixup call

♻ Add missing Super::Tick calls

♻ Start refactoring voxel world settings to be split between subsystems

♻ Generic material query info

♻ Only enable visibility collision in preview

✨ Fix data asset generator
♻ Switch generator input to in32 instead of float

♻ Add FVoxelTypedData

♻ Add type migrators

🐛 Fix render crash when meshes are shared across multiple chunks

✨ Cache cooked physics meshes

🐛Fix PhysX crash on shutdown

✨ Compute visibility collision

✨ Use octree to quickly find chunks in bounds, making far LODs much faster

✨ Faster handling of large render chunks

✨ Add CacheLastChunk to accessor

✨ Faster single index renderer

✨ Add back greedy cubic mesher

♻ Move cubic mesher files

✨ Add channel name customization

🐛 Fix bulk RecreateSubsystems

✨ Fix single index

✨ Slightly faster save

🐛 Fix wrong position being queried for material at LOD > 0

✨ Add back saves

♻ Add VoxelUpdateManager skeleton

✨ Fix surface tools

✨ Faster GetDistancesFromSurfacePositions

✨ Faster JumpFloodStep_CPU

🐛 Fix FVoxelMaterialInterfaceManager race condition

✨ Make GetSurfacePositionsFromDensities faster

♻ Start fixing surface tools

♻ More lock fixes

🐛 Come back to reality and remove any support for recursive locks :(

♻ Data lock stuff

✨ Allow fully recursive locks
✨ Automatic & much faster data lock octree trimming

🐛 Fix lock ensure

✨ Start migrating tools to new system

🐛 Fix foliage biomes creating an exponential number of entries

✨ Add recursive lock support

♻ Remove RevertTool
🐛 Fix RemoveSphereWithDurability

✨ Add back color smoothing

✨ Add back smooth tool (~2.5x faster)

✨ Add voxel modifiers

♻ Add TVoxelFunctionRef

♻ Fix some of the sphere tools

✨ Multithread chunk allocation when editing

✨ Faster gradient normals

🐛Fix lock crash

✨ Add back gradient normals

♻ Move TVoxelDataReader to its own file

✨ Even faster undo redo

✨ Faster undo redo

✨ Faster undo redo

✨ Merge undo redo bounds

✨ Add undo/redo

♻ Move FChunk out of FVoxelRenderChunkManager

♻ VoxelChunkRenderer -> VoxelRenderChunkManager

♻ FVoxelChunkRenderer -> FVoxelRenderChunkManager

♻ Do not error out of CreateWorld is called but bCreateWorldAutomatically is true

🐛 Fix subsystem threading issues
✨ Add TVoxelSubsystemCachedPtr
✨ Optimize ChunkRenderer -> RendererManager communication

✨ Add data history

🐛 Fix collision manager doing unnecessary updates when collisions are frozen

♻ Remove API from DEFINE_UNIQUE_VOXEL_ID

♻ Move FVoxelDataChunkKey to its own file

✨ Add voxel type

✨ Add support for voxel subsystem interfaces

✨ Faster data query when data is edited

✨ Faster voxel diffs

✨ Add multithreaded edits & modified values tracking

♻ Cleaner voxel stats names

✨ Add voxel data writer

♻ Add data accessor

♻ Add back IsEmpty

✨ Improve VoxelDataReader

♻ VoxelDataAccessor -> VoxelDataReader

🐛 Fix lock debug

🐛 Fix marching cubes transition mesher

♻ More data refactor

🐛 Fix bit arrays compilation

♻ Add TVoxelPointerOctree visualizer

♻ Add IVoxelSubsystem::PostRecreate

♻ Data refactor progress

✨ More work on new data pipeline

🐛 Fix DistanceBetweenInstances not being migrated

♻ Add FVoxelDataLock::IsLocked

♻ Add data channel template

✨ Add FVoxelDataLock

♻ VoxelDataLock.h -> VoxelDataScopeLock.h

♻ VoxelSimpleOctree -> VoxelPointerOctree

🐛 Fix ApplyNewMaterials

♻ Remove bStaticWorld

✨ Optimize marching cubes hot path

✨ Improve marching cubes main mesher perf

♻  Split single and bulk values in marching cubes stats

✨ Bulk query values in transition meshes

✨ Add mesher stats

🐛 Fix UVoxelCubicLibrary linkage

🐛 Fix material being queried on the wrong voxel

♻ Add back IsEmpty debug

♻ Add back empty checks

♻ Default editor controls CollisionsRange to 50000

🐛 Fix SetCollisionsFrozen not flushing collisions

🐛 Fix holes in marching cubes when values are null

🐛 Fix LOD root node not being subdivided

🐛 Fix overflow in LOD manager

♻ Move marching cubes transitions to new system

🐛 Fix overflow in collision manager

🐛 Fix cooking

🐛 Fix freezing collision

✨ Add collision chunk size

Merge branch 'RenderingRefactor'

Tmp

Tmp

Tmp

Optimize LOD tree

Tmp

Tmp

Tmp

Tmp

Tmp

Tmp

Tmp

Tmp

♻ Move invokers

Tmp

Tmp

Rename files

♻ Rewrite LOD octree

Tmp

Tmp

Tmp

🐛 Fix stats in 4.26

Tmp

Rename files

FVoxelRendererManager -> FVoxelChunkRenderer

Tmp

Tmp

♻ Move mesh handlers to their own folder

♻ Rename VoxelDefaultRenderer/IVoxelRenderer files

♻ Rename VoxelRenderer to VoxelRendererManager

🐛 Fix fast noise static constexpr linking

🐛 Fix UE_ASSUME warning

♻ Start refactoring meshers into subsystems

Phyronnaz/MarchingCubes,Phyronnaz/MarchingCubes,Phyronnaz/MarchingCubes