From 519e4cb9b199f6b1f2da7ab1dad7fa4cdbe4a356 Mon Sep 17 00:00:00 2001 From: redstrate <54911369+redstrate@users.noreply.github.com> Date: Mon, 17 Aug 2020 10:56:15 -0400 Subject: [PATCH] Fix scene probes rendering the sky incorrectly --- engine/renderer/src/scenecapture.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/engine/renderer/src/scenecapture.cpp b/engine/renderer/src/scenecapture.cpp index 72d91bb..7d1b736 100755 --- a/engine/renderer/src/scenecapture.cpp +++ b/engine/renderer/src/scenecapture.cpp @@ -53,6 +53,16 @@ const std::array sceneTransforms = { transform::look_at(Vector3(0), Vector3( 0.0, 0.0, -1.0), Vector3(0.0, -1.0, 0.0)) }; +// for some reason, our sky shader does not like the up/down transforms, so we reverse them here... +const std::array skyTransforms = { + transform::look_at(Vector3(0), Vector3(1.0, 0.0, 0.0), Vector3(0.0, -1.0, 0.0)), + transform::look_at(Vector3(0), Vector3(-1.0, 0.0, 0.0), Vector3(0.0, -1.0, 0.0)), + transform::look_at(Vector3(0), Vector3( 0.0, 1.0, 0.0), Vector3(0.0, 0.0, 1.0)), + transform::look_at(Vector3(0), Vector3( 0.0, -1.0, 0.0), Vector3(0.0, 0.0, -1.0)), + transform::look_at(Vector3(0), Vector3( 0.0, 0.0, 1.0), Vector3(0.0, -1.0, 0.0)), + transform::look_at(Vector3(0), Vector3( 0.0, 0.0, -1.0), Vector3(0.0, -1.0, 0.0)) +}; + inline AssetPtr cubeMesh; SceneCapture::SceneCapture(GFX* gfx) { @@ -283,7 +293,7 @@ void SceneCapture::render(GFXCommandBuffer* command_buffer, Scene* scene) { float aspect; } pc; - pc.view = sceneTransforms[face]; + pc.view = skyTransforms[face]; pc.view[3] = Vector4(0, 0, 0, 1); // zero out translation pc.aspect = 1.0f;