branchrust_reboot/main/terrain_renderercancel
109 Commits over 243 Days - 0.02cph!
Terrain quality now effects terrain LOD global scale
Clamp terrain cells to terrain borders
In editor TerrainMeta will try and find terrainData if null
Improve switching between terrain renderers in game for testing
Remove terrain prefab from worldsetup
Rename renderer to GeometryClipmapTerrain
Fix compile error with server
Switching renderer enum in editor now finds and enables chosen terrain renderer
Simplify lod configs to int array
Fix terrain position getter
Rename terrain compute
Refactor of TerrainMeta and TerrainExtensions with swappable terrain/terrain renderer using ConVar or in editor view (WIP)
Changed keyword to _GEO_CLIPMAP and made shader feature
Added geoclip material to terrain config
Terrain mesh colliider with terrain holes functionality
Fix height sampling on some terrain sizes, add tooltips to convars, fix server compile errors, set terrain prefab to craggy, set default global lod scale to 2
Add ConVar to use MeshColliders for terrain cells, add editor buttons to create mesh colliders, clean up unused code, and put debug info behind flags.
Clean up editor, fix LOD extent validation, fix editor defaults causing 0 LOD extents, and set new defaults
Terrain cell mesh colliders with separate cellsize from rendering
Terrain mesh collision cells wip
- TerrainHoles support
- Add compute blit when using R16 format
- Only create R16 map when enabled
- Change low res heightmap to use full uint16 range
- Initialise groupthread min and max at texture bounds to fix border values
Terrain collision update tests
- Implement CPU heightmap functions in GPU compute (HeightMapApply), should remove need for map sync
- Profile tests for AddHeight and SetHeightsDelayLOD using a limited texel area
- Add option to use terrain R16 maps, and the active terrain render texture
- Use R16 UAV heightmap for compute and terrain vertex shader
- Improve camera culling by including min/max height of cell
Add alternate slanted grid topology option
Fix culling radius calculation
Fix LOD scaling cell positions for culling
Testing changing terrainData heights with different apply methods, and using terrainData heightmap RenderTexture
- Swap terrain convar lodFactor with lodGlobalScale
- GlobalScale effects cell counts between each LOD level
- Add LOD cell extent sliders for each individual LOD level
- Simplify instance offsets calc
- Adjust culling for new terrain cell sizes
- Fix lod border cells, and negative cells
- Change mesh master to only 3 submeshes
- Change instance offsets and arguments for new approach
- Culling toggle in editor
- Fix issues with cell offsets
- Fix grid offsets with negatives
- Change dispatch thread size
Split grid sideblocks to simplify thread to coords
Nested grid changes:
- Add scale to instance data
- Move rotation float2 to uint
- Handle finding grid coords in nested grid with thread id
- Find LOD using precomputed offsets instead of distances
- Adjust grids by offset from LOD0 grid
Terrain renderer editor script
Add terrain testing scene
Add mesh spawn debug option
Change vertex density slider to int
Switch to linear sampling where density is increased
Fix edge length calculation, alignment actually fixed
Align terrain vertices with texel corner to match unity
Move ConVars to terrain ConVars
Add terrain renderer to WorldSetup
Add terrain mesh culling toggle
Improve editor terrain view
Snap render distance to cell to make bounds consistent
FIx incorrect LOD borders at last LOD
Change position operations to integer coords to solve lod border issues with some terrain sizes
Setup terrain renderer to run in editor for scene view and game view cameras
Make low res heightmap size dynamic to handle different terrain sizes
Add profiling marker to terrain render
Use min and max for coarse terrain height shadow culling and re-enabled camera and shadowing culling.
Add vertex density slider for terrain detail
Fix grid position alignment issues with some cell sizes
Editor recreates terrain buffers on inspector changes
Fix instance offsets, and LOD border calculations when using some LOD distance values
Add debug validation toggle to system
Handle terrain detail when using narrow FOVs by moving the centre point along the forward direction but clamped to the first LOD boundry
Fix render bounds flooring
Fix corner LOD edge detection
LODs are now seamless
Fix incorrect edgeFlags, rotation, and flipped border meshes
Add colour to instance data for debugging, wip rotation handling for seamless LOD borders
Fix cell mesh sizes at each LOD
Fix mesh create errors, change from vertCount to vertLOD index for choosing lowest LOD vertex count
Fix mesh creation with border meshes
Calculate instance offsets when LOD factor is updated
Combine per LOD compute into singular dispatch