From 0ce26f2a49fd6d64a690b84b1932126edfbfbee6 Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 11 Jul 2023 04:52:24 +0200 Subject: Add simple scrolling non-tiling 2D clouds --- src/main.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 3d193c2..1688dac 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,6 +10,7 @@ #include "GFX/Shading/Program.hpp" #include "GFX/Texture.hpp" #include "GFX/Image/PPMParser.hpp" +#include "World/Clouds.hpp" #include "World/World.hpp" #define APP_NAME "Meowcraft" @@ -80,6 +81,8 @@ void run() { Vector<3, F32> sky_color{0.85, 0.85, 0.85}; // #DBDBDB sky_color_uniform.set(sky_color); + MC::World::Clouds clouds{ASPECT, FOV, 0.1f, 1000.0f, sky_color}; + glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); @@ -100,27 +103,32 @@ void run() { #endif process_input(window, camera); + clouds.update(time); + + glClearColor(sky_color.x(), sky_color.y(), sky_color.z(), 1.0f); // #DBDBDB + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); program.bind(); auto view = Math::MVP::view(camera.position(), camera.angles()); view_uniform.set(view); - glClearColor(sky_color.x(), sky_color.y(), sky_color.z(), 1.0f); // #DBDBDB - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - for (auto chunk : world.get_visible_chunks(camera.position())) { mesh_alpha_uniform.set(1.0); - auto land_model = Math::MVP::model(chunk->chunk.value().position(), {}); + auto land_model = Math::MVP::model(chunk->chunk.value().position(), Vector<3>::one(), {}); model_uniform.set(land_model); render(chunk->land_mesh.value(), texture); mesh_alpha_uniform.set(0.4); - auto water_model = Math::MVP::model(chunk->chunk.value().position() - Vector<3>{0, 0.2, 0}, {}); + auto water_model = Math::MVP::model(chunk->chunk.value().position() - Vector<3>{0, 0.2, 0}, Vector<3>::one(), {}); model_uniform.set(water_model); render(chunk->water_mesh.value(), texture); } + program.unbind(); + + clouds.render(camera); + time++; } } -- cgit 1.4.1