From f954e4d7ea4f65a8847261cb57918f8b51123ee8 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 11 Sep 2014 19:06:29 -0700 Subject: [PATCH] Fix for deferred lighting on voxels. --- interface/resources/shaders/voxel.vert | 2 +- interface/src/renderer/DeferredLightingEffect.cpp | 2 +- interface/src/voxels/VoxelSystem.cpp | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/interface/resources/shaders/voxel.vert b/interface/resources/shaders/voxel.vert index c41b1c1477..3cd06eb000 100644 --- a/interface/resources/shaders/voxel.vert +++ b/interface/resources/shaders/voxel.vert @@ -22,5 +22,5 @@ void main(void) { gl_Position = ftransform(); // store the color directly - gl_FrontColor = gl_Color; + gl_FrontColor = vec4(gl_Color.rgb, 0.0); } diff --git a/interface/src/renderer/DeferredLightingEffect.cpp b/interface/src/renderer/DeferredLightingEffect.cpp index 0e0e4c4615..6c91f1bf05 100644 --- a/interface/src/renderer/DeferredLightingEffect.cpp +++ b/interface/src/renderer/DeferredLightingEffect.cpp @@ -67,7 +67,7 @@ void DeferredLightingEffect::render() { const int VIEWPORT_WIDTH_INDEX = 2; float sMin = viewport[VIEWPORT_X_INDEX] / (float)primaryFBO->width(); float sWidth = viewport[VIEWPORT_WIDTH_INDEX] / (float)primaryFBO->width(); - + if (Menu::getInstance()->getShadowsEnabled()) { glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, Application::getInstance()->getTextureCache()->getPrimaryDepthTextureID()); diff --git a/interface/src/voxels/VoxelSystem.cpp b/interface/src/voxels/VoxelSystem.cpp index 0a05d66d13..8d16245962 100644 --- a/interface/src/voxels/VoxelSystem.cpp +++ b/interface/src/voxels/VoxelSystem.cpp @@ -1392,8 +1392,11 @@ void VoxelSystem::render() { applyScaleAndBindProgram(texture); - // for performance, enable backface culling + // for performance, enable backface culling and disable blending glEnable(GL_CULL_FACE); + glDisable(GL_BLEND); + + glColor4f(1.0f, 1.0f, 1.0f, 1.0f); } // draw voxels in 6 passes @@ -1435,6 +1438,7 @@ void VoxelSystem::render() { PerformanceWarning warn(showWarnings, "render().. cleanup after glDrawRangeElementsEXT()..."); glDisable(GL_CULL_FACE); + glEnable(GL_BLEND); removeScaleAndReleaseProgram(texture);