From 74eb7dd2497ded6950f0ba86d46688cf8f585d32 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 11 Jan 2022 11:35:50 +0000 Subject: [PATCH 1/5] Fixed the depthClmapOp values to work with the reverse depth. --- data/models/lz.vsgt | 6 +++--- data/models/raytracing_scene.vsgt | 4 ++-- data/models/teapot.vsgt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/data/models/lz.vsgt b/data/models/lz.vsgt index 4b09dabc..0a33c25e 100644 --- a/data/models/lz.vsgt +++ b/data/models/lz.vsgt @@ -526,7 +526,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 front.failOp 0 @@ -14025,7 +14025,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 front.failOp 0 @@ -36428,7 +36428,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 front.failOp 0 diff --git a/data/models/raytracing_scene.vsgt b/data/models/raytracing_scene.vsgt index 90d3805e..b03b049f 100644 --- a/data/models/raytracing_scene.vsgt +++ b/data/models/raytracing_scene.vsgt @@ -7660,7 +7660,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 } @@ -8488,7 +8488,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 } diff --git a/data/models/teapot.vsgt b/data/models/teapot.vsgt index 8b0bc0c1..80a5dac7 100644 --- a/data/models/teapot.vsgt +++ b/data/models/teapot.vsgt @@ -5765,7 +5765,7 @@ void main() NumUserObjects 0 depthTestEnable 1 depthWriteEnable 1 - depthCompareOp 1 + depthCompareOp 4 depthBoundsTestEnable 0 stencilTestEnable 0 } From 5d9b26af4bb2906ed0d15b7ecdfedbc8fdf26551 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 11 Jan 2022 12:33:32 +0000 Subject: [PATCH 2/5] Fixes to handle the reverse deoth changes to the default vsg::perspective(..) calls in the core VulkanSceneGraph. --- examples/state/vsgstateswitch/vsgstateswitch.cpp | 2 +- examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp | 2 +- examples/viewer/vsgheadless/vsgheadless.cpp | 2 +- examples/viewer/vsgmultiviews/vsgmultiviews.cpp | 2 +- examples/viewer/vsgoverlay/vsgoverlay.cpp | 2 +- examples/viewer/vsgrendertotexture/vsgrendertotexture.cpp | 2 +- examples/viewer/vsgscreenshot/vsgscreenshot.cpp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/state/vsgstateswitch/vsgstateswitch.cpp b/examples/state/vsgstateswitch/vsgstateswitch.cpp index 5f38282a..64e631b2 100644 --- a/examples/state/vsgstateswitch/vsgstateswitch.cpp +++ b/examples/state/vsgstateswitch/vsgstateswitch.cpp @@ -214,7 +214,7 @@ int main(int argc, char** argv) VkClearAttachment color_attachment{VK_IMAGE_ASPECT_COLOR_BIT, 0, colorClearValue}; VkClearValue depthClearValue{}; - depthClearValue.depthStencil = {1.0f, 0}; + depthClearValue.depthStencil = {0.0f, 0}; VkClearAttachment depth_attachment{VK_IMAGE_ASPECT_DEPTH_BIT, 1, depthClearValue}; VkClearRect rect{secondary_camera->getRenderArea(), 0, 1}; diff --git a/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp b/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp index 038442eb..4be95e27 100644 --- a/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp +++ b/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp @@ -340,7 +340,7 @@ int main(int argc, char** argv) // clear the depth buffer before view2 gets rendered VkClearValue clearValue{}; - clearValue.depthStencil = {1.0f, 0}; + clearValue.depthStencil = {0.0f, 0}; VkClearAttachment depth_attachment{VK_IMAGE_ASPECT_DEPTH_BIT, 1, clearValue}; VkClearRect rect{right_camera->getRenderArea(), 0, 1}; auto clearAttachments = vsg::ClearAttachments::create(vsg::ClearAttachments::Attachments{depth_attachment}, vsg::ClearAttachments::Rects{rect}); diff --git a/examples/viewer/vsgheadless/vsgheadless.cpp b/examples/viewer/vsgheadless/vsgheadless.cpp index 025c9047..62afac8e 100644 --- a/examples/viewer/vsgheadless/vsgheadless.cpp +++ b/examples/viewer/vsgheadless/vsgheadless.cpp @@ -471,7 +471,7 @@ int main(int argc, char** argv) renderGraph->renderArea.extent = extent; renderGraph->clearValues.resize(2); renderGraph->clearValues[0].color = {{0.2f, 0.2f, 0.4f, 1.0f}}; - renderGraph->clearValues[1].depthStencil = VkClearDepthStencilValue{1.0f, 0}; + renderGraph->clearValues[1].depthStencil = VkClearDepthStencilValue{0.0f, 0}; renderGraph->addChild(vsg::View::create(camera, vsg_scene)); diff --git a/examples/viewer/vsgmultiviews/vsgmultiviews.cpp b/examples/viewer/vsgmultiviews/vsgmultiviews.cpp index 81ad014b..1ec81423 100644 --- a/examples/viewer/vsgmultiviews/vsgmultiviews.cpp +++ b/examples/viewer/vsgmultiviews/vsgmultiviews.cpp @@ -128,7 +128,7 @@ int main(int argc, char** argv) VkClearAttachment color_attachment{VK_IMAGE_ASPECT_COLOR_BIT, 0, colorClearValue}; VkClearValue depthClearValue{}; - depthClearValue.depthStencil = {1.0f, 0}; + depthClearValue.depthStencil = {0.0f, 0}; VkClearAttachment depth_attachment{VK_IMAGE_ASPECT_DEPTH_BIT, 1, depthClearValue}; VkClearRect rect{secondary_camera->getRenderArea(), 0, 1}; diff --git a/examples/viewer/vsgoverlay/vsgoverlay.cpp b/examples/viewer/vsgoverlay/vsgoverlay.cpp index 5a99181e..aca95252 100644 --- a/examples/viewer/vsgoverlay/vsgoverlay.cpp +++ b/examples/viewer/vsgoverlay/vsgoverlay.cpp @@ -96,7 +96,7 @@ int main(int argc, char** argv) // clear the depth buffer before view2 gets rendered VkClearValue clearValue{}; - clearValue.depthStencil = {1.0f, 0}; + clearValue.depthStencil = {0.0f, 0}; VkClearAttachment attachment{VK_IMAGE_ASPECT_DEPTH_BIT, 1, clearValue}; VkClearRect rect{VkRect2D{VkOffset2D{0, 0}, VkExtent2D{width, height}}, 0, 1}; auto clearAttachments = vsg::ClearAttachments::create(vsg::ClearAttachments::Attachments{attachment}, vsg::ClearAttachments::Rects{rect}); diff --git a/examples/viewer/vsgrendertotexture/vsgrendertotexture.cpp b/examples/viewer/vsgrendertotexture/vsgrendertotexture.cpp index ede0bd92..f414c8d6 100644 --- a/examples/viewer/vsgrendertotexture/vsgrendertotexture.cpp +++ b/examples/viewer/vsgrendertotexture/vsgrendertotexture.cpp @@ -163,7 +163,7 @@ vsg::ref_ptr createOffscreenRendergraph(vsg::Context& context, rendergraph->clearValues.resize(2); rendergraph->clearValues[0].color = {{0.4f, 0.2f, 0.4f, 1.0f}}; - rendergraph->clearValues[1].depthStencil = VkClearDepthStencilValue{1.0f, 0}; + rendergraph->clearValues[1].depthStencil = VkClearDepthStencilValue{0.0f, 0}; return rendergraph; } diff --git a/examples/viewer/vsgscreenshot/vsgscreenshot.cpp b/examples/viewer/vsgscreenshot/vsgscreenshot.cpp index cf1d2d2a..ac17b55d 100644 --- a/examples/viewer/vsgscreenshot/vsgscreenshot.cpp +++ b/examples/viewer/vsgscreenshot/vsgscreenshot.cpp @@ -431,7 +431,7 @@ class ScreenshotHandler : public vsg::Inherit size_t num_unset_depth = 0; for (auto& value : *imageData) { - if (value == 1.0f) + if (value == 0.0f) ++num_unset_depth; else ++num_set_depth; From c9a6f0c2f66ccd81b1627169dfbde9c83d931dfb Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 11 Jan 2022 12:44:27 +0000 Subject: [PATCH 3/5] Added requirement of building against VulkanSceneGraph-0.2.4 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7000b7ad..8e838cdf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ if (VULKAN_SDK) set(ENV{VULKAN_SDK} ${VULKAN_SDK}) endif() -find_package(vsg 0.2.2 REQUIRED) +find_package(vsg 0.2.4 REQUIRED) # find the optional vsgExamples that can be used for reading and range of image and 3d model formats and shader compilation find_package(vsgXchange QUIET) From e6f05e6bff13b63ee7b04b43cb0c2d632ba4900b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 11 Jan 2022 15:20:50 +0000 Subject: [PATCH 4/5] Changed ordering of parameters to build against VSG changes --- .../viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp | 8 ++++---- examples/viewer/vsgmultigpu/vsgmultigpu.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp b/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp index 4be95e27..d142fa2c 100644 --- a/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp +++ b/examples/viewer/vsganaglyphicstereo/vsganaglyphicstereo.cpp @@ -317,13 +317,13 @@ int main(int argc, char** argv) double shear = (eyeSeperation / screenWidth) * 0.8; // quick hack to get convergence roughly coincident with the trackball center. // create the left eye camera - auto left_relative_perspective = vsg::RelativeProjection::create(perspective, vsg::translate(-shear, 0.0, 0.0)); - auto left_relative_view = vsg::RelativeViewMatrix::create(lookAt, vsg::translate(-0.5 * eyeSeperation, 0.0, 0.0)); + auto left_relative_perspective = vsg::RelativeProjection::create(vsg::translate(-shear, 0.0, 0.0), perspective); + auto left_relative_view = vsg::RelativeViewMatrix::create(vsg::translate(-0.5 * eyeSeperation, 0.0, 0.0), lookAt); auto left_camera = vsg::Camera::create(left_relative_perspective, left_relative_view, vsg::ViewportState::create(window->extent2D())); // create the left eye camera - auto right_relative_perspective = vsg::RelativeProjection::create(perspective, vsg::translate(shear, 0.0, 0.0)); - auto right_relative_view = vsg::RelativeViewMatrix::create(lookAt, vsg::translate(0.5 * eyeSeperation, 0.0, 0.0)); + auto right_relative_perspective = vsg::RelativeProjection::create(vsg::translate(shear, 0.0, 0.0), perspective); + auto right_relative_view = vsg::RelativeViewMatrix::create(vsg::translate(0.5 * eyeSeperation, 0.0, 0.0), lookAt); auto right_camera = vsg::Camera::create(right_relative_perspective, right_relative_view, vsg::ViewportState::create(window->extent2D())); // add close handler to respond the close window button and pressing escape diff --git a/examples/viewer/vsgmultigpu/vsgmultigpu.cpp b/examples/viewer/vsgmultigpu/vsgmultigpu.cpp index c35f875d..5bb1a850 100644 --- a/examples/viewer/vsgmultigpu/vsgmultigpu.cpp +++ b/examples/viewer/vsgmultigpu/vsgmultigpu.cpp @@ -277,7 +277,7 @@ int main(int argc, char** argv) if (powerWall) { // assume a power wall layout - auto relative_perspective = vsg::RelativeProjection::create(perspective, vsg::translate(double(numScreens - 1) - 2.0 * double(i), 0.0, 0.0)); + auto relative_perspective = vsg::RelativeProjection::create(vsg::translate(double(numScreens - 1) - 2.0 * double(i), 0.0, 0.0), perspective); camera = vsg::Camera::create(relative_perspective, lookAt, vsg::ViewportState::create(window->extent2D())); } else @@ -286,7 +286,7 @@ int main(int argc, char** argv) double fovY = 30.0; double fovX = atan(tan(vsg::radians(fovY) * 0.5) * aspectRatio) * 2.0; double angle = fovX * (double(i) - double(numScreens - 1) / 2.0); - auto relative_view = vsg::RelativeViewMatrix::create(lookAt, vsg::rotate(angle, 0.0, 1.0, 0.0)); + auto relative_view = vsg::RelativeViewMatrix::create(vsg::rotate(angle, 0.0, 1.0, 0.0), lookAt); camera = vsg::Camera::create(perspective, relative_view, vsg::ViewportState::create(window->extent2D())); } From 8553aebdc28e3946fa2855368dc6121841aaf514 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 12 Jan 2022 11:33:30 +0000 Subject: [PATCH 5/5] Improved window titles --- examples/viewer/vsgcameras/vsgcameras.cpp | 2 +- examples/viewer/vsgortho/vsgortho.cpp | 2 +- examples/viewer/vsgsubpass/vsgsubpass.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/viewer/vsgcameras/vsgcameras.cpp b/examples/viewer/vsgcameras/vsgcameras.cpp index c85d6319..eec9a902 100644 --- a/examples/viewer/vsgcameras/vsgcameras.cpp +++ b/examples/viewer/vsgcameras/vsgcameras.cpp @@ -75,7 +75,7 @@ int main(int argc, char** argv) vsg::CommandLine arguments(&argc, argv); auto windowTraits = vsg::WindowTraits::create(); - windowTraits->windowTitle = "Multiple Views"; + windowTraits->windowTitle = "vsgcamera - Multiple Views with different ways of configurating/tracking Cameras"; windowTraits->debugLayer = arguments.read({"--debug", "-d"}); windowTraits->apiDumpLayer = arguments.read({"--api", "-a"}); if (arguments.read({"--window", "-w"}, windowTraits->width, windowTraits->height)) { windowTraits->fullscreen = false; } diff --git a/examples/viewer/vsgortho/vsgortho.cpp b/examples/viewer/vsgortho/vsgortho.cpp index 33ff9f61..704c5bcc 100644 --- a/examples/viewer/vsgortho/vsgortho.cpp +++ b/examples/viewer/vsgortho/vsgortho.cpp @@ -9,7 +9,7 @@ int main(int argc, char** argv) { // set up defaults and read command line arguments to override them auto windowTraits = vsg::WindowTraits::create(); - windowTraits->windowTitle = "vsgviewer"; + windowTraits->windowTitle = "vsgorth - Orthographics Projection Matrix"; // set up defaults and read command line arguments to override them vsg::CommandLine arguments(&argc, argv); diff --git a/examples/viewer/vsgsubpass/vsgsubpass.cpp b/examples/viewer/vsgsubpass/vsgsubpass.cpp index ce7398ec..746b83b4 100644 --- a/examples/viewer/vsgsubpass/vsgsubpass.cpp +++ b/examples/viewer/vsgsubpass/vsgsubpass.cpp @@ -290,6 +290,7 @@ int main(int argc, char** argv) auto viewer = vsg::Viewer::create(); auto traits = vsg::WindowTraits::create(); + traits->windowTitle = "vsgsubpass - RenderPass setup + Subpass handling"; traits->width = width; traits->height = height; //traits->shareWindow = shareWindow;