From cae44985a8df86273ca945b3f0796d0079fad019 Mon Sep 17 00:00:00 2001 From: Marc Gilleron Date: Sat, 25 May 2019 14:34:09 +0100 Subject: [PATCH] Comments --- meshers/transvoxel/voxel_mesher_transvoxel.cpp | 3 +++ providers/voxel_provider.h | 1 + providers/voxel_provider_image.cpp | 1 + terrain/voxel_block.cpp | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/meshers/transvoxel/voxel_mesher_transvoxel.cpp b/meshers/transvoxel/voxel_mesher_transvoxel.cpp index 0246d82b..fd60e548 100644 --- a/meshers/transvoxel/voxel_mesher_transvoxel.cpp +++ b/meshers/transvoxel/voxel_mesher_transvoxel.cpp @@ -3,6 +3,9 @@ #include "transvoxel_tables.cpp" #include +// This is a very partial implementation, it is barely equivalent to marching cubes. +// It doesn't include transition cells. + namespace { inline float tof(int8_t v) { diff --git a/providers/voxel_provider.h b/providers/voxel_provider.h index 9951b0e4..ec285290 100644 --- a/providers/voxel_provider.h +++ b/providers/voxel_provider.h @@ -4,6 +4,7 @@ #include "../voxel_buffer.h" #include +// TODO Rename VoxelStream // Provides access to a source of paged voxel data. // Must be implemented in a multi-thread-safe way. class VoxelProvider : public Resource { diff --git a/providers/voxel_provider_image.cpp b/providers/voxel_provider_image.cpp index d81aee10..69669305 100644 --- a/providers/voxel_provider_image.cpp +++ b/providers/voxel_provider_image.cpp @@ -107,5 +107,6 @@ void VoxelProviderImage::_bind_methods() { ClassDB::bind_method(D_METHOD("get_channel"), &VoxelProviderImage::get_channel); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "image", PROPERTY_HINT_RESOURCE_TYPE, "Image"), "set_image", "get_image"); + // TODO Enum hint ADD_PROPERTY(PropertyInfo(Variant::INT, "channel"), "set_channel", "get_channel"); } diff --git a/terrain/voxel_block.cpp b/terrain/voxel_block.cpp index 0e09583f..235a0e5f 100644 --- a/terrain/voxel_block.cpp +++ b/terrain/voxel_block.cpp @@ -29,6 +29,10 @@ VoxelBlock::~VoxelBlock() { } void VoxelBlock::set_mesh(Ref mesh, Ref world) { + // TODO Don't add mesh instance to the world if it's not visible. + // I suspect Godot is trying to include invisible mesh instances into the culling process, + // which is killing performance when LOD is used (i.e many meshes are in pool but hidden) + // This needs investigation. VisualServer &vs = *VisualServer::get_singleton();