diff --git a/PanoPainter.vcxproj b/PanoPainter.vcxproj index 077ce91..8fd034d 100644 --- a/PanoPainter.vcxproj +++ b/PanoPainter.vcxproj @@ -542,6 +542,8 @@ + + diff --git a/PanoPainter.vcxproj.filters b/PanoPainter.vcxproj.filters index df16511..0ec929c 100644 --- a/PanoPainter.vcxproj.filters +++ b/PanoPainter.vcxproj.filters @@ -685,6 +685,12 @@ shaders + + shaders + + + shaders + diff --git a/data/shaders/texture-colorize.glsl b/data/shaders/texture-colorize.glsl index 805c1cf..f90da22 100644 --- a/data/shaders/texture-colorize.glsl +++ b/data/shaders/texture-colorize.glsl @@ -15,7 +15,7 @@ void main() [[fragment]] uniform sampler2D tex; -uniform vec4 col; +uniform mediump vec4 col; in mediump vec2 uv; out mediump vec4 frag; diff --git a/src/main.cpp b/src/main.cpp index e314b2b..ab3b107 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -757,7 +757,7 @@ int main(int argc, char** argv) pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 32; - pfd.cDepthBits = 16; + pfd.cDepthBits = 24; pfd.iLayerType = PFD_MAIN_PLANE; hDC = GetDC(hWnd); diff --git a/src/node_panel_grid.cpp b/src/node_panel_grid.cpp index 68f52ac..25c9e5b 100644 --- a/src/node_panel_grid.cpp +++ b/src/node_panel_grid.cpp @@ -218,6 +218,7 @@ void NodePanelGrid::draw_heightmap(const glm::mat4& proj, const glm::mat4& camer { if (m_groud_opacity->get_value() > 0.f) { + bool depth = glIsEnabled(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST); glClear(GL_DEPTH_BUFFER_BIT); @@ -313,6 +314,7 @@ void NodePanelGrid::draw_heightmap(const glm::mat4& proj, const glm::mat4& camer m_plane.draw_fill(); } } + depth ? glEnable(GL_DEPTH_TEST) : glDisable(GL_DEPTH_TEST); } } diff --git a/src/rtt.cpp b/src/rtt.cpp index 9f4a8aa..e359f48 100644 --- a/src/rtt.cpp +++ b/src/rtt.cpp @@ -137,7 +137,7 @@ bool RTT::create(int width, int height, int tex/* = -1*/, GLint internal_format, { glGenRenderbuffers(1, &rboID); glBindRenderbuffer(GL_RENDERBUFFER, rboID); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height); glBindRenderbuffer(GL_RENDERBUFFER, 0); } @@ -151,9 +151,11 @@ bool RTT::create(int width, int height, int tex/* = -1*/, GLint internal_format, // Attach the texture to FBO color attachment point glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texID, 0); - - // Attach the renderbuffer to depth attachment point - //glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboID); + if (depth_buffer) + { + // Attach the renderbuffer to depth attachment point + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboID); + } auto err2str = [](GLenum err) { switch (err)