Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix surface/flatten tools to work on rotated terrain #436

Closed
wants to merge 412 commits into from

Conversation

zcanann-manticore
Copy link

Currently in Core we're seeing that painting/sculpting terrain rotated on the Z axis is broken (45 degrees is the most broken).

The problem seems to come from an order of operations issue from applying the Radius before calling GlobalToLocal. Applying the radius afterwards seems to resolve the issue.

Phyronnaz and others added 28 commits December 14, 2020 00:19
🐛 Fix free (again)

🐛 Fix free

🐛 Fix android errors

🐛 Fix 4.25 warning

🐛 Fix 4.25

♻ Remove old spawner examples

✨ Refactor spawner system to use blueprint classes instead of assets. This allows to have inheritance between spawners, making them much simpler. Instead of the spawner config/spawner asset split, all settings are now located on the blueprint class.
📝 ALL previous spawner asset types are now removed
📝 bAlwaysSpawnActor is gone. It will be replaced by a better system.
📝 Passing the color/voxel material to foliage is not supported anymore. It will be added back using the 4.25 custom instanced mesh data channels.

✨ Add FVoxelFloatInterval/FVoxelInt32Interval

✨ Add FVoxelDistance

🐛 Move settings to be per subsystems, allowing to recreate one with new settings

🐛 Fix crash when recreating subsystems
♻ Rename VoxelSpawners directory to VoxelFoliage

✨ Add biome support

🐛 Fix previous commit

♻ Remove graph output configs, using an array directly instead

🐛 Fix more android errors

🐛 Fix android build

🐛 Fix exposed parameters not being applied on some nodes

♻ Add WIP foliage biomes

🐛 Fix data items not being added when spawned at runtime
🐛 Fix free

♻ Fix copyright

♻ Add FVoxelTransform

🐛 Fix crash when deleting mesh handler on async threads

🐛 Fix crash when canceling queued works

♻ Bump copyright notice to 2021

🐛 Add sanity checks to async works

🐛 Fix build

✨ Add foliage groups

🐛 Fix android build

♻ Make foliage properties not instanced

🐛 Fix foliage biomes

♻ Ensure voxel unique ids are truly unique

♻ Add missing redirect

♻ FoliageGroup -> FoliageBucket

♻ FVoxelFoliageBiomeSpawner -> FVoxelFoliageGroupSpawner

♻ More renames

♻ More renames

♻ Rename VoxelSpawner to VoxelFoliage

♻ Remove old spawner icons
🐛 FIx body instances transforms not being updated on voxel HISM
♻ Remove CustomOriginRebasing/voxel offset
✨ Improve the precision of voxel chunks, and add a bUseAbsoluteTransforms option for even greater precision
📝 bEnableCustomOriginRebasing/AddOffset/SetOffset are gone. Use bUseAbsoluteTransforms if needed instead.

🐛 Fix grass/tree foliage types not having actor classes

♻ Update pro readme
♻ Remove bOneMaterialPerCubeSide
✨ Add blueprint material collections
📝 bOneMaterialPerCubeSide has been replaced by blueprint material collections

✨ Make bUseAbsoluteTransforms use double even if voxel double mode is not enabled
✨ Add GetCubicVoxelPositionFromHit/GetCubicVoxelValue/SetCubicVoxelValue
✨ Add mask to SetMaterial

✨ Add int vector to int box conversion to BP
♻ Pass FVoxelRuntime in generator init

🐛 Fix UVoxelBlueprintMaterialCollection
♻ Disable ENABLE_VOXEL_QUEUED_WORK_CHECKS
Cleanup material parameter names

✨ Add support for single index greedy for magica voxel assets

♻ Show import UI when reimporting magica vox assets

♻ Remove AVoxelWorld::CanEditChange

🐛 Fix asset actors having the wrong component owner

✨ Allow using a single material in single index mode, to use greedy meshing

♻ Remove VoxelUserDefinitions.h
📝 VoxelUserDefinitions.h is gone - directly override the defines in VoxelDefinitions.h instead

🐛 Fix asset actors using the wrong bounds, making their preview low res

✨ Add RemoveSphereThresholded, to be used in cubic mode with single index

🐛 Fix crash when bEnableCubicFaces is used outside of cubic mode

✨ Add some basic layout for chunk-based generation (minecraft-like)

♻ Add 2D vector helpers
✨ Generate material instances to select single indices

✨ Add noisy magica vox material example

✨ Add Voxel_GetMagicaVoxUVs
🐛 Fix 4.26

✨ Add ONE_BIT_VOXEL_VALUE
🐛 Do not store any metadata about non-dirty chunks
♻ Recompile all blueprints

♻ Move voxel foliage to its own module
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate

🐛 Fix edges in the magica vox material
✨ Add optional detail normal to magica vox material
♻ Cleanup magica vox materials structure

🐛 Hide classes in material pickers

🐛 Fix bUseMaterialCollection not refreshing details

♻ Add comment to UVoxelInvokerAutoCameraComponent

♻ Rename RemoveSphereThresholded to RemoveSphereWithDurability, and make it take an interval
✨ Add FVoxelInterval Contains function to BP

♻ Fix magica voxel assets reimport settings not being saved

♻ Use local space triplanar for the noise texture in magica vox material

🐛 Fix VoxelPhysicsPartSpawner_VoxelWorlds center of mass & property copy
🐛 Fix voxel asset actors not having collisions, preventing drag & drop
🐛 Fix instanced material collection material picker

🐛 Fix simple collisions not being updated when they're entirely removed

✨ Update cubic destruction controller to work with magica vox assets
✨ Add automatic migration from old spawner system to new foliage system

🐛 Fix sphere foliage querying outside of the locked bounds

🐛 FIx simple collisions

✨ Add SplitSingleIndexTriangles
✨ Add custom data support to foliage

♻ Update material functions

Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate

✨ Add Voxel_UnpackColor

🐛 Fix 4.25
🐛 Fix free

🐛 Fix free

🐛 Fix free

♻ Add ParseFree

🐛 Fix free

🐛 Fix marching cubes tangents

♻ Cleanup foliage random generator to be more resilient to changes

🐛 Fix align to surface in height foliage

🐛 Fix generator output picker details

🐛 Fix voxel graph parameters not being applied when in macros

🐛 Fix uplugin
✨ Start work to make the render octree chunk size dynamic, allowing for much higher render resolution
♻ Rename ChunksClustersSize to MergedChunksClusterSize, and make it relative to chunk size instead of being absolute
📝 ChunksClustersSize is now named MergedChunksClusterSize and is relative to the chunk size
C++ 11 narrowing warning-as-error fixed
Merge branch 'ProBetaLTS' of github.com:Phyronnaz/VoxelPrivate into ProBetaLTS

🐛 More fixes

🐛 Fix VS2017 error

🐛 Fix UE4

♻ Update build script

✨ UE5
✨ 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
🐛 Fix 4.25

🐛 Fix 4.26

✨ Add GetCubeAssetId node

♻ Remove FVoxelSubsystemCache

♻ Automatically assign cube assets ids

✨ Add two sided cubes support

✨ Add support for transparent cubes

✨ Add complex cubic mesher

🐛 Fix some font color issues in UE5
♻ Better errors for conflicing subsystems

♻ Add FVoxelMaterialId16 and FVoxelMaterialId32

♻ CubicMesher -> GreedyCubicMesher

♻ Remove legacy distance field support

♻ Add VoxelSimpleCubicRenderer

🐛 Fix bit arrays

♻ Disable duplicate tool icons in 5.0

🐛 Fix bit array copy

🐛 Fix cubic rotations

🐛 Fix save/load

✨ Add cube rotation support

♻ Add TVoxelTypeBitSize<TVoxelUnitScalar>

✨ Add Get/SetVoxelCubeAsset
✨ Add FindCubeAssets

♻ Allow Edit when preset is None part 2

♻ Limit world size to 500M to avoid issues

♻ Always show preset edit button

🐛 Fix FVoxelGeneratorPickerCustomization ensure

🐛 Fix crash when editing chunks outside world bounds

♻ Add voxel.renderer.OverrideMaterial

🐛 Properly fix cubic mesher not being refreshed

🐛 Fix cubic mesher update bounds

🐛 Fix collision tasks priority

🐛 Fix UVoxelCubicLibrary

🐛 Fix F to focus in cube asset viewport

🐛 Fix cube asset thumbnail rotation

🐛 Fix voxel graph toolbart

✨ Add automatic cube asset discovery

♻ Add FVoxelSubsystemSettingsBase::Initialize

✨ Add cube asset viewport

Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate

♻ Fix CubeWithFaces
♻ Update readmes

🐛 Fix 4.27

✨ Add better mesh card generation

♻ Add VOXEL_UE5_EA

🐛 Fix mesh importer on dedicated servers

♻ Remove distance field instances logic

♻ Experiment with distance field instances

✨ Add support for editor only distance fields

♻ Push missing file

🐛 Fix more math nodes

🐛 Fix FVoxelIntBox::Count overflowing

♻ Add experimental mesh card support

♻ Add TVoxelMeshKeyBase

♻ Remove FVoxelUtilities::Get

♻ Mesh metadata -> mesh attribute

✨ Start adding mesh cards support

🐛 Fix GetComplexCubicIds

🐛 Fix 4.24

♻ Add complex cubic material functions

Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate

♻ Start fixing up foliage densities

♻ Reuse textures to avoid creating too many objects

🐛 Fix cubes being gray when recompiling parent BP

✨ Add cube class to the tags, allowing to see a cube asset class in its tooltip
♻ Remove BaseColor from CubeAsset
✨ Add support for scalar parameters

✨ Show cube class in the cube asset editor

🐛 Fix voxel graph macros always being dirtied

✨ Add property-based texture arrays

✨ Add cubic texture arrays

Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate

♻ Update Build.ps1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants