Before integration of SoC terrain can commence a number of changes, fixes and cleanups needs to be done.
Short term:
Normalize coordinate systems. Terrain is in xz plane, y is height!. Correction: use XY when talking about "heightmap space" coordinates but xz+y when in 3d coordinates.Redo the LRU stuff to use better timing sourceMaterial maps / base material should behave like old bruteblock with addition of possibility to add explicit alpha-maps on top of materialmapAdditional pairs not yet supported!Support for 32-bit indices when neededOnly generate indices once per block resolution, not per cell.Reformat code a bit to conform to CS standards.Rewrite the feeders to only have one instance of them for several cells.Rewrite the factory/instance interaction. Currently it only allows one instance to be created from a factory and nothing is stored on a per-factory basis. Needs decisions ;)
Longer term, things that can be done after integration:
- The terrain collision should be unified in one place
- More LOD control settings. Biggest/smallest tesselation etc.
- Atm only triangle edges<->terrain is handled in the terrain collision code, which works for small triangles. Need to add terrain edge<->triangles too.
Inter-cell LOD handling to avoid cracks.
