| 623 | } |
| 624 | |
| 625 | HnMaterialParameter GetPrimvarReaderParam(const pxr::HdMaterialNetwork2& Network, |
| 626 | const pxr::HdMaterialNode2& Node, |
| 627 | const pxr::SdfPath& NodePath, |
| 628 | const pxr::TfToken& ParamName) |
| 629 | { |
| 630 | pxr::SdrRegistry& ShaderReg = pxr::SdrRegistry::GetInstance(); |
| 631 | |
| 632 | pxr::SdrShaderNodeConstPtr SdrNode = |
| 633 | ShaderReg.GetShaderNodeByIdentifierAndType(Node.nodeTypeId, pxr::HioGlslfxTokens->glslfx); |
| 634 | |
| 635 | HnMaterialParameter Param{HnMaterialParameter::ParamType::PrimvarRedirect, ParamName}; |
| 636 | |
| 637 | // A node may require 'additional primvars' to function correctly. |
| 638 | for (auto const& PropName : SdrNode->GetAdditionalPrimvarProperties()) |
| 639 | { |
| 640 | pxr::TfToken PrimvarName = GetPrimvarNameAttributeValue(SdrNode, Node, PropName); |
| 641 | if (!PrimvarName.IsEmpty()) |
| 642 | { |
| 643 | Param.SamplerCoords.push_back(PrimvarName); |
| 644 | } |
| 645 | } |
| 646 | |
| 647 | return Param; |
| 648 | } |
| 649 | |
| 650 | static HnMaterialParameter GetTransform2dParam( |
| 651 | const pxr::HdMaterialNetwork2& Network, |
no test coverage detected