From: Terri00 Date: Wed, 27 Mar 2019 15:40:51 +0000 (+0000) Subject: Basic AA (Supersampling x2) X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=a2600cc7989aed867187a915dc11fb239e319ab1;p=tar-legacy.git Basic AA (Supersampling x2) --- 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