From 883dcbf16846d8820624f070c4062a061a20635c Mon Sep 17 00:00:00 2001 From: "@clasher113" Date: Thu, 16 Nov 2023 16:42:57 +0200 Subject: [PATCH] Advancec Frustum Culling & fixes --- .gitignore | 14 ++-- src/coders/png.cpp | 2 +- src/frontend/hud.cpp | 6 +- src/frontend/world_render.cpp | 63 +++++++----------- src/frontend/world_render.h | 3 +- src/maths/FrustumCulling.h | 113 ++++++++++++++++++++++++++++++++ src/objects/player_control.cpp | 2 +- src/voxels/Chunk.cpp | 18 +++++ src/voxels/Chunk.h | 3 + src/voxels/Chunks.cpp | 4 ++ src/voxels/Chunks.h | 1 + src/voxels/ChunksController.cpp | 2 + 12 files changed, 178 insertions(+), 53 deletions(-) create mode 100644 src/maths/FrustumCulling.h diff --git a/.gitignore b/.gitignore index a5c983ee..02ca8f1c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,18 +7,18 @@ Debug/voxel_engine /world /worlds/**/* +/settings.toml .vscode +/.vs +*.sln +*.vcxproj +*.filters +*.user .cache .settings .cproject .project .git -/Default/ -/.vs -/settings.toml -/VoxelEngine-Cpp.sln -/VoxelEngine-Cpp.vcxproj -/VoxelEngine-Cpp.vcxproj.filters -/VoxelEngine-Cpp.vcxproj.user +/Default/ \ No newline at end of file diff --git a/src/coders/png.cpp b/src/coders/png.cpp index b3d0de00..e4d7090b 100644 --- a/src/coders/png.cpp +++ b/src/coders/png.cpp @@ -275,7 +275,7 @@ ImageData* _png_load(const char* file){ return 0; } - char *clr_type_str; + const char *clr_type_str; if(ihdr.color_type == SPNG_COLOR_TYPE_GRAYSCALE) clr_type_str = "grayscale"; else if(ihdr.color_type == SPNG_COLOR_TYPE_TRUECOLOR) diff --git a/src/frontend/hud.cpp b/src/frontend/hud.cpp index 9d013398..5af2fadd 100644 --- a/src/frontend/hud.cpp +++ b/src/frontend/hud.cpp @@ -50,15 +50,15 @@ HudRenderer::HudRenderer(Engine* engine, Level* level) : level(level), assets(en uicamera->perspective = false; uicamera->flipped = true; - Panel* panel = new Panel(vec2(200, 200), vec4(5.0f), 1.0f); + Panel* panel = new Panel(vec2(250, 200), vec4(5.0f), 1.0f); panel->listenInterval(1.0f, [this]() { fpsString = std::to_wstring(fpsMax)+L" / "+std::to_wstring(fpsMin); fpsMin = fps; fpsMax = fps; }); panel->setCoord(vec2(10, 10)); - panel->add(shared_ptr