Commit Graph

140 Commits

Author SHA1 Message Date
e5c860e578 Moved a mesher vertex count check lower. This fixes missing meshes when none of the mesh data resources are fully in a chunk. 2021-08-07 15:14:50 +02:00
8362eaf58e Better phase cleanups in PropJob. 2021-08-07 15:03:35 +02:00
f62b605d9a now PropJob will actually use JobSteps. 2021-08-07 13:47:55 +02:00
ac6c5001d5 Added a few todos. 2021-08-07 13:46:50 +02:00
2ba4bc79c4 Change the terrain mesh indexes to prop mesh indexes in the prop job. Also query for the prop mesh cache. 2021-08-07 12:55:15 +02:00
2fd0eac8cc Added the JobStep api to TerraPropJob. It's used yet. 2021-08-07 12:37:37 +02:00
1fd761e115 Don't cast to TerraMesherBlocky in the TerrarinJob. 2021-08-07 12:32:22 +02:00
31a5ac8764 Moved the lod_index property from TerraMesherBlocky to TerraMesher. 2021-08-07 12:31:52 +02:00
f59f817ee6 Now TerraChunk can store liquid and prop material cache keys aswell. 2021-08-07 12:09:41 +02:00
f76a7f9df4 Chunk's mesh_data_resource_add expects a local transform. 2021-08-07 11:26:21 +02:00
c7f7d0919d Don't pass bool as a const reference. 2021-08-07 11:11:21 +02:00
d3e5bb84cc Fix typos. 2021-08-07 11:09:30 +02:00
01721b9488 When the world adds a MeshDataResource to the chunk it should not be scaled again. 2021-08-07 11:08:20 +02:00
94c9fc39ac Implement refcounting for material caches. 2021-08-03 01:08:50 +02:00
8f989f7ae0 Fix potential race condition. 2021-08-03 00:24:15 +02:00
66278f0ab8 Added initialized property to TerraMaterialCache. 2021-08-03 00:16:29 +02:00
c1b0ee6651 Add missing binding to TerraMaterialCachePCM. This fixes cached material textures. 2021-08-03 00:10:16 +02:00
3da5fead10 Add support to the cache in TerraMesherBlocky. 2021-08-02 23:49:16 +02:00
73243e5b9d Removed the voxel_ prefix from the surface related methods in TerraMaterialCache. 2021-08-02 23:47:50 +02:00
2a627b0dd2 Implemented the surface related methods in TerraMaterialCache. 2021-08-02 23:44:05 +02:00
74c5200ec5 Removed the surface related overrides from TerraMaterialCachePCM. 2021-08-02 23:43:38 +02:00
24fbd24a6c Fix compile. 2021-08-02 23:33:29 +02:00
6e7a9ae71b Added a new virtual voxel_surface_id_get method to the material cache. 2021-08-02 23:27:24 +02:00
1a395d3dc4 Store the id in the id property for the cached surfaces. 2021-08-02 23:19:40 +02:00
3a51d4c044 If the chunk dosen't need a material then set has_cache_key to false. 2021-08-02 23:17:30 +02:00
06ade87fac Check whether the chunk has a material cache key set instead of checking whether the library supports caching in the terrain job. 2021-08-02 23:06:22 +02:00
a813a60cf7 Added a mutex to _material_cache_get_key in TerramanLibraryMergerPCM, as this method will be accessed by multiple threads. 2021-08-02 22:45:29 +02:00
d23e2747fb Assign the new cache immediately, also comment out debug print. 2021-08-02 22:37:19 +02:00
16fe978c41 Changed const ref to a normal parameter on the get_key methods. This fixes a crash. 2021-08-02 22:34:07 +02:00
4dad639cc6 Implemented the main caching logic in TerramanLibraryMergerPCM. 2021-08-02 22:23:04 +02:00
6c5487d6c2 Add the TexturePacker, and some bindings into TerraMaterialCachePCM. Also implemented refresh_rects and _setup_material_albedo. 2021-08-02 22:21:34 +02:00
dd2aa2b303 Fixed broken set_library call. 2021-08-02 22:19:26 +02:00
2e1257d19a Remove cast in TerraSurfaceMerger's refresh_rects(), as it's no longer needed. 2021-08-02 22:18:13 +02:00
9fa05da4af Make the private fields in TerramanLibrary protected. 2021-08-02 22:17:42 +02:00
6012aeb00d Added missing binds. 2021-08-02 22:16:13 +02:00
2a731480d0 Improved the cache api again. Now the chunks can store the assigned key, so it does not have to be re-hashed again only if actually needed. 2021-08-02 20:02:48 +02:00
9e9640891d Fix a few warnings on launch. 2021-08-02 20:00:33 +02:00
74ab6b315e Made TerramanLibraryMergerPCM inherit from TerramanLibrary instead of TerramanLibraryMerger. Added the code from TerramanLibraryMerger as a base for it. 2021-08-02 19:10:52 +02:00
460f38090b Added a new TerraMaterialCachePCM class to be used with the material cache pcm. Skeleton for now. 2021-08-02 19:03:56 +02:00
4647db8f1e Now the cache api uses the new TerraMaterialCache class. 2021-08-02 13:39:29 +02:00
f53e6572b1 Added a new TerraMaterialCache class. 2021-08-02 13:13:37 +02:00
e9c314eedc Small temporary design notes for the new pcm merger. 2021-08-01 22:59:09 +02:00
adf42dc30d Per chunk material support for the Terrain job. 2021-08-01 22:21:20 +02:00
45d8dca50c Added a new phase to the terrain job, if the library supports per chunk materials, it will query the key from it (which can create materials / textures hence the new phase). 2021-08-01 19:38:45 +02:00
951e01a66e Fix a few return values. 2021-08-01 18:49:13 +02:00
f3c3bac3d1 Changed the key's type from Variant to int, as it will work better. 2021-08-01 18:38:21 +02:00
40c0b2373e Changed the cached material api a bit to be more efficient. 2021-08-01 18:22:13 +02:00
ac786ab720 Added TerramanLibraryMergerPCM. PCM = Per Chunk Material. Just a skeleton class for now. 2021-08-01 17:50:58 +02:00
660ea8bf74 Use the new lod variant of the library's material getters wherever possible. 2021-08-01 16:33:17 +02:00
cc634fb760 Added an api to terraman library to be able to support cached per chunk materials. 2021-08-01 16:22:03 +02:00