65
65
66
66
#ifdef WANT_MATERIALX_BUILD
67
67
#include < mayaUsd/render/MaterialXGenOgsXml/CombinedMaterialXVersion.h>
68
- #include < mayaUsd/render/MaterialXGenOgsXml/LobePruner.h>
69
68
#include < mayaUsd/render/MaterialXGenOgsXml/OgsFragment.h>
70
69
#include < mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.h>
71
70
#include < mayaUsd/render/MaterialXGenOgsXml/ShaderGenUtil.h>
71
+ #if MX_COMBINED_VERSION >= 13808
72
+ #include < mayaUsd/render/MaterialXGenOgsXml/LobePruner.h>
73
+ #endif
72
74
73
75
#include < MaterialXCore/Document.h>
74
76
#include < MaterialXFormat/File.h>
@@ -354,6 +356,7 @@ struct _MaterialXData
354
356
static const std::string env = TfGetenv (" USDMTLX_PRIMARY_UV_NAME" );
355
357
_mainUvSetName = env.empty () ? UsdUtilsGetPrimaryUVSetName ().GetString () : env;
356
358
359
+ #if MX_COMBINED_VERSION >= 13808
357
360
_lobePruner = MaterialXMaya::ShaderGenUtil::LobePruner::create ();
358
361
_lobePruner->setLibrary (_mtlxLibrary);
359
362
@@ -366,6 +369,7 @@ struct _MaterialXData
366
369
// NodeGraph boundary, then no optimization will be found. This would require a change
367
370
// in the LobePruner to detect transitive weights. Doable, but complex. We will wait
368
371
// until there is sufficient demand.
372
+ #endif
369
373
} catch (mx::Exception& e) {
370
374
TF_RUNTIME_ERROR (
371
375
" Caught exception '%s' while initializing MaterialX library" , e.what ());
@@ -374,7 +378,9 @@ struct _MaterialXData
374
378
MaterialX::FileSearchPath _mtlxSearchPath; // !< MaterialX library search path
375
379
MaterialX::DocumentPtr _mtlxLibrary; // !< MaterialX library
376
380
std::string _mainUvSetName; // !< Main UV set name
381
+ #if MX_COMBINED_VERSION >= 13808
377
382
MaterialXMaya::ShaderGenUtil::LobePruner::Ptr _lobePruner;
383
+ #endif
378
384
379
385
private:
380
386
void _FixLibraryTangentInputs (MaterialX::DocumentPtr& mtlxLibrary);
@@ -476,13 +482,16 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork)
476
482
MayaUsd::hash_combine (topoHash, hash_value (nodePair.first ));
477
483
478
484
const auto & node = nodePair.second ;
479
- TfToken optimizedNodeId = _GetMaterialXData ()._lobePruner ->getOptimizedNodeId (node);
485
+ #if MX_COMBINED_VERSION >= 13808
486
+ TfToken optimizedNodeId = _GetMaterialXData ()._lobePruner ->getOptimizedNodeId (node);
480
487
if (optimizedNodeId.IsEmpty ()) {
481
488
MayaUsd::hash_combine (topoHash, hash_value (node.nodeTypeId ));
482
489
} else {
483
490
MayaUsd::hash_combine (topoHash, hash_value (optimizedNodeId));
484
491
}
485
-
492
+ #else
493
+ MayaUsd::hash_combine (topoHash, hash_value (node.nodeTypeId ));
494
+ #endif
486
495
if (_IsTopologicalNode (node)) {
487
496
// We need to capture values that affect topology:
488
497
for (auto const & p : node.parameters ) {
@@ -2902,13 +2911,16 @@ void HdVP2Material::CompiledNetwork::_ApplyMtlxVP2Fixes(
2902
2911
for (const auto & nodePair : inNet.nodes ) {
2903
2912
const HdMaterialNode2& inNode = nodePair.second ;
2904
2913
HdMaterialNode2 outNode;
2914
+ #if MX_COMBINED_VERSION >= 13808
2905
2915
TfToken optimizedNodeId = _GetMaterialXData ()._lobePruner ->getOptimizedNodeId (inNode);
2906
2916
if (optimizedNodeId.IsEmpty ()) {
2907
2917
outNode.nodeTypeId = inNode.nodeTypeId ;
2908
2918
} else {
2909
2919
outNode.nodeTypeId = optimizedNodeId;
2910
2920
}
2911
-
2921
+ #else
2922
+ outNode.nodeTypeId = inNode.nodeTypeId ;
2923
+ #endif
2912
2924
if (_IsTopologicalNode (inNode)) {
2913
2925
// These parameters affect topology:
2914
2926
outNode.parameters = inNode.parameters ;
@@ -3024,9 +3036,13 @@ MHWRender::MShaderInstance* HdVP2Material::CompiledNetwork::_CreateMaterialXShad
3024
3036
3025
3037
mx::DocumentPtr mtlxDoc;
3026
3038
const mx::FileSearchPath& crLibrarySearchPath (_GetMaterialXData ()._mtlxSearchPath );
3039
+ #if MX_COMBINED_VERSION >= 13808
3027
3040
if (mtlxSdrNode
3028
3041
|| MaterialXMaya::ShaderGenUtil::LobePruner::isOptimizedNodeId (
3029
3042
surfTerminal->nodeTypeId )) {
3043
+ #else
3044
+ if (mtlxSdrNode) {
3045
+ #endif
3030
3046
3031
3047
#ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API
3032
3048
mx::DocumentPtr completeLibrary = mx::createDocument ();
0 commit comments