From a2600cc7989aed867187a915dc11fb239e319ab1 Mon Sep 17 00:00:00 2001 From: Terri00 Date: Wed, 27 Mar 2019 15:40:51 +0000 Subject: [PATCH] Basic AA (Supersampling x2) --- MCDV/FrameBuffer.hpp | 4 ++-- MCDV/MCDV.vcxproj | 1 + MCDV/MCDV.vcxproj.filters | 3 +++ MCDV/main.cpp | 15 ++++++++++++--- MCDV/mapinfo.fs | 28 ++++++++++++++++++++++++++++ 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 MCDV/mapinfo.fs diff --git a/MCDV/FrameBuffer.hpp b/MCDV/FrameBuffer.hpp index 46462e3..4b74045 100644 --- a/MCDV/FrameBuffer.hpp +++ b/MCDV/FrameBuffer.hpp @@ -33,8 +33,8 @@ public: //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glBindTexture(GL_TEXTURE_2D, 0); // attach it to currently bound framebuffer object diff --git a/MCDV/MCDV.vcxproj b/MCDV/MCDV.vcxproj index 8312342..6dd754c 100644 --- a/MCDV/MCDV.vcxproj +++ b/MCDV/MCDV.vcxproj @@ -168,6 +168,7 @@ + diff --git a/MCDV/MCDV.vcxproj.filters b/MCDV/MCDV.vcxproj.filters index 68ba8cd..ccce187 100644 --- a/MCDV/MCDV.vcxproj.filters +++ b/MCDV/MCDV.vcxproj.filters @@ -201,6 +201,9 @@ OpenGL\Shader Files + + OpenGL\Shader Files + diff --git a/MCDV/main.cpp b/MCDV/main.cpp index 5db00dc..07ef936 100644 --- a/MCDV/main.cpp +++ b/MCDV/main.cpp @@ -246,8 +246,9 @@ int app(int argc, const char** argv) { FrameBuffer fb_tex_playspace = FrameBuffer(m_renderWidth, m_renderHeight); FrameBuffer fb_tex_objectives = FrameBuffer(m_renderWidth, m_renderHeight); - FrameBuffer fb_comp = FrameBuffer(m_renderWidth, m_renderHeight); - FrameBuffer fb_comp_1 = FrameBuffer(m_renderWidth, m_renderHeight); //Reverse ordered frame buffer + FrameBuffer fb_comp = FrameBuffer(m_renderWidth * 2, m_renderHeight * 2); + FrameBuffer fb_comp_1 = FrameBuffer(m_renderWidth * 2, m_renderHeight * 2); //Reverse ordered frame buffer + FrameBuffer fb_final = FrameBuffer(m_renderWidth, m_renderHeight); // Screenspace quad std::cout << "Creating screenspace mesh\n"; @@ -422,6 +423,8 @@ int app(int argc, const char** argv) { // ======================================================== REGULAR ORDER ======================================================== + glViewport(0, 0, m_renderWidth * 2, m_renderHeight * 2); + fb_comp.Bind(); //Bind framebuffer glClearColor(0.00f, 0.00f, 0.00f, 1.00f); @@ -532,6 +535,8 @@ int app(int argc, const char** argv) { // ========================================================== PRE-COMP =========================================================== + glViewport(0, 0, m_renderWidth, m_renderHeight); + // Apply diffusion fb_tex_playspace.Bind(); @@ -566,6 +571,8 @@ int app(int argc, const char** argv) { #pragma region render_objectives std::cout << "Rendering bombsites & buyzones space... "; + glViewport(0, 0, m_renderWidth * 2, m_renderHeight * 2); + fb_comp.Bind(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -593,6 +600,8 @@ int app(int argc, const char** argv) { } // Apply diffusion + glViewport(0, 0, m_renderWidth, m_renderHeight); + fb_tex_objectives.Bind(); glClearColor(0.00f, 0.00f, 0.00f, 0.00f); @@ -622,7 +631,7 @@ int app(int argc, const char** argv) { #pragma region compositing std::cout << "Compositing... \n"; - fb_comp.Bind(); + fb_final.Bind(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPolygonMode(GL_FRONT, GL_FILL); diff --git a/MCDV/mapinfo.fs b/MCDV/mapinfo.fs new file mode 100644 index 0000000..afd8ec9 --- /dev/null +++ b/MCDV/mapinfo.fs @@ -0,0 +1,28 @@ +#version 330 core + +out vec3 gPos; // Geo buffer (RGB16F) +out vec3 gNorm; // Normal buffer (RGB888) +out vec4 gInfo; // Info buffer (RGBA8888) + +uniform vec3 color; + +uniform float HEIGHT_MIN; +uniform float HEIGHT_MAX; +uniform float write_playable; +uniform float write_cover; + +in vec3 FragPos; +in float Depth; + +// Simple remap from-to range. +float remap(float value, float low1, float high1, float low2, float high2) +{ + return low2 + (value - low1) * (high2 - low2) / (high1 - low1); +} + +void main() +{ + float height = pow(remap(FragPos.y, HEIGHT_MIN, HEIGHT_MAX, 0, 1), 2.2); + + FragColor = vec4(write_playable, height, write_cover, 1); +} \ No newline at end of file -- 2.25.1