Basic AA (Supersampling x2)
authorTerri00 <thrustmediaproductions@gmail.com>
Wed, 27 Mar 2019 15:40:51 +0000 (15:40 +0000)
committerTerri00 <thrustmediaproductions@gmail.com>
Wed, 27 Mar 2019 15:40:51 +0000 (15:40 +0000)
MCDV/FrameBuffer.hpp
MCDV/MCDV.vcxproj
MCDV/MCDV.vcxproj.filters
MCDV/main.cpp
MCDV/mapinfo.fs [new file with mode: 0644]

index 46462e320b59e57ae688354dd3b0c764b47a61ce..4b74045a7484e6f7112f1ab0bfd95498b363b0dd 100644 (file)
@@ -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
index 831234240776d0db37ffc1f079c38edb1638a246..6dd754c5aabd3abc4cff4efbc19cede408c29737 100644 (file)
     <ClCompile Include="main2.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="mapinfo.fs" />
     <None Include="shaders\depth.fs" />
     <None Include="shaders\depth.vs" />
     <None Include="shaders\fullscreenbase.vs" />
index 68ba8cd6127834edd10f4927fdac9b3aaba7b14d..ccce1878658d80f8565d953b2543ba564815628e 100644 (file)
     <None Include="shaders\ss_comp_main.fs">
       <Filter>OpenGL\Shader Files</Filter>
     </None>
+    <None Include="mapinfo.fs">
+      <Filter>OpenGL\Shader Files</Filter>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Image Include="fonts\dina-r.png">
index 5db00dccf0aa102a6700b9bf43cd619e85e9f4cf..07ef936ec131c134a4610432e087265d4c8b62cb 100644 (file)
@@ -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 (file)
index 0000000..afd8ec9
--- /dev/null
@@ -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