FastQuadraticMeshSimplifier should have been allocated for the voxel jobs.

This commit is contained in:
Relintai 2022-02-09 13:57:19 +01:00
parent 32b98c0b45
commit a67bc1eeba
4 changed files with 28 additions and 4 deletions

View File

@ -31,6 +31,10 @@ SOFTWARE.
#include "../jobs/voxel_prop_job.h"
#include "../jobs/voxel_terrain_job.h"
#ifdef MESH_UTILS_PRESENT
#include "../../../mesh_utils/fast_quadratic_mesh_simplifier.h"
#endif
Ref<VoxelChunk> VoxelWorldBlocky::_create_chunk(int x, int y, int z, Ref<VoxelChunk> chunk) {
if (!chunk.is_valid()) {
chunk = Ref<VoxelChunk>(memnew(VoxelChunkBlocky));
@ -62,6 +66,9 @@ Ref<VoxelChunk> VoxelWorldBlocky::_create_chunk(int x, int y, int z, Ref<VoxelCh
#ifdef MESH_UTILS_PRESENT
s.instance();
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
s->set_simplification_step_ratio(0.8);
s->set_simplification_agressiveness(7);
@ -91,7 +98,6 @@ Ref<VoxelChunk> VoxelWorldBlocky::_create_chunk(int x, int y, int z, Ref<VoxelCh
s.instance();
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
#ifdef MESH_UTILS_PRESENT
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_simplification_steps(2);

View File

@ -29,6 +29,10 @@ SOFTWARE.
#include "../jobs/voxel_prop_job.h"
#include "../jobs/voxel_terrain_job.h"
#ifdef MESH_UTILS_PRESENT
#include "../../../mesh_utils/fast_quadratic_mesh_simplifier.h"
#endif
Ref<VoxelChunk> VoxelWorldCubic::_create_chunk(int x, int y, int z, Ref<VoxelChunk> chunk) {
if (!chunk.is_valid()) {
chunk = Ref<VoxelChunk>(memnew(VoxelChunkCubic));
@ -60,6 +64,9 @@ Ref<VoxelChunk> VoxelWorldCubic::_create_chunk(int x, int y, int z, Ref<VoxelChu
#ifdef MESH_UTILS_PRESENT
s.instance();
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
s->set_simplification_step_ratio(0.8);
s->set_simplification_agressiveness(7);
@ -92,7 +99,6 @@ Ref<VoxelChunk> VoxelWorldCubic::_create_chunk(int x, int y, int z, Ref<VoxelChu
s.instance();
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
#ifdef MESH_UTILS_PRESENT
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_simplification_steps(2);

View File

@ -31,6 +31,10 @@ SOFTWARE.
#include "../jobs/voxel_prop_job.h"
#include "../jobs/voxel_terrain_job.h"
#ifdef MESH_UTILS_PRESENT
#include "../../../mesh_utils/fast_quadratic_mesh_simplifier.h"
#endif
_FORCE_INLINE_ int VoxelWorldDefault::get_build_flags() const {
return _build_flags;
}
@ -207,6 +211,9 @@ Ref<VoxelChunk> VoxelWorldDefault::_create_chunk(int x, int y, int z, Ref<VoxelC
#ifdef MESH_UTILS_PRESENT
s.instance();
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
s->set_simplification_step_ratio(0.8);
s->set_simplification_agressiveness(7);
@ -236,7 +243,6 @@ Ref<VoxelChunk> VoxelWorldDefault::_create_chunk(int x, int y, int z, Ref<VoxelC
s.instance();
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
#ifdef MESH_UTILS_PRESENT
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_simplification_steps(2);

View File

@ -29,6 +29,10 @@ SOFTWARE.
#include "../jobs/voxel_prop_job.h"
#include "../jobs/voxel_terrain_job.h"
#ifdef MESH_UTILS_PRESENT
#include "../../../mesh_utils/fast_quadratic_mesh_simplifier.h"
#endif
Ref<VoxelChunk> VoxelWorldMarchingCubes::_create_chunk(int x, int y, int z, Ref<VoxelChunk> chunk) {
if (!chunk.is_valid()) {
chunk = Ref<VoxelChunk>(memnew(VoxelChunkMarchingCubes));
@ -60,6 +64,9 @@ Ref<VoxelChunk> VoxelWorldMarchingCubes::_create_chunk(int x, int y, int z, Ref<
#ifdef MESH_UTILS_PRESENT
s.instance();
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
s->set_simplification_step_ratio(0.8);
s->set_simplification_agressiveness(7);
@ -93,7 +100,6 @@ Ref<VoxelChunk> VoxelWorldMarchingCubes::_create_chunk(int x, int y, int z, Ref<
s.instance();
s->set_job_type(VoxelMesherJobStep::TYPE_SIMPLIFY_MESH);
#ifdef MESH_UTILS_PRESENT
Ref<FastQuadraticMeshSimplifier> fqms;
fqms.instance();
s->set_fqms(fqms);
s->set_simplification_steps(2);