From 16a59effb78e03e4a49c4d23d54aac316673c037 Mon Sep 17 00:00:00 2001 From: klucknav Date: Thu, 20 Aug 2020 14:22:15 -0700 Subject: [PATCH] [usdImaging] Turn off invisible lights. - return 0 intensity when light is invisible - add check for varying visibility - add test for changes in light visibility; both manually editing the visibility and time varying visibility Note: - when lights have time varying visibility Prman treats the lights as invisible the entire time Fixes #1277 (Internal change: 2092259) --- .../baseline/allInvisible.png | Bin 0 -> 4569 bytes .../baseline/allVisible.png | Bin 0 -> 28859 bytes .../baseline/invisible.png | Bin 0 -> 2269 bytes .../baseline/singleInvisible1.png | Bin 0 -> 18303 bytes .../baseline/singleInvisible2.png | Bin 0 -> 17932 bytes .../baseline/visible.png | Bin 0 -> 21697 bytes .../testUsdviewLightVisibility/test.usda | 75 +++++++++++++ .../testUsdviewLightVisibility.py | 100 ++++++++++++++++++ .../testUsdviewVaryLightVisibility.py | 69 ++++++++++++ .../testVarying.usda | 47 ++++++++ pxr/usdImaging/usdImaging/delegate.cpp | 13 ++- pxr/usdImaging/usdImaging/lightAdapter.cpp | 13 ++- 12 files changed, 313 insertions(+), 4 deletions(-) create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allInvisible.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allVisible.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/invisible.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible1.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible2.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/visible.png create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/test.usda create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewLightVisibility.py create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewVaryLightVisibility.py create mode 100644 pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testVarying.usda diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allInvisible.png b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allInvisible.png new file mode 100644 index 0000000000000000000000000000000000000000..562aa3b268e6fcdc960faad941a4887038af241f GIT binary patch literal 4569 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 literal 0 HcmV?d00001 diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allVisible.png b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/allVisible.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc06672180b60ad7ff079fbfb4f36fce2d1609e GIT binary patch literal 28859 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 w~SCR~azdI`usp-VkJ?evJ-0 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 h|6Tq+>);kF_0_G`Q)4=Va2w$rO?AB&wW zaP)h+IEGZrd3$4{@8JLmw?K!5-miTe<~NC6N)?*6pnd5KMON;BN%QoCw3l%F@_c8> z{bTaHHLsul{##ei&S1!YnVBJ>;U8nbl6nS_m+}m*zt|ln;^QXQeY3wTyukZ^!kOcz zkAGo#amk*c>kEH_(qHBU9{(9MM!AD9G@^X@AAIUN{`d>axu+Y}9o?jJS$K!R-`$Sw zhZC!qo)<-2PuhOl*Z;wxKmS=qBXKkhLvr+@t6vyiRQ=vnZ8vvWc)_&e@87@VG=EXM zS+Zu=Z}~HoRdeDPlI^a)zRCEm-r(8SgX}M^-srs-@`F2Wv_Kdw4`I~-xa8S(`|TH& whW~#5^Dcmj9)^F`|Lqw^Yl`7mZ`Lv9=*n)~lfTOh*j{1qboFyt=akR{0O(b|-v9sr literal 0 HcmV?d00001 diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible1.png b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible1.png new file mode 100644 index 0000000000000000000000000000000000000000..de7aa7250a6b527497f751b630938cc852ced407 GIT binary patch literal 18303 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 literal 0 HcmV?d00001 diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible2.png b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/singleInvisible2.png new file mode 100644 index 0000000000000000000000000000000000000000..0b01405b6f31e8f3de6d198d88ab4f777e132c9c GIT binary patch literal 17932 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 literal 0 HcmV?d00001 diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/visible.png b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/baseline/visible.png new file mode 100644 index 0000000000000000000000000000000000000000..853bfbc46dd5500d22fbdc6dcc87e1631d4d871f GIT binary patch literal 21697 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 J5=Uafe*pHbuetyL literal 0 HcmV?d00001 diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/test.usda b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/test.usda new file mode 100644 index 0000000000..f427e45840 --- /dev/null +++ b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/test.usda @@ -0,0 +1,75 @@ +#usda 1.0 + +def Xform "Implicits" ( + add variantSets = "shapeVariant" +) +{ + variantSet "shapeVariant" = { + "Sphere" { + def Sphere "Ball" + { + } + } + } +} + +def Sphere "frontSphere" { + double3 xformOp:translate = (2, 2, 2) + uniform token[] xformOpOrder = ["xformOp:translate"] +} + +def Sphere "backSphere" { + double3 xformOp:translate = (-2, 2, 2) + uniform token[] xformOpOrder = ["xformOp:translate"] + rel material:binding = +} + +def Scope "Looks" +{ + def Material "Material_0" + { + token outputs:surface.connect = + + def Shader "PbrPreview" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (1,1,1) + float inputs:roughness = 0 + color3f inputs:specularColor = (0.5, 0.5, 0.5) + int inputs:useSpecularWorkflow = 1 + token outputs:surface + } + } +} + +def Xform "lights" +{ + def SphereLight "light1" + { + color3f color = (0, 0.5, 0) + float diffuse = 1 + bool enableColorTemperature = 0 + float exposure = 4 + float intensity = 0.35 + bool normalize = 0 + float radius = 0.5 + float specular = 1 + bool treatAsPoint = 0 + matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (-3, 0, 2, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } + def SphereLight "light2" + { + color3f color = (0, 0, 0.5) + float diffuse = 1 + bool enableColorTemperature = 0 + float exposure = 4 + float intensity = 0.35 + bool normalize = 0 + float radius = 0.5 + float specular = 1 + bool treatAsPoint = 0 + matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (3, 0, 2, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } +} diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewLightVisibility.py b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewLightVisibility.py new file mode 100644 index 0000000000..cb6011b007 --- /dev/null +++ b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewLightVisibility.py @@ -0,0 +1,100 @@ +#!/pxrpythonsubst +# +# Copyright 2020 Pixar +# +# Licensed under the Apache License, Version 2.0 (the "Apache License") +# with the following modification; you may not use this file except in +# compliance with the Apache License and the following modification to it: +# Section 6. Trademarks. is deleted and replaced with: +# +# 6. Trademarks. This License does not grant permission to use the trade +# names, trademarks, service marks, or product names of the Licensor +# and its affiliates, except as required to comply with Section 4(c) of +# the License and to reproduce the content of the NOTICE file. +# +# You may obtain a copy of the Apache License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the Apache License with the above modification is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the Apache License for the specific +# language governing permissions and limitations under the Apache License. +# + + +from __future__ import print_function +import sys +from pxr.Usdviewq.qt import QtWidgets + + +# Remove any unwanted visuals from the view. +def _modifySettings(appController): + appController._dataModel.viewSettings.showBBoxes = False + appController._dataModel.viewSettings.showHUD = False + +# Turn off the Camera and Dome light. +def _turnLightsOff(appController): + appController._ui.actionAmbient_Only.setChecked(False) + appController._ambientOnlyClicked(False) + + appController._ui.actionDomeLight.setChecked(False) + appController._onDomeLightClicked(False) + + appController._stageView.updateGL() + +# Take a shot of the viewport and save it to a file. +def _takeShot(appController, fileName): + + QtWidgets.QApplication.processEvents() + appController._mainWindow.update() + viewportShot = appController.GrabViewportShot() + viewportShot.save(fileName, "PNG") + +# Select one or more prim paths, then set visible state of those prims. +def _selectAndSetVisible(appController, visible, paths): + selection = appController._dataModel.selection + with selection.batchPrimChanges: + selection.clearPrims() + for path in paths: + selection.addPrimPath(path) + + if visible: + appController.visSelectedPrims() + # We must processEvents after every call to activateSelectedPrims() so the + # activated PrimViewItems can repopulate. (See _primViewUpdateTimer in + # appController.py) + QtWidgets.QApplication.processEvents() + else: + appController.invisSelectedPrims() + +# Test making a single light invisible then make it visible. +def _testSingleVisible(appController): + _selectAndSetVisible(appController, False, ["/lights/light1"]) + _takeShot(appController, "singleInvisible1.png") + _selectAndSetVisible(appController, True, ["/lights/light1"]) + + _selectAndSetVisible(appController, False, ["/lights/light2"]) + _takeShot(appController, "singleInvisible2.png") + _selectAndSetVisible(appController, True, ["/lights/light2"]) + +# Test all lights visible/invisible. +def _testAllVisible(appController): + _selectAndSetVisible(appController, False, ["/lights/light1"]) + _selectAndSetVisible(appController, False, ["/lights/light2"]) + + _takeShot(appController, "allInvisible.png") + + _selectAndSetVisible(appController, True, ["/lights/light1"]) + _selectAndSetVisible(appController, True, ["/lights/light2"]) + + _takeShot(appController, "allVisible.png") + + +# Test that the complexity setting works properly in usdview. +def testUsdviewInputFunction(appController): + _modifySettings(appController) + _turnLightsOff(appController) + _testSingleVisible(appController) + _testAllVisible(appController) \ No newline at end of file diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewVaryLightVisibility.py b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewVaryLightVisibility.py new file mode 100644 index 0000000000..b13d22c167 --- /dev/null +++ b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testUsdviewVaryLightVisibility.py @@ -0,0 +1,69 @@ +#!/pxrpythonsubst +# +# Copyright 2020 Pixar +# +# Licensed under the Apache License, Version 2.0 (the "Apache License") +# with the following modification; you may not use this file except in +# compliance with the Apache License and the following modification to it: +# Section 6. Trademarks. is deleted and replaced with: +# +# 6. Trademarks. This License does not grant permission to use the trade +# names, trademarks, service marks, or product names of the Licensor +# and its affiliates, except as required to comply with Section 4(c) of +# the License and to reproduce the content of the NOTICE file. +# +# You may obtain a copy of the Apache License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the Apache License with the above modification is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the Apache License for the specific +# language governing permissions and limitations under the Apache License. +# + + +from __future__ import print_function +import sys +from pxr.Usdviewq.qt import QtWidgets + + +# Remove any unwanted visuals from the view. +def _modifySettings(appController): + appController._dataModel.viewSettings.showBBoxes = False + appController._dataModel.viewSettings.showHUD = False + +# Turn off the Camera and Dome light. +def _turnLightsOff(appController): + appController._ui.actionAmbient_Only.setChecked(False) + appController._ambientOnlyClicked(False) + + appController._ui.actionDomeLight.setChecked(False) + appController._onDomeLightClicked(False) + + appController._stageView.updateGL() + +# Take a shot of the viewport and save it to a file. +def _takeShot(appController, fileName): + + QtWidgets.QApplication.processEvents() + appController._mainWindow.update() + viewportShot = appController.GrabViewportShot() + viewportShot.save(fileName, "PNG") + +# Test light visibility varying over time. +def _testVaryingVisibility(appController): + + appController.setFrame(0) + _takeShot(appController, "visible.png") + appController.setFrame(5) + _takeShot(appController, "invisible.png") + + +# Test that the complexity setting works properly in usdview. +def testUsdviewInputFunction(appController): + _modifySettings(appController) + _turnLightsOff(appController) + + _testVaryingVisibility(appController) \ No newline at end of file diff --git a/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testVarying.usda b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testVarying.usda new file mode 100644 index 0000000000..0b4882061f --- /dev/null +++ b/pxr/usdImaging/bin/testusdview/testenv/testUsdviewLightVisibility/testVarying.usda @@ -0,0 +1,47 @@ +#usda 1.0 +( + defaultPrim = "Scene" + endTimeCode = 10 + startTimeCode = 1 + upAxis = "Y" +) +def Xform "Geom" +{ + def Mesh "Plane" + { + float3[] extent = [(-2, -2, -2), (2, 2, 2)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 2, 3] + point3f[] points = [(-2, -2, -2), (2, -2, -2), (2, 2, -2), (-2, 2, -2)] + color3f[] primvars:displayColor = [(0, 0.25, 0.5)] + float2[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] ( + interpolation = "vertex" + ) + } +} + +def Xform "lights" +{ + def SphereLight "light" + { + color3f color = (0.5, 0.5, 0.75) + float diffuse = 1 + bool enableColorTemperature = 0 + float exposure = 4 + float intensity = 0.35 + bool normalize = 0 + float radius = 0.5 + float specular = 1 + bool treatAsPoint = 0 + + token visibility = "inherited" + token visibility.timeSamples = { + 0: "inherited", + 5: "invisible", + } + + matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 2, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } + +} \ No newline at end of file diff --git a/pxr/usdImaging/usdImaging/delegate.cpp b/pxr/usdImaging/usdImaging/delegate.cpp index 1f3a16ef45..260be1dcd3 100644 --- a/pxr/usdImaging/usdImaging/delegate.cpp +++ b/pxr/usdImaging/usdImaging/delegate.cpp @@ -2765,9 +2765,18 @@ UsdImagingDelegate::GetLightParamValue(SdfPath const &id, } else if (paramName == HdTokens->shadowLink) { UsdCollectionAPI shadowLink = light.GetShadowLinkCollectionAPI(); return VtValue(_collectionCache.GetIdForCollection(shadowLink)); - } else if (paramName == HdLightTokens->intensity && !_sceneLightsEnabled ) { + } else if (paramName == HdLightTokens->intensity) { // return 0.0 intensity if scene lights are not enabled - return VtValue(0.0f); + if (!_sceneLightsEnabled) { + return VtValue(0.0f); + } + // return 0.0 intensity if the scene lights are not visible + _HdPrimInfo *primInfo = _GetHdPrimInfo(cachePath); + if (TF_VERIFY(primInfo)) { + if (!primInfo->adapter->GetVisible(primInfo->usdPrim, _time)){ + return VtValue(0.0f); + } + } } // Fallback to USD attributes. diff --git a/pxr/usdImaging/usdImaging/lightAdapter.cpp b/pxr/usdImaging/usdImaging/lightAdapter.cpp index f4a1acc689..3e66830b93 100644 --- a/pxr/usdImaging/usdImaging/lightAdapter.cpp +++ b/pxr/usdImaging/usdImaging/lightAdapter.cpp @@ -60,7 +60,7 @@ UsdImagingLightAdapter::TrackVariability(UsdPrim const& prim, SdfPath const& cachePath, HdDirtyBits* timeVaryingBits, UsdImagingInstancerContext const* - instancerContext) const + instancerContext) const { // Discover time-varying transforms. _IsTransformVarying(prim, @@ -68,6 +68,14 @@ UsdImagingLightAdapter::TrackVariability(UsdPrim const& prim, UsdImagingTokens->usdVaryingXform, timeVaryingBits); + // Discover time-varying visibility. + _IsVarying(prim, + UsdGeomTokens->visibility, + HdLight::DirtyBits::DirtyParams, + UsdImagingTokens->usdVaryingVisibility, + timeVaryingBits, + true); + // If any of the light attributes is time varying // we will assume all light params are time-varying. const std::vector &attrs = prim.GetAttributes(); @@ -170,7 +178,8 @@ UsdImagingLightAdapter::MarkVisibilityDirty(UsdPrim const& prim, SdfPath const& cachePath, UsdImagingIndexProxy* index) { - // TBD + static const HdDirtyBits paramsDirty = HdLight::DirtyParams; + index->MarkSprimDirty(cachePath, paramsDirty); } void