From 2aad26154e22ebb7e24e2337c0faf3b23112c9e8 Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 14 Dec 2015 10:24:51 -0800 Subject: [PATCH] THis should fix the mirror and the skybox issue --- interface/src/Application.cpp | 5 +++-- interface/src/avatar/MyAvatar.cpp | 4 ++-- .../src/procedural/ProceduralSkybox.cpp | 3 --- .../src/procedural/ProceduralSkybox.slv | 15 ++++++++++----- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index fceee76c2c..a824010f00 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1373,8 +1373,9 @@ void Application::paintGL() { batch.setFramebuffer(finalFramebuffer); batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f)); - batch.blit(primaryFbo, srcRectLeft, finalFramebuffer, destRectLeft); - // batch.blit(primaryFbo, srcRectRight, finalFramebuffer, destRectRight); + // BLit left to right and right to left in stereo + batch.blit(primaryFbo, srcRectRight, finalFramebuffer, destRectLeft); + batch.blit(primaryFbo, srcRectLeft, finalFramebuffer, destRectRight); }); } else { gpu::doInBatch(renderArgs._context, [=](gpu::Batch& batch) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 5010b67af6..b3f6b4c238 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1402,10 +1402,10 @@ void MyAvatar::updateOrientation(float deltaTime) { glm::vec3 euler = glm::eulerAngles(localOrientation) * DEGREES_PER_RADIAN; //Invert yaw and roll when in mirror mode - /* if (qApp->getCamera()->getMode() == CAMERA_MODE_MIRROR) { + if (qApp->getCamera()->getMode() == CAMERA_MODE_MIRROR) { YAW(euler) *= -1.0f; ROLL(euler) *= -1.0f; - }*/ + } Head* head = getHead(); head->setBaseYaw(YAW(euler)); diff --git a/libraries/procedural/src/procedural/ProceduralSkybox.cpp b/libraries/procedural/src/procedural/ProceduralSkybox.cpp index 68645045b4..ce6f29c3d5 100644 --- a/libraries/procedural/src/procedural/ProceduralSkybox.cpp +++ b/libraries/procedural/src/procedural/ProceduralSkybox.cpp @@ -47,9 +47,6 @@ void ProceduralSkybox::render(gpu::Batch& batch, const ViewFrustum& viewFrustum, Skybox::render(batch, viewFrustum, skybox); } - static gpu::BufferPointer theBuffer; - static gpu::Stream::FormatPointer theFormat; - if (skybox._procedural && skybox._procedural->_enabled && skybox._procedural->ready()) { glm::mat4 projMat; viewFrustum.evalProjectionMatrix(projMat); diff --git a/libraries/procedural/src/procedural/ProceduralSkybox.slv b/libraries/procedural/src/procedural/ProceduralSkybox.slv index d1b9a20a66..810afb1033 100644 --- a/libraries/procedural/src/procedural/ProceduralSkybox.slv +++ b/libraries/procedural/src/procedural/ProceduralSkybox.slv @@ -11,21 +11,26 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // - -<@include gpu/Inputs.slh@> - <@include gpu/Transform.slh@> <$declareStandardTransform()$> out vec3 _normal; -void main(void) { +void main(void) { + const float depth = 0.0; + const vec4 UNIT_QUAD[4] = vec4[4]( + vec4(-1.0, -1.0, depth, 1.0), + vec4(1.0, -1.0, depth, 1.0), + vec4(-1.0, 1.0, depth, 1.0), + vec4(1.0, 1.0, depth, 1.0) + ); + vec4 inPosition = UNIT_QUAD[gl_VertexID]; + // standard transform TransformCamera cam = getTransformCamera(); vec3 clipDir = vec3(inPosition.xy, 0.0); vec3 eyeDir; - <$transformClipToEyeDir(cam, clipDir, eyeDir)$> <$transformEyeToWorldDir(cam, eyeDir, _normal)$>