def testBasic(self): g = GafferScene.Group() inputs = [] for shader, name in [ ("spot_light", "spot1"), ("spot_light", "spot2"), ("distant_light", "distant1"), ("skydome_light", "env1"), ]: l = GafferArnold.ArnoldLight() l.loadShader(shader) l["name"].setValue(name) inputs.append(l) inputs.append(GafferScene.Camera()) for i in inputs: g["in"][-1].setInput(i["out"]) f = GafferScene.PathFilter() f['paths'].setValue( IECore.StringVectorData( ["/group/spot1", "/group/env1", "/group/distant1"])) lc = GafferScene.LightToCamera() lc["in"].setInput(g["out"]) lc["filter"].setInput(f["out"]) # Test spot to persp cam spotCam = lc["out"].object("/group/spot1") self.assertEqual(spotCam.calculateFieldOfView(), imath.V2f(65)) self.assertEqual(spotCam.getClippingPlanes(), imath.V2f(0.01, 100000)) self.assertEqual(spotCam.getProjection(), 'perspective') self.assertEqual(spotCam.getFilmFit(), IECoreScene.Camera.FilmFit.Fit) self.assertEqual(spotCam.hasResolution(), False) # Test distant to ortho cam distantCam = lc["out"].object("/group/distant1") self.assertEqual(distantCam.getAperture(), imath.V2f(2, 2)) self.assertEqual(distantCam.getClippingPlanes(), imath.V2f(-100000, 100000)) self.assertEqual(distantCam.getProjection(), 'orthographic') self.assertEqual(distantCam.getFilmFit(), IECoreScene.Camera.FilmFit.Fit) self.assertEqual(distantCam.hasResolution(), False) # Test light with no corresponding camera ( gets default cam ) self.assertEqual( lc["out"].object("/group/env1").parameters(), IECore.CompoundData({ 'projection': IECore.StringData('perspective'), })) self.assertEqual(lc["out"].set("__lights").value.paths(), ["/group/spot2"]) self.assertEqual( set(lc["out"].set("__cameras").value.paths()), set([ "/group/camera", "/group/spot1", "/group/distant1", "/group/env1" ]))
def testBasic(self): g = GafferScene.Group() inputs = [] for shader, name in [ ("spot_light", "spot1"), ("spot_light", "spot2"), ("distant_light", "distant1"), ("skydome_light", "env1"), ]: l = GafferArnold.ArnoldLight() l.loadShader(shader) l["name"].setValue(name) inputs.append(l) inputs.append(GafferScene.Camera()) for i in inputs: g["in"][-1].setInput(i["out"]) f = GafferScene.PathFilter() f['paths'].setValue( IECore.StringVectorData( ["/group/spot1", "/group/env1", "/group/distant1"])) lc = GafferScene.LightToCamera() lc["in"].setInput(g["out"]) lc["filter"].setInput(f["out"]) # Test spot to persp cam self.assertEqual( lc["out"].object("/group/spot1").parameters(), IECore.CompoundData({ 'projection:fov': IECore.FloatData(65), 'clippingPlanes': IECore.V2fData(IECore.V2f(0.01, 100000)), 'projection': IECore.StringData('perspective'), 'resolutionOverride': IECore.V2iData(IECore.V2i(512, 512)), 'screenWindow': IECore.Box2fData( IECore.Box2f(IECore.V2f(-1, -1), IECore.V2f(1, 1))) })) # Test distant to ortho cam self.assertEqual( lc["out"].object("/group/distant1").parameters(), IECore.CompoundData({ 'clippingPlanes': IECore.V2fData(IECore.V2f(-100000, 100000)), 'projection': IECore.StringData('orthographic'), 'resolutionOverride': IECore.V2iData(IECore.V2i(512, 512)), 'screenWindow': IECore.Box2fData( IECore.Box2f(IECore.V2f(-1, -1), IECore.V2f(1, 1))) })) # Test light with no corresponding camera ( gets default cam ) self.assertEqual( lc["out"].object("/group/env1").parameters(), IECore.CompoundData({ 'projection': IECore.StringData('perspective'), 'resolutionOverride': IECore.V2iData(IECore.V2i(512, 512)) })) self.assertEqual(lc["out"].set("__lights").value.paths(), ["/group/spot2"]) self.assertEqual( set(lc["out"].set("__cameras").value.paths()), set([ "/group/camera", "/group/spot1", "/group/distant1", "/group/env1" ]))