Exemple #1
0
    def test_ShaderProperties(self):
        """
        Test property correctness on the "TestShaderPropertiesNodeOSL" node.

        See shaderParserTestUtils TestShaderPropertiesNode method for detailed
        description of the test.
        """
        URI = "TestShaderPropertiesNodeOSL.oso"
        sourceCode = ""
        metadata = {}
        blindData = ""

        discoveryResult = Ndr.NodeDiscoveryResult(
            "TestShaderPropertiesNodeOSL",  # Identifier
            Ndr.Version(),  # Version
            "TestShaderPropertiesNodeOSL",  # Name
            "",  # Family
            "oso",  # Discovery type (extension)
            "OSL",  # Source type
            URI,  # URI
            URI,  # Resolved URI
            sourceCode,  # sourceCode
            metadata,  # metadata
            blindData  # blindData
        )
        node = SdrOsl.OslParser().Parse(discoveryResult)
        assert node is not None

        utils.TestShaderPropertiesNode(node)
Exemple #2
0
    def test_ShaderProperties(self):
        """
        Test property correctness on the "TestShaderPropertiesNodeUSD" node.

        See shaderParserTestUtils TestShaderPropertiesNode method for detailed
        description of the test.
        """
        stage = Usd.Stage.Open('shaderDefs.usda')
        shaderDef = UsdShade.Shader.Get(stage,
                                           "/TestShaderPropertiesNodeUSD")

        discoveryResults = UsdShade.ShaderDefUtils.GetNodeDiscoveryResults(
                shaderDef, stage.GetRootLayer().realPath)
        self.assertEqual(len(discoveryResults), 1)

        discoveryResult = discoveryResults[0]
        node = UsdShade.ShaderDefParserPlugin().Parse(discoveryResult)
        assert node is not None

        self.assertEqual(os.path.basename(node.GetResolvedImplementationURI()),
                "TestShaderPropertiesNode.glslfx")
        self.assertEqual(os.path.basename(node.GetResolvedDefinitionURI()),
                "shaderDefs.usda")


        utils.TestShaderPropertiesNode(node)
Exemple #3
0
    def test_ShaderProperties(self):
        """
        Test property correctness on the "TestShaderPropertiesNodeUSD" node.

        See shaderParserTestUtils TestShaderPropertiesNode method for detailed
        description of the test.
        """
        stage = Usd.Stage.Open('shaderDefs.usda')
        shaderDef = UsdShade.Shader.Get(stage, "/TestShaderPropertiesNodeUSD")

        discoveryResults = UsdShade.ShaderDefUtils.GetNodeDiscoveryResults(
            shaderDef,
            stage.GetRootLayer().realPath)
        self.assertEqual(len(discoveryResults), 1)

        discoveryResult = discoveryResults[0]
        node = UsdShade.ShaderDefParserPlugin().Parse(discoveryResult)
        assert node is not None

        self.assertEqual(os.path.basename(node.GetResolvedImplementationURI()),
                         "TestShaderPropertiesNode.glslfx")
        self.assertEqual(os.path.basename(node.GetResolvedDefinitionURI()),
                         "shaderDefs.usda")

        # Test GetOptions on an attribute via allowdTokens and
        # sdrMetadata["options"]
        expectedOptionsList = [('token1', ''), ('token2', '')]
        self.assertEqual(
            node.GetInput("testAllowedTokens").GetOptions(),
            expectedOptionsList)
        self.assertEqual(
            node.GetInput("testMetadataOptions").GetOptions(),
            expectedOptionsList)

        # sdrMetadata options will win over explicitly specified allowedTokens
        # on the attr.
        attr = shaderDef.GetPrim(). \
                GetAttribute('inputs:testAllowedTokenAndMetdataOptions')
        expectedMetdataOptions = "token3|token4"
        expectedAttrAllowedTokens = ["token1", "token2"]
        expectedOptionsList = [('token3', ''), ('token4', '')]
        self.assertEqual(node.GetInput("testAllowedTokenAndMetdataOptions"). \
                GetMetadata()["options"], expectedMetdataOptions)
        self.assertEqual([t for t in attr.GetMetadata('allowedTokens')],
                         expectedAttrAllowedTokens)
        self.assertEqual(node.GetInput("testAllowedTokenAndMetdataOptions"). \
                GetOptions(), expectedOptionsList)

        # Test sdrUsdDefinitionType sdrMetadata and GetTypeAsSdfType
        actualBoolInput = node.GetInput('actualBool')
        attr = shaderDef.GetPrim(). \
                GetAttribute('inputs:actualBool')
        self.assertEqual(attr.GetTypeName(), Sdf.ValueTypeNames.Bool)
        # Bool types are registered as Int via sdr, if no sdrUsdDefinitionType
        # provided
        self.assertEqual(actualBoolInput.GetTypeAsSdfType()[0],
                         Sdf.ValueTypeNames.Bool)
        self.assertEqual(actualBoolInput.GetType(), Sdf.ValueTypeNames.Int)

        intButBoolInput = node.GetInput('intButBool')
        attr = shaderDef.GetPrim(). \
                GetAttribute('inputs:intButBool')
        self.assertEqual(attr.GetTypeName(), Sdf.ValueTypeNames.Int)
        self.assertEqual(intButBoolInput.GetTypeAsSdfType()[0],
                         Sdf.ValueTypeNames.Bool)
        self.assertEqual(intButBoolInput.GetType(), Sdf.ValueTypeNames.Int)

        utils.TestShaderPropertiesNode(node)