@@ -55,6 +55,11 @@ def setUpClass(cls):
5555 def tearDownClass (cls ):
5656 standalone .uninitialize ()
5757
58+ def _assertGfIsClose (self , a , b , ep ):
59+ if Gf .IsClose (a , b , ep ):
60+ return
61+ raise self .failureException ("%s != %s (ep=%f)" % (a , b , ep ))
62+
5863 def testStageOpens (self ):
5964 """
6065 Tests that the USD stage was opened successfully.
@@ -114,20 +119,22 @@ def _ValidateUsdLuxLight(self, lightTypeName):
114119 return
115120
116121 expectedIntensity = 1.0 + (testNumber * 0.1 )
122+ self ._assertGfIsClose (lightSchema .GetIntensityAttr ().Get (),
123+ expectedIntensity , 1e-6 )
117124 self .assertTrue (Gf .IsClose (lightSchema .GetIntensityAttr ().Get (),
118125 expectedIntensity , 1e-6 ))
119126
120127 expectedExposure = 0.1 * testNumber
121- self .assertTrue ( Gf . IsClose (lightSchema .GetExposureAttr ().Get (),
122- expectedExposure , 1e-6 ))
128+ self ._assertGfIsClose (lightSchema .GetExposureAttr ().Get (),
129+ expectedExposure , 1e-6 )
123130
124131 expectedDiffuse = 1.0 + (testNumber * 0.1 )
125- self .assertTrue ( Gf . IsClose (lightSchema .GetDiffuseAttr ().Get (),
126- expectedDiffuse , 1e-6 ))
132+ self ._assertGfIsClose (lightSchema .GetDiffuseAttr ().Get (),
133+ expectedDiffuse , 1e-6 )
127134
128135 expectedSpecular = 1.0 + (testNumber * 0.1 )
129- self .assertTrue ( Gf . IsClose (lightSchema .GetSpecularAttr ().Get (),
130- expectedSpecular , 1e-6 ))
136+ self ._assertGfIsClose (lightSchema .GetSpecularAttr ().Get (),
137+ expectedSpecular , 1e-6 )
131138
132139 if lightTypeName == 'EnvDayLight' :
133140 # PxrEnvDayLight doesn't have any of the below attributes.
@@ -143,16 +150,16 @@ def _ValidateUsdLuxLight(self, lightTypeName):
143150 expectedNormalize )
144151
145152 expectedColor = Gf .Vec3f (0.1 * testNumber )
146- self .assertTrue ( Gf . IsClose (lightSchema .GetColorAttr ().Get (),
147- expectedColor , 1e-6 ))
153+ self ._assertGfIsClose (lightSchema .GetColorAttr ().Get (),
154+ expectedColor , 1e-6 )
148155
149156 expectedEnableTemperature = True
150157 self .assertEqual (lightSchema .GetEnableColorTemperatureAttr ().Get (),
151158 expectedEnableTemperature )
152159
153160 expectedTemperature = 6500.0 + testNumber
154- self .assertTrue ( Gf . IsClose (lightSchema .GetColorTemperatureAttr ().Get (),
155- expectedTemperature , 1e-6 ))
161+ self ._assertGfIsClose (lightSchema .GetColorTemperatureAttr ().Get (),
162+ expectedTemperature , 1e-6 )
156163
157164 def _ValidateDiskLightXformAnimation (self ):
158165 lightPrimPath = '/RfMLightsTest/Lights/DiskLight'
@@ -184,8 +191,8 @@ def _ValidateUsdLuxDistantLightAngle(self):
184191 self .assertTrue (distantLight )
185192
186193 expectedAngle = 0.73
187- self .assertTrue ( Gf . IsClose (distantLight .GetAngleAttr ().Get (),
188- expectedAngle , 1e-6 ))
194+ self ._assertGfIsClose (distantLight .GetAngleAttr ().Get (),
195+ expectedAngle , 1e-6 )
189196
190197 def _ValidateUsdLuxRectLightTextureFile (self ):
191198 lightPrimPath = '/RfMLightsTest/Lights/RectLight'
@@ -264,46 +271,46 @@ def _ValidateUsdRiPxrEnvDayLight(self):
264271 expectedDay )
265272
266273 expectedHaziness = 1.9
267- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:haziness" ).Get (),
268- expectedHaziness , 1e-6 ))
274+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:haziness" ).Get (),
275+ expectedHaziness , 1e-6 )
269276
270277 expectedHour = 9.9
271- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:hour" ).Get (),
272- expectedHour , 1e-6 ))
278+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:hour" ).Get (),
279+ expectedHour , 1e-6 )
273280
274281 expectedLatitude = 90.0
275- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:latitude" ).Get (),
276- expectedLatitude , 1e-6 ))
282+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:latitude" ).Get (),
283+ expectedLatitude , 1e-6 )
277284
278285 expectedLongitude = - 90.0
279- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:longitude" ).Get (),
280- expectedLongitude , 1e-6 ))
286+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:longitude" ).Get (),
287+ expectedLongitude , 1e-6 )
281288
282289 expectedMonth = 9
283290 self .assertEqual (envDayLight .GetAttribute ("inputs:ri:light:month" ).Get (), expectedMonth )
284291
285292 expectedSkyTint = Gf .Vec3f (0.9 )
286- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:skyTint" ).Get (),
287- expectedSkyTint , 1e-6 ))
293+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:skyTint" ).Get (),
294+ expectedSkyTint , 1e-6 )
288295
289296 expectedSunDirection = Gf .Vec3f (0.0 , 0.0 , 0.9 )
290- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:sunDirection" ).Get (),
291- expectedSunDirection , 1e-6 ))
297+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:sunDirection" ).Get (),
298+ expectedSunDirection , 1e-6 )
292299
293300 expectedSunSize = 0.9
294- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:sunSize" ).Get (),
295- expectedSunSize , 1e-6 ))
301+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:sunSize" ).Get (),
302+ expectedSunSize , 1e-6 )
296303
297304 expectedSunTint = Gf .Vec3f (0.9 )
298- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:sunTint" ).Get (),
299- expectedSunTint , 1e-6 ))
305+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:sunTint" ).Get (),
306+ expectedSunTint , 1e-6 )
300307
301308 expectedYear = 2019
302309 self .assertEqual (envDayLight .GetAttribute ("inputs:ri:light:year" ).Get (), expectedYear )
303310
304311 expectedZone = 9.0
305- self .assertTrue ( Gf . IsClose (envDayLight .GetAttribute ("inputs:ri:light:zone" ).Get (),
306- expectedZone , 1e-6 ))
312+ self ._assertGfIsClose (envDayLight .GetAttribute ("inputs:ri:light:zone" ).Get (),
313+ expectedZone , 1e-6 )
307314
308315 def _ValidateUsdLuxShapingAPI (self ):
309316 lightPrimPath = '/RfMLightsTest/Lights/DiskLight'
@@ -316,28 +323,34 @@ def _ValidateUsdLuxShapingAPI(self):
316323 self .assertTrue (shapingAPI )
317324
318325 expectedFocus = 0.2
319- self .assertTrue ( Gf . IsClose (shapingAPI .GetShapingFocusAttr ().Get (),
320- expectedFocus , 1e-6 ))
326+ self ._assertGfIsClose (shapingAPI .GetShapingFocusAttr ().Get (),
327+ expectedFocus , 1e-6 )
321328
322329 expectedFocusTint = Gf .Vec3f (0.2 )
323- self .assertTrue ( Gf . IsClose (shapingAPI .GetShapingFocusTintAttr ().Get (),
324- expectedFocusTint , 1e-6 ))
330+ self ._assertGfIsClose (shapingAPI .GetShapingFocusTintAttr ().Get (),
331+ expectedFocusTint , 1e-6 )
325332
326333 expectedConeAngle = 92.0
327- self .assertTrue ( Gf . IsClose (shapingAPI .GetShapingConeAngleAttr ().Get (),
328- expectedConeAngle , 1e-6 ))
334+ self ._assertGfIsClose (shapingAPI .GetShapingConeAngleAttr ().Get (),
335+ expectedConeAngle , 1e-6 )
329336
330337 expectedConeSoftness = 0.2
331- self .assertTrue ( Gf . IsClose (shapingAPI .GetShapingConeSoftnessAttr ().Get (),
332- expectedConeSoftness , 1e-6 ))
338+ self ._assertGfIsClose (shapingAPI .GetShapingConeSoftnessAttr ().Get (),
339+ expectedConeSoftness , 1e-6 )
333340
334341 expectedProfilePath = './DiskLight_profile.ies'
335342 self .assertEqual (shapingAPI .GetShapingIesFileAttr ().Get (),
336343 expectedProfilePath )
337344
338345 expectedProfileScale = 1.2
339- self .assertTrue (Gf .IsClose (shapingAPI .GetShapingIesAngleScaleAttr ().Get (),
340- expectedProfileScale , 1e-6 ))
346+ self ._assertGfIsClose (shapingAPI .GetShapingIesAngleScaleAttr ().Get (),
347+ expectedProfileScale , 1e-6 )
348+
349+ def _ValidateUsdLuxSuppressed (self ):
350+ ''' makes sure suppressed properties are not written out '''
351+ lightPrimPath = '/RfMLightsTest/Lights/DiskLight'
352+ lightPrim = self ._stage .GetPrimAtPath (lightPrimPath )
353+ self .assertFalse (bool (lightPrim .GetAttribute ('inputs:ri:light:shadowSubset' )))
341354
342355 def _ValidateUsdLuxShadowAPI (self ):
343356 lightPrimPath = '/RfMLightsTest/Lights/RectLight'
@@ -352,50 +365,56 @@ def _ValidateUsdLuxShadowAPI(self):
352365 self .assertTrue (shadowAPI .GetShadowEnableAttr ().Get ())
353366
354367 expectedShadowColor = Gf .Vec3f (0.6 )
355- self .assertTrue ( Gf . IsClose (shadowAPI .GetShadowColorAttr ().Get (),
356- expectedShadowColor , 1e-6 ))
368+ self ._assertGfIsClose (shadowAPI .GetShadowColorAttr ().Get (),
369+ expectedShadowColor , 1e-6 )
357370
358371 expectedShadowDistance = - 0.6
359- self .assertTrue ( Gf . IsClose (shadowAPI .GetShadowDistanceAttr ().Get (),
360- expectedShadowDistance , 1e-6 ))
372+ self ._assertGfIsClose (shadowAPI .GetShadowDistanceAttr ().Get (),
373+ expectedShadowDistance , 1e-6 )
361374
362375 expectedShadowFalloff = - 0.6
363- self .assertTrue ( Gf . IsClose (shadowAPI .GetShadowFalloffAttr ().Get (),
364- expectedShadowFalloff , 1e-6 ))
376+ self ._assertGfIsClose (shadowAPI .GetShadowFalloffAttr ().Get (),
377+ expectedShadowFalloff , 1e-6 )
365378
366379 expectedShadowFalloffGamma = 0.6
367- self .assertTrue ( Gf . IsClose (shadowAPI .GetShadowFalloffGammaAttr ().Get (),
368- expectedShadowFalloffGamma , 1e-6 ))
380+ self ._assertGfIsClose (shadowAPI .GetShadowFalloffGammaAttr ().Get (),
381+ expectedShadowFalloffGamma , 1e-6 )
369382
370- def testExportRenderManForMayaLights (self ):
371- """
372- Tests that RenderMan for Maya lights export as UsdLux schema USD prims
373- correctly.
374- """
383+ def testExportCylinderLight (self ):
375384 self ._ValidateUsdLuxLight ('CylinderLight' )
376385
386+ def testExportDiskLight (self ):
377387 self ._ValidateUsdLuxLight ('DiskLight' )
378388 self ._ValidateDiskLightXformAnimation ()
389+ self ._ValidateUsdLuxShapingAPI ()
390+ self ._ValidateUsdLuxSuppressed ()
379391
392+ def testExportDistantLight (self ):
380393 self ._ValidateUsdLuxLight ('DistantLight' )
394+ self ._ValidateUsdLuxDistantLightAngle ()
395+
396+ def testExportDomeLight (self ):
381397 self ._ValidateUsdLuxLight ('DomeLight' )
382- self ._ValidateUsdLuxLight ('MeshLight' )
383- self ._ValidateUsdLuxLight ('RectLight' )
384- self ._ValidateUsdLuxLight ('SphereLight' )
385- self ._ValidateUsdLuxLight ('AovLight' )
386- self ._ValidateUsdLuxLight ('EnvDayLight' )
398+ self ._ValidateUsdLuxDomeLightTextureFile ()
387399
388- self ._ValidateUsdLuxDistantLightAngle ()
400+ def testExportMeshLight (self ):
401+ self ._ValidateUsdLuxLight ('MeshLight' )
389402
403+ def testExportRectLight (self ):
404+ self ._ValidateUsdLuxLight ('RectLight' )
390405 self ._ValidateUsdLuxRectLightTextureFile ()
391- self ._ValidateUsdLuxDomeLightTextureFile ()
406+ self ._ValidateUsdLuxShadowAPI ()
392407
393- self . _ValidateUsdRiPxrAovLight ()
394- self ._ValidateUsdRiPxrEnvDayLight ( )
408+ def testExportSphereLight ( self ):
409+ self ._ValidateUsdLuxLight ( 'SphereLight' )
395410
396- self ._ValidateUsdLuxShapingAPI ()
411+ def testExportAovLight (self ):
412+ self ._ValidateUsdLuxLight ('AovLight' )
413+ self ._ValidateUsdRiPxrAovLight ()
397414
398- self ._ValidateUsdLuxShadowAPI ()
415+ def testExportEnvDayLight (self ):
416+ self ._ValidateUsdLuxLight ('EnvDayLight' )
417+ self ._ValidateUsdRiPxrEnvDayLight ()
399418
400419
401420if __name__ == '__main__' :
0 commit comments