4 Months Ago
New TerrainMaterial & TerrainStorage assets, improve terrain creation, no more manual vtex layers New TerrainMaterial asset, can be used on multiple terrains, copied from other projects * Replaces TerrainData.TerrainLayer which used manual packed vtex files * Accepts source images for: albedo, normal, rough, ao, height * Compiles into 2 generated vtex_c * Contains other properties for metalness, uv scale, uv rotation * AssetPreview is used for editor UX too, instead of hacky shit before * TerrainMaterialEditor auto populates _normal _rough etc. properties from albedo * Drag drop TerrainMaterial assets into Terrain component * Open for expansion to grass/clutter properties TerrainStorage * Replaces TerrainData & TerrainDataFile * Make use of IJsonConvert to avoid all the crazy crap I was doing before * Drag drop TerrainStorage asset into scene Terrain component editor: * Support creating or linking TerrainStorage if none is attached * split settings into its own tab, add filter properties * Don't force Terrain creation through GameObject menu, don't hide terrain asset generation in here, don't hide the Terrain component * Remove special terrain save logic from SceneEditorSession, use scene.saved editor event * Disable specular on terrain Terrain: Mark all TerrainMaterial textures as used and wanting max quality. In the future this could be smarter and not want max quality for textures used far away Basic height blend https://files.facepunch.com/matt/1b1711b1/sbox-dev_0JNrWPuC9N.png JsonUpgrader for TerrainStorage: Resample ^2+1 heightmaps to just ^2, use non-nested format