From 7476d08ed2b60997fcd6640e8f889a794686a3b0 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 7 Aug 2021 13:56:24 +0200 Subject: [PATCH] Updated Terraman (and the engine) to get JobSteps support for PropJob. This also fixes the error spam during mesh generation. --- HEADS | 2 +- game/tw/TerraWorldBlocky.gd | 41 +++++++++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/HEADS b/HEADS index 5514ccb3..556c4911 100644 --- a/HEADS +++ b/HEADS @@ -1 +1 @@ -{"engine": {"3.2": "94a0fc47f7b4e90f8973f9adbfd3312579ed2825", "master": "8c73e813134001e575b6f59e3b0100471c007410", "3.x": "3585c4f3d0b9f749f8f0034603463c7109d8aec4"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "0f709b5455411652f371879e83a0737589d690c3"}, "ui_extensions": {"master": "f82273f54cb1ab87d458c91af9554acec5c10831"}, "voxelman": {"master": "9253cc53c6fbbd78b5e4268eb498ef55b4dd0181"}, "texture_packer": {"master": "dbf3c59a9c52f155f0d98b567d571708e8b3f253"}, "fastnoise": {"master": "d447fd5364e9ab5a6b14184483eab23cd3fe820b"}, "mesh_data_resource": {"master": "3199cbe1a52e9d5714106e0332897ebac7a42496"}, "procedural_animations": {"master": "f8aae42bf06b3936cc6bd24cb18e1c3ec9f78f4f"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0eee4dba90e486ee7abd8039220d86f742a2fb6a"}, "mesh_utils": {"master": "29c5cc9a75af4506dfd44ae4c919a0771240dfb0"}, "broken_seals_module": {"master": "2afea56eba66beeb543934edf5a38a8aa63fc79b"}, "thread_pool": {"master": "b2e8c815392052947e7386f722913a12eea543a4"}, "terraman": {"master": "f76a7f9df489dff36f549cd6ab0fc18f7f34955b"}} \ No newline at end of file +{"engine": {"3.2": "94a0fc47f7b4e90f8973f9adbfd3312579ed2825", "master": "8c73e813134001e575b6f59e3b0100471c007410", "3.x": "41cf7f27607d29946575877eb8bebdc2d892e78d"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "0f709b5455411652f371879e83a0737589d690c3"}, "ui_extensions": {"master": "f82273f54cb1ab87d458c91af9554acec5c10831"}, "voxelman": {"master": "9253cc53c6fbbd78b5e4268eb498ef55b4dd0181"}, "texture_packer": {"master": "dbf3c59a9c52f155f0d98b567d571708e8b3f253"}, "fastnoise": {"master": "d447fd5364e9ab5a6b14184483eab23cd3fe820b"}, "mesh_data_resource": {"master": "3199cbe1a52e9d5714106e0332897ebac7a42496"}, "procedural_animations": {"master": "f8aae42bf06b3936cc6bd24cb18e1c3ec9f78f4f"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0eee4dba90e486ee7abd8039220d86f742a2fb6a"}, "mesh_utils": {"master": "29c5cc9a75af4506dfd44ae4c919a0771240dfb0"}, "broken_seals_module": {"master": "2afea56eba66beeb543934edf5a38a8aa63fc79b"}, "thread_pool": {"master": "b2e8c815392052947e7386f722913a12eea543a4"}, "terraman": {"master": "f62b605d9a3e2a66cb4c9ec057c91d56bb926b79"}} \ No newline at end of file diff --git a/game/tw/TerraWorldBlocky.gd b/game/tw/TerraWorldBlocky.gd index bed246b5..a42e6e4f 100644 --- a/game/tw/TerraWorldBlocky.gd +++ b/game/tw/TerraWorldBlocky.gd @@ -206,17 +206,6 @@ func _create_chunk(x : int, z : int, pchunk : TerraChunk) -> TerraChunk: if pchunk.job_get_count() == 0: var tj : TerraTerrarinJob = TerraTerrarinJob.new() var lj : TerraLightJob = TerraLightJob.new() - var pj : TerraPropJob = TerraPropJob.new() - - var prop_mesher = TerraMesherBlocky.new() - prop_mesher.base_light_value = 0.45 - prop_mesher.ao_strength = 0.2 - prop_mesher.uv_margin = Rect2(0.017, 0.017, 1 - 0.034, 1 - 0.034) - prop_mesher.voxel_scale = voxel_scale - prop_mesher.build_flags = build_flags - prop_mesher.texture_scale = 3 - - pj.set_prop_mesher(prop_mesher); var mesher : TerraMesherBlocky = TerraMesherBlocky.new() mesher.base_light_value = 0.45 @@ -253,6 +242,36 @@ func _create_chunk(x : int, z : int, pchunk : TerraChunk) -> TerraChunk: tj.add_jobs_step(s) + var pj : TerraPropJob = TerraPropJob.new() + + var prop_mesher = TerraMesherBlocky.new() + prop_mesher.base_light_value = 0.45 + prop_mesher.ao_strength = 0.2 + prop_mesher.uv_margin = Rect2(0.017, 0.017, 1 - 0.034, 1 - 0.034) + prop_mesher.voxel_scale = voxel_scale + prop_mesher.build_flags = build_flags + prop_mesher.texture_scale = 3 + + s.job_type = TerraMesherJobStep.TYPE_NORMAL + pj.add_jobs_step(s) + + s = TerraMesherJobStep.new() + s.job_type = TerraMesherJobStep.TYPE_MERGE_VERTS + pj.add_jobs_step(s) + + s = TerraMesherJobStep.new() + s.job_type = TerraMesherJobStep.TYPE_BAKE_TEXTURE + pj.add_jobs_step(s) + + s = TerraMesherJobStep.new() + s.job_type = TerraMesherJobStep.TYPE_SIMPLIFY_MESH + var fqms : FastQuadraticMeshSimplifier = FastQuadraticMeshSimplifier.new() + s.fqms = fqms + s.simplification_steps = 2 + pj.add_jobs_step(s) + + pj.set_prop_mesher(prop_mesher); + pchunk.job_add(lj) pchunk.job_add(tj) pchunk.job_add(pj)