From e41b8f06e15562b8f07722ac8d43a2ee7abdf390 Mon Sep 17 00:00:00 2001 From: sam gateau Date: Tue, 25 Sep 2018 13:57:50 -0700 Subject: [PATCH] Cleaning up the pipeline and checking that it is working for all cases --- interface/src/Application.cpp | 2 +- libraries/render-utils/src/model.slv | 3 +- .../render-utils/src/model_normal_map.slv | 1 - libraries/render-utils/src/model_shadow.slv | 5 +++ .../render-utils/src/model_shadow_fade.slv | 28 ------------- .../src/render-utils/skin_model.slp | 1 + .../src/render-utils/skin_model_dq.slp | 1 + .../render-utils/skin_model_normal_map.slp | 1 + .../render-utils/skin_model_normal_map_dq.slp | 1 + .../src/render-utils/skin_model_shadow.slp | 1 + .../src/render-utils/skin_model_shadow_dq.slp | 1 + libraries/render-utils/src/skin_model.slv | 2 +- .../render-utils/src/skin_model_shadow.slv | 3 ++ .../render-utils/src/skin_model_shadow_dq.slv | 3 ++ .../src/skin_model_shadow_fade.slv | 39 ------------------- .../src/skin_model_shadow_fade_dq.slv | 39 ------------------- libraries/render/src/render/DrawTask.cpp | 8 +++- 17 files changed, 28 insertions(+), 111 deletions(-) delete mode 100644 libraries/render-utils/src/model_shadow_fade.slv delete mode 100644 libraries/render-utils/src/skin_model_shadow_fade.slv delete mode 100644 libraries/render-utils/src/skin_model_shadow_fade_dq.slv diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 46cebc1661..a90be233d3 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -315,7 +315,7 @@ static QTimer pingTimer; static bool DISABLE_WATCHDOG = true; #else static const QString DISABLE_WATCHDOG_FLAG{ "HIFI_DISABLE_WATCHDOG" }; -static bool DISABLE_WATCHDOG = nsightActive() || QProcessEnvironment::systemEnvironment().contains(DISABLE_WATCHDOG_FLAG); +static bool DISABLE_WATCHDOG = true || nsightActive() || QProcessEnvironment::systemEnvironment().contains(DISABLE_WATCHDOG_FLAG); #endif #if defined(USE_GLES) diff --git a/libraries/render-utils/src/model.slv b/libraries/render-utils/src/model.slv index bc5371df34..f3d315c7a4 100644 --- a/libraries/render-utils/src/model.slv +++ b/libraries/render-utils/src/model.slv @@ -14,12 +14,13 @@ <@include gpu/Color.slh@> <@include gpu/Transform.slh@> <@include graphics/MaterialTextures.slh@> -<@include render-utils/ShaderConstants.h@> <$declareStandardTransform()$> <$declareMaterialTexMapArrayBuffer()$> +<@include render-utils/ShaderConstants.h@> + layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES; layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01; diff --git a/libraries/render-utils/src/model_normal_map.slv b/libraries/render-utils/src/model_normal_map.slv index 90d28acc90..e85b5521a9 100644 --- a/libraries/render-utils/src/model_normal_map.slv +++ b/libraries/render-utils/src/model_normal_map.slv @@ -20,7 +20,6 @@ <$declareMaterialTexMapArrayBuffer()$> - layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES; layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01; layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS; diff --git a/libraries/render-utils/src/model_shadow.slv b/libraries/render-utils/src/model_shadow.slv index 0e6f05f09f..8de77d7b1d 100644 --- a/libraries/render-utils/src/model_shadow.slv +++ b/libraries/render-utils/src/model_shadow.slv @@ -16,9 +16,14 @@ <$declareStandardTransform()$> +<@include render-utils/ShaderConstants.h@> + +layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; + void main(void) { // standard transform TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> + <$transformModelToWorldPos(obj, inPosition, _positionWS)$> } diff --git a/libraries/render-utils/src/model_shadow_fade.slv b/libraries/render-utils/src/model_shadow_fade.slv deleted file mode 100644 index 70ffe855fb..0000000000 --- a/libraries/render-utils/src/model_shadow_fade.slv +++ /dev/null @@ -1,28 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// <$_SCRIBE_FILENAME$> -// Generated on <$_SCRIBE_DATE$> -// -// Created by Olivier Prat on 06/05/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include gpu/Inputs.slh@> -<@include gpu/Transform.slh@> -<@include render-utils/ShaderConstants.h@> - -<$declareStandardTransform()$> - - -layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; - -void main(void) { - // standard transform - TransformCamera cam = getTransformCamera(); - TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, inPosition, gl_Position)$> - <$transformModelToWorldPos(obj, inPosition, _positionWS)$> -} diff --git a/libraries/render-utils/src/render-utils/skin_model.slp b/libraries/render-utils/src/render-utils/skin_model.slp index d6466a6aa4..0d9b419365 100644 --- a/libraries/render-utils/src/render-utils/skin_model.slp +++ b/libraries/render-utils/src/render-utils/skin_model.slp @@ -1 +1,2 @@ +VERTEX skin_model FRAGMENT model diff --git a/libraries/render-utils/src/render-utils/skin_model_dq.slp b/libraries/render-utils/src/render-utils/skin_model_dq.slp index d6466a6aa4..c90dc802c3 100644 --- a/libraries/render-utils/src/render-utils/skin_model_dq.slp +++ b/libraries/render-utils/src/render-utils/skin_model_dq.slp @@ -1 +1,2 @@ +VERTEX skin_model_dq FRAGMENT model diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map.slp index c9d4016041..88c5986f06 100644 --- a/libraries/render-utils/src/render-utils/skin_model_normal_map.slp +++ b/libraries/render-utils/src/render-utils/skin_model_normal_map.slp @@ -1 +1,2 @@ +VERTEX skin_model_normal_map FRAGMENT model_normal_map diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp index c9d4016041..e443eaf431 100644 --- a/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp +++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp @@ -1 +1,2 @@ +VERTEX skin_model_normal_map_dq FRAGMENT model_normal_map diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow.slp b/libraries/render-utils/src/render-utils/skin_model_shadow.slp index f356a5638d..bb15fd1ef5 100644 --- a/libraries/render-utils/src/render-utils/skin_model_shadow.slp +++ b/libraries/render-utils/src/render-utils/skin_model_shadow.slp @@ -1 +1,2 @@ +VERTEX skin_model_shadow FRAGMENT model_shadow diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp b/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp index f356a5638d..6f930a2593 100644 --- a/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp +++ b/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp @@ -1 +1,2 @@ +VERTEX skin_model_shadow_dq FRAGMENT model_shadow diff --git a/libraries/render-utils/src/skin_model.slv b/libraries/render-utils/src/skin_model.slv index 5853ca47fc..039ad0a7d9 100644 --- a/libraries/render-utils/src/skin_model.slv +++ b/libraries/render-utils/src/skin_model.slv @@ -19,7 +19,7 @@ <$declareMaterialTexMapArrayBuffer()$> <@include MeshDeformer.slh@> -<$declareMeshDeformer(1, _SCRIBE_NULL, 1, 0, 1)$> +<$declareMeshDeformer(1, _SCRIBE_NULL, 1, _SCRIBE_NULL, 1)$> <$declareMeshDeformerActivation(1, 1)$> <@include LightingModel.slh@> diff --git a/libraries/render-utils/src/skin_model_shadow.slv b/libraries/render-utils/src/skin_model_shadow.slv index 08f474a94d..cc6fb42f98 100644 --- a/libraries/render-utils/src/skin_model_shadow.slv +++ b/libraries/render-utils/src/skin_model_shadow.slv @@ -20,6 +20,8 @@ <@include render-utils/ShaderConstants.h@> +layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; + void main(void) { vec4 deformedPosition = vec4(0.0, 0.0, 0.0, 0.0); evalMeshDeformer(inPosition, deformedPosition, @@ -30,5 +32,6 @@ void main(void) { TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); <$transformModelToClipPos(cam, obj, deformedPosition, gl_Position)$> + <$transformModelToWorldPos(obj, deformedPosition, _positionWS)$> } diff --git a/libraries/render-utils/src/skin_model_shadow_dq.slv b/libraries/render-utils/src/skin_model_shadow_dq.slv index e19f412bdc..84b5dfb33b 100644 --- a/libraries/render-utils/src/skin_model_shadow_dq.slv +++ b/libraries/render-utils/src/skin_model_shadow_dq.slv @@ -20,6 +20,8 @@ <@include render-utils/ShaderConstants.h@> +layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; + void main(void) { vec4 deformedPosition = vec4(0.0, 0.0, 0.0, 0.0); evalMeshDeformer(inPosition, deformedPosition, @@ -30,4 +32,5 @@ void main(void) { TransformCamera cam = getTransformCamera(); TransformObject obj = getTransformObject(); <$transformModelToClipPos(cam, obj, deformedPosition, gl_Position)$> + <$transformModelToWorldPos(obj, deformedPosition, _positionWS)$> } diff --git a/libraries/render-utils/src/skin_model_shadow_fade.slv b/libraries/render-utils/src/skin_model_shadow_fade.slv deleted file mode 100644 index 541b58ccb9..0000000000 --- a/libraries/render-utils/src/skin_model_shadow_fade.slv +++ /dev/null @@ -1,39 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// <$_SCRIBE_FILENAME$> -// Generated on <$_SCRIBE_DATE$> -// -// Created by Hifi Engine Team. -// Created by Olivier Prat on 06/045/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include gpu/Inputs.slh@> -<@include gpu/Transform.slh@> -<@include render-utils/ShaderConstants.h@> - -<$declareStandardTransform()$> - -<@include MeshDeformer.slh@> -<$declareMeshDeformer(_SCRIBE_NULL, _SCRIBE_NULL, 1, _SCRIBE_NULL, 1)$> -<$declareMeshDeformerActivation(1, 1)$> - -<@include render-utils/ShaderConstants.h@> - -layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; - -void main(void) { - vec4 deformedPosition = vec4(0.0, 0.0, 0.0, 0.0); - evalMeshDeformer(inPosition, deformedPosition, - meshDeformer_doSkinning(_drawCallInfo.y), inSkinClusterIndex, inSkinClusterWeight, - meshDeformer_doBlendshape(_drawCallInfo.y), gl_VertexID); - - // standard transform - TransformCamera cam = getTransformCamera(); - TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, deformedPosition, gl_Position)$> - <$transformModelToWorldPos(obj, deformedPosition, _positionWS)$> -} diff --git a/libraries/render-utils/src/skin_model_shadow_fade_dq.slv b/libraries/render-utils/src/skin_model_shadow_fade_dq.slv deleted file mode 100644 index c5dd46daae..0000000000 --- a/libraries/render-utils/src/skin_model_shadow_fade_dq.slv +++ /dev/null @@ -1,39 +0,0 @@ -<@include gpu/Config.slh@> -<$VERSION_HEADER$> -// <$_SCRIBE_FILENAME$> -// Generated on <$_SCRIBE_DATE$> -// -// Created by Hifi Engine Team. -// Created by Olivier Prat on 06/045/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -<@include gpu/Inputs.slh@> -<@include gpu/Transform.slh@> -<@include render-utils/ShaderConstants.h@> - -<$declareStandardTransform()$> - -<@include MeshDeformer.slh@> -<$declareMeshDeformer(_SCRIBE_NULL, _SCRIBE_NULL, 1, 1, 1)$> -<$declareMeshDeformerActivation(1, 1)$> - -<@include render-utils/ShaderConstants.h@> - -layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS; - -void main(void) { - vec4 deformedPosition = vec4(0.0, 0.0, 0.0, 0.0); - evalMeshDeformer(inPosition, deformedPosition, - meshDeformer_doSkinning(_drawCallInfo.y), inSkinClusterIndex, inSkinClusterWeight, - meshDeformer_doBlendshape(_drawCallInfo.y), gl_VertexID); - - // standard transform - TransformCamera cam = getTransformCamera(); - TransformObject obj = getTransformObject(); - <$transformModelToClipPos(cam, obj, deformedPosition, gl_Position)$> - <$transformModelToWorldPos(obj, deformedPosition, _positionWS)$> -} diff --git a/libraries/render/src/render/DrawTask.cpp b/libraries/render/src/render/DrawTask.cpp index 12f75049b2..7294bf4b1f 100755 --- a/libraries/render/src/render/DrawTask.cpp +++ b/libraries/render/src/render/DrawTask.cpp @@ -86,8 +86,10 @@ void render::renderStateSortShapes(const RenderContextPointer& renderContext, RenderArgs* args = renderContext->args; int numItemsToDraw = (int)inItems.size(); + int lastItemToDraw = -1; if (maxDrawnItems != -1) { numItemsToDraw = glm::min(numItemsToDraw, maxDrawnItems); + lastItemToDraw = numItemsToDraw - 1; } using SortedPipelines = std::vector; @@ -98,7 +100,11 @@ void render::renderStateSortShapes(const RenderContextPointer& renderContext, for (auto i = 0; i < numItemsToDraw; ++i) { auto& item = scene->getItem(inItems[i].id); - + if (lastItemToDraw == i) { + if (!item.getKey().isShape()) { + qDebug() << "Item explored"; + } + } { assert(item.getKey().isShape()); auto key = item.getShapeKey() | globalKey;