Usage Checker¶

This notebook demonstrates how to check the usage of node definitions for node libraries.

The utility scans one or more libraries * Each definition is examined to see if it is implemented as a node graph. * If it is the list of nodes it uses is returned. * For each node that is used a list of node definitions that use it is returned. * A list of definitions which are not implemented as graphs as well as a list of nodes that are missing implementations are returned.

The utility also provides usage rate for node definitions and a hint of complexity of a node definition which uses other nodes by providing a count of the number of unique nodes it uses.

In [1]:
import MaterialX as mx
import mtlxutils.mxfile as mxf
from IPython.display import display_markdown

stdlib = mx.createDocument()
searchPath = mx.getDefaultDataSearchPath()
libraryFolders = mx.getDefaultDataLibraryFolders() 
try:
    libFiles = mx.loadLibraries(libraryFolders, searchPath, stdlib)
    print('Loaded %s standard library definitions for version %s' % (len(stdlib.getNodeDefs()), mx.getVersionString()))
except mx.Exception as err:
    print('Failed to load standard library definitions: "', err, '"')

doc = mx.createDocument()
doc.importLibrary(stdlib)
Loaded 780 standard library definitions for version 1.39.2

Utility Methods¶

In [2]:
def getNodeDefUsage(doc, libraryFilter=None):
    
    # List of nodes used by another node
    nodes_use = dict()
    nodes_used_by = dict()
    nongraph_nodes = []
    unimplemented = []

    for nodedef in doc.getNodeDefs():
        found = True
        if libraryFilter:
            found = False
            for lib in libraryFilter:
                if lib in nodedef.getSourceUri():
                    found = True
                    break
        if not found:
            continue

        nodename = nodedef.getNodeString()
        impl = nodedef.getImplementation()
        if impl:
            nodes_use_list = [] 
            for node in impl.getChildrenOfType(mx.Node):
                #print('scan:', node.getName())
                nd = node.getNodeDef()
                if nd:
                    ns = nd.getNodeString()
                    if ns not in nodes_use_list:                    
                        nodes_use_list.append(ns)

                    # Look for ns key in nodes_used_by dictionary
                    if ns not in nodes_used_by:
                        nodes_used_by[ns] = []

                    if nodename not in nodes_used_by[ns]:
                        nodes_used_by[ns].append(nodename)
                else:
                    print('Skip unknown node type: ', node.getName())

            if len(nodes_use_list) > 0:
                nodes_use[nodename] = nodes_use_list
            else:
                if nodename not in nongraph_nodes:
                    nongraph_nodes.append(nodename)
        else:
            if nodename not in unimplemented:
                unimplemented.append(nodename)

    # Sort 
    nongraph_nodes = sorted(nongraph_nodes)
    unimplemented = sorted(unimplemented)
    nodes_use = {k: v for k, v in sorted(nodes_use.items(), key=lambda item: len(item[1]), reverse=True)}
    nodes_used_by = {k: v for k, v in sorted(nodes_used_by.items(), key=lambda item: len(item[1]), reverse=True)}

    return nodes_use, nodes_used_by, nongraph_nodes, unimplemented

def printNodeDefUsage(nodes_use, nodes_used_by, nongraph_nodes, unimplemented):
    #
    result = '| Node Definition | Uses |\n| --- | --- |'
    for nu in nodes_use:
        if (len(nodes_use[nu]) > 0):
            result += '\n| %s | %d nodes: %s |' % (nu, len(nodes_use[nu]), ', '.join(sorted(nodes_use[nu])))
    display_markdown(result, raw=True)

    result = '| Node Definition | Used by |\n| --- | --- |'
    for nu in nodes_used_by:
        if (len(nodes_used_by[nu]) > 0):
            result += '\n| %s | %d nodes: %s |' % (nu, len(nodes_used_by[nu]), ', '.join(sorted(nodes_used_by[nu])) )
    display_markdown(result, raw=True)

    if len(nongraph_nodes) > 0:
        result = '| Non-Graph Nodes: %d |\n| --- |\n' % (len(nongraph_nodes))
        result += '|' + ', '.join(nongraph_nodes) + '|'
        display_markdown(result, raw=True)

    if (len(unimplemented) > 0):
        result = '| Unimplemented Nodes %d |\n| --- |\n' % (len(unimplemented))
        #for nu in unimplemented:
        #    result += '\n| %s |' % (nu)
        result += '|' + ', '.join(unimplemented) + '|'
        display_markdown(result, raw=True)
    

Node Usages Results for "Standard Library"¶

In [3]:
nodes_use, nodes_used_by, nongraph_nodes, unimplemented = getNodeDefUsage(doc, ['stdlib', 'nprlib'])

printNodeDefUsage(nodes_use, nodes_used_by, nongraph_nodes, unimplemented)
Node Definition Uses
triplanarprojection 13 nodes: absval, add, clamp, combine2, divide, dotproduct, extract, image, multiply, normalize, power, separate3, switch
hexagon 13 nodes: absval, clamp, combine2, constant, dotproduct, extract, ifgreater, min, multiply, separate2, separate3, sqrt, subtract
unifiednoise2d 12 nodes: add, cellnoise2d, combine3, fractal3d, multiply, noise2d, range, rotate2d, separate2, subtract, switch, worleynoise2d
tiledcircles 12 nodes: add, circle, combine2, convert, divide, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
tiledcloverleafs 12 nodes: add, cloverleaf, combine2, convert, divide, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
tiledhexagons 12 nodes: add, combine2, convert, divide, hexagon, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
gooch_shade 11 nodes: add, divide, dotproduct, max, mix, multiply, normal, normalize, power, reflect, viewdirection
ramp 11 nodes: absval, add, atan2, divide, ifgreater, magnitude, multiply, ramp_gradient, separate2, subtract, switch
crosshatch 11 nodes: add, combine2, convert, ifequal, ifgreater, line, max, modulo, multiply, separate2, subtract
unifiednoise3d 10 nodes: add, cellnoise3d, fractal3d, multiply, noise3d, range, rotate3d, subtract, switch, worleynoise3d
grid 10 nodes: absval, add, convert, ifequal, ifgreater, min, modulo, multiply, separate2, subtract
range 8 nodes: absval, clamp, divide, ifequal, multiply, power, remap, sign
ramp_gradient 7 nodes: clamp, ifgreater, ifgreatereq, mix, remap, smoothstep, switch
line 7 nodes: clamp, distance, divide, dotproduct, ifgreater, multiply, subtract
checkerboard 6 nodes: dotproduct, floor, mix, modulo, multiply, subtract
cloverleaf 6 nodes: add, circle, combine2, max, separate2, subtract
refract 6 nodes: add, dotproduct, ifgreater, multiply, sqrt, subtract
facingratio 5 nodes: absval, dotproduct, ifequal, invert, multiply
place2d 5 nodes: add, divide, rotate2d, subtract, switch
hsvadjust 5 nodes: add, convert, hsvtorgb, multiply, rgbtohsv
colorcorrect 5 nodes: colorcorrect, combine3, combine4, separate3, separate4
tiledimage 4 nodes: divide, image, multiply, subtract
randomfloat 4 nodes: cellnoise2d, combine2, convert, range
circle 4 nodes: dotproduct, ifgreater, multiply, subtract
safepower 4 nodes: absval, multiply, power, sign
ramp4 3 nodes: clamp, extract, mix
trianglewave 3 nodes: absval, modulo, subtract
reflect 3 nodes: dotproduct, multiply, subtract
smoothstep 3 nodes: combine4, separate4, smoothstep
contrast 3 nodes: add, multiply, subtract
overlay 3 nodes: combine4, overlay, separate4
xor 3 nodes: and, not, or
noise2d 2 nodes: convert, noise2d
noise3d 2 nodes: convert, noise3d
fractal3d 2 nodes: convert, fractal3d
randomcolor 2 nodes: convert, randomcolor
bump 2 nodes: heighttonormal, normalmap
distance 2 nodes: magnitude, subtract
saturate 2 nodes: luminance, mix
convert 2 nodes: convert, surface_unlit
switch 1 nodes: ifgreater
separate2 1 nodes: extract
separate3 1 nodes: extract
separate4 1 nodes: extract
Node Definition Used by
multiply 25 nodes: checkerboard, circle, colorcorrect, contrast, crosshatch, facingratio, gooch_shade, grid, hexagon, hsvadjust, line, overlay, ramp, randomfloat, range, reflect, refract, safepower, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, triplanarprojection, unifiednoise2d, unifiednoise3d
subtract 22 nodes: checkerboard, circle, cloverleaf, colorcorrect, contrast, crosshatch, distance, grid, hexagon, line, overlay, place2d, ramp, reflect, refract, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, trianglewave, unifiednoise2d, unifiednoise3d
add 17 nodes: cloverleaf, colorcorrect, contrast, crosshatch, gooch_shade, grid, hsvadjust, place2d, ramp, randomcolor, refract, tiledcircles, tiledcloverleafs, tiledhexagons, triplanarprojection, unifiednoise2d, unifiednoise3d
ifgreater 12 nodes: circle, crosshatch, grid, hexagon, line, ramp, ramp_gradient, refract, switch, tiledcircles, tiledcloverleafs, tiledhexagons
convert 12 nodes: convert, crosshatch, fractal3d, grid, hsvadjust, noise2d, noise3d, randomcolor, randomfloat, tiledcircles, tiledcloverleafs, tiledhexagons
separate2 11 nodes: cloverleaf, convert, crosshatch, grid, hexagon, ramp, smoothstep, tiledcircles, tiledcloverleafs, tiledhexagons, unifiednoise2d
divide 10 nodes: gooch_shade, line, place2d, ramp, range, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, triplanarprojection
combine2 10 nodes: cloverleaf, convert, crosshatch, hexagon, randomfloat, smoothstep, tiledcircles, tiledcloverleafs, tiledhexagons, triplanarprojection
dotproduct 9 nodes: checkerboard, circle, facingratio, gooch_shade, hexagon, line, reflect, refract, triplanarprojection
absval 8 nodes: facingratio, grid, hexagon, ramp, range, safepower, trianglewave, triplanarprojection
ifequal 8 nodes: convert, crosshatch, facingratio, grid, range, tiledcircles, tiledcloverleafs, tiledhexagons
extract 7 nodes: convert, hexagon, ramp4, separate2, separate3, separate4, triplanarprojection
modulo 7 nodes: checkerboard, crosshatch, grid, tiledcircles, tiledcloverleafs, tiledhexagons, trianglewave
mix 6 nodes: checkerboard, gooch_shade, overlay, ramp4, ramp_gradient, saturate
max 6 nodes: cloverleaf, crosshatch, gooch_shade, tiledcircles, tiledcloverleafs, tiledhexagons
switch 6 nodes: place2d, ramp, ramp_gradient, triplanarprojection, unifiednoise2d, unifiednoise3d
clamp 6 nodes: hexagon, line, ramp4, ramp_gradient, range, triplanarprojection
separate3 6 nodes: colorcorrect, convert, hexagon, overlay, smoothstep, triplanarprojection
combine3 6 nodes: colorcorrect, convert, overlay, randomcolor, smoothstep, unifiednoise2d
power 5 nodes: colorcorrect, gooch_shade, range, safepower, triplanarprojection
range 5 nodes: colorcorrect, randomcolor, randomfloat, unifiednoise2d, unifiednoise3d
separate4 4 nodes: colorcorrect, convert, overlay, smoothstep
combine4 4 nodes: colorcorrect, convert, overlay, smoothstep
fractal3d 3 nodes: fractal3d, unifiednoise2d, unifiednoise3d
normalize 2 nodes: gooch_shade, triplanarprojection
image 2 nodes: tiledimage, triplanarprojection
magnitude 2 nodes: distance, ramp
remap 2 nodes: ramp_gradient, range
smoothstep 2 nodes: ramp_gradient, smoothstep
ifgreatereq 2 nodes: overlay, ramp_gradient
noise2d 2 nodes: noise2d, unifiednoise2d
noise3d 2 nodes: noise3d, unifiednoise3d
cellnoise2d 2 nodes: randomfloat, unifiednoise2d
rotate2d 2 nodes: place2d, unifiednoise2d
hsvtorgb 2 nodes: hsvadjust, randomcolor
circle 2 nodes: cloverleaf, tiledcircles
min 2 nodes: grid, hexagon
sqrt 2 nodes: hexagon, refract
sign 2 nodes: range, safepower
not 2 nodes: convert, xor
invert 1 nodes: facingratio
normal 1 nodes: gooch_shade
viewdirection 1 nodes: gooch_shade
reflect 1 nodes: gooch_shade
ramp_gradient 1 nodes: ramp
atan2 1 nodes: ramp
worleynoise2d 1 nodes: unifiednoise2d
cellnoise3d 1 nodes: unifiednoise3d
worleynoise3d 1 nodes: unifiednoise3d
rotate3d 1 nodes: unifiednoise3d
ceil 1 nodes: randomcolor
randomfloat 1 nodes: randomcolor
randomcolor 1 nodes: randomcolor
floor 1 nodes: checkerboard
distance 1 nodes: line
constant 1 nodes: hexagon
line 1 nodes: crosshatch
cloverleaf 1 nodes: tiledcloverleafs
hexagon 1 nodes: tiledhexagons
heighttonormal 1 nodes: bump
normalmap 1 nodes: bump
rgbtohsv 1 nodes: hsvadjust
luminance 1 nodes: saturate
contrast 1 nodes: colorcorrect
saturate 1 nodes: colorcorrect
hsvadjust 1 nodes: colorcorrect
colorcorrect 1 nodes: colorcorrect
overlay 1 nodes: overlay
surface_unlit 1 nodes: convert
and 1 nodes: xor
or 1 nodes: xor
Non-Graph Nodes: 101
absval, acos, add, and, asin, atan2, bitangent, blur, burn, ceil, cellnoise2d, cellnoise3d, clamp, combine2, combine3, combine4, constant, convert, cos, creatematrix, crossproduct, determinant, difference, disjointover, divide, dodge, dot, dotproduct, exp, extract, floor, fractal3d, frame, geomcolor, geompropvalue, geompropvalueuniform, heighttonormal, hsvtorgb, ifequal, ifgreater, ifgreatereq, image, in, inside, invert, invertmatrix, ln, luminance, magnitude, mask, matte, max, min, minus, mix, modulo, multiply, noise2d, noise3d, normal, normalize, normalmap, not, or, out, outside, over, plus, position, power, premult, ramplr, ramptb, remap, rgbtohsv, rotate2d, rotate3d, round, screen, sign, sin, smoothstep, splitlr, splittb, sqrt, subtract, surface_unlit, surfacematerial, tan, tangent, texcoord, time, transformmatrix, transformnormal, transformpoint, transformvector, transpose, unpremult, viewdirection, worleynoise2d, worleynoise3d
Unimplemented Nodes 1
volumematerial

Node Usage Results for "pbrlib, bxdf"¶

In [4]:
nodes_use, nodes_used_by, nongraph_nodes, unimplemented = getNodeDefUsage(doc, ['pbrlib', 'bxdf'])

printNodeDefUsage(nodes_use, nodes_used_by, nongraph_nodes, unimplemented)
Node Definition Uses
open_pbr_surface 27 nodes: add, anisotropic_vdf, clamp, convert, dielectric_bsdf, divide, extract, generalized_schlick_bsdf, generalized_schlick_edf, ifgreater, layer, ln, max, min, mix, multiply, open_pbr_anisotropy, oren_nayar_diffuse_bsdf, power, sheen_bsdf, sign, sqrt, subsurface_bsdf, subtract, surface, translucent_bsdf, uniform_edf
standard_surface 26 nodes: add, artistic_ior, clamp, conductor_bsdf, convert, dielectric_bsdf, divide, extract, generalized_schlick_edf, ifgreater, layer, luminance, max, mix, multiply, normalize, oren_nayar_diffuse_bsdf, power, rotate3d, roughness_anisotropy, sheen_bsdf, subsurface_bsdf, subtract, surface, translucent_bsdf, uniform_edf
gltf_pbr 21 nodes: add, anisotropic_vdf, convert, dielectric_bsdf, divide, extract, generalized_schlick_bsdf, ifequal, ifgreatereq, layer, ln, max, min, mix, multiply, oren_nayar_diffuse_bsdf, roughness_anisotropy, sheen_bsdf, subtract, surface, uniform_edf
UsdPreviewSurface 20 nodes: add, artistic_ior, conductor_bsdf, convert, dielectric_bsdf, divide, generalized_schlick_bsdf, ifequal, ifgreater, ifgreatereq, layer, mix, multiply, normalmap, oren_nayar_diffuse_bsdf, roughness_anisotropy, subtract, surface, switch, uniform_edf
LamaDielectric 18 nodes: add, anisotropic_vdf, artistic_ior, clamp, combine2, convert, dielectric_bsdf, divide, extract, ifgreatereq, layer, max, multiply, normalize, power, rotate3d, subtract, switch
LamaGeneralizedSchlick 15 nodes: add, anisotropic_vdf, combine2, convert, divide, generalized_schlick_bsdf, ifgreater, layer, max, multiply, normalize, power, rotate3d, subtract, switch
LamaConductor 14 nodes: add, artistic_ior, clamp, combine2, conductor_bsdf, convert, ifgreatereq, max, multiply, normalize, power, rotate3d, subtract, switch
disney_principled 13 nodes: burley_diffuse_bsdf, convert, dielectric_bsdf, generalized_schlick_bsdf, invert, layer, mix, multiply, roughness_anisotropy, roughness_dual, sheen_bsdf, subsurface_bsdf, surface
LamaIridescence 13 nodes: add, clamp, combine2, dielectric_bsdf, ifgreatereq, max, mix, multiply, normal, normalize, power, rotate3d, subtract
open_pbr_surface_to_standard_surface 10 nodes: add, constant, convert, divide, dot, ifgreater, mix, multiply, power, subtract
standard_surface_to_open_pbr_surface 9 nodes: convert, dot, dotproduct, extract, ifequal, ifgreater, mix, multiply, power
standard_surface_to_gltf_pbr 8 nodes: convert, divide, dot, dotproduct, ifequal, ifgreater, mix, multiply
standard_surface_to_UsdPreviewSurface 7 nodes: convert, divide, dot, dotproduct, mix, multiply, subtract
open_pbr_anisotropy 6 nodes: add, combine2, divide, invert, multiply, sqrt
gltf_colorimage 5 nodes: combine3, dot, gltf_image, multiply, separate4
gltf_normalmap 5 nodes: divide, image, multiply, normalmap, place2d
UsdUVTexture 5 nodes: add, convert, image, multiply, separate4
gltf_image 4 nodes: divide, image, multiply, place2d
LamaSheen 4 nodes: add, multiply, power, sheen_bsdf
gltf_iridescence_thickness 3 nodes: extract, gltf_image, mix
LamaDiffuse 3 nodes: mix, multiply, oren_nayar_diffuse_bsdf
LamaAdd 2 nodes: add, multiply
LamaLayer 2 nodes: layer, multiply
LamaSSS 2 nodes: multiply, subsurface_bsdf
LamaSurface 2 nodes: surface, surfacematerial
glossiness_anisotropy 2 nodes: invert, roughness_anisotropy
UsdPrimvarReader 1 nodes: geompropvalue
UsdTransform2d 1 nodes: place2d
LamaEmission 1 nodes: uniform_edf
LamaMix 1 nodes: mix
LamaTranslucent 1 nodes: translucent_bsdf
Node Definition Used by
multiply 23 nodes: LamaAdd, LamaConductor, LamaDielectric, LamaDiffuse, LamaGeneralizedSchlick, LamaIridescence, LamaLayer, LamaSSS, LamaSheen, UsdPreviewSurface, UsdUVTexture, disney_principled, gltf_colorimage, gltf_image, gltf_normalmap, gltf_pbr, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
mix 13 nodes: LamaDiffuse, LamaIridescence, LamaMix, UsdPreviewSurface, disney_principled, gltf_iridescence_thickness, gltf_pbr, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
convert 13 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface, UsdUVTexture, disney_principled, gltf_pbr, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
add 13 nodes: LamaAdd, LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, LamaSheen, UsdPreviewSurface, UsdUVTexture, gltf_pbr, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface
divide 12 nodes: LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface, gltf_image, gltf_normalmap, gltf_pbr, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr
subtract 10 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, UsdPreviewSurface, gltf_pbr, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_UsdPreviewSurface
power 9 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, LamaSheen, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_open_pbr_surface
layer 8 nodes: LamaDielectric, LamaGeneralizedSchlick, LamaLayer, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
dielectric_bsdf 7 nodes: LamaDielectric, LamaIridescence, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
max 7 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, gltf_pbr, open_pbr_surface, standard_surface
ifgreater 7 nodes: LamaGeneralizedSchlick, UsdPreviewSurface, open_pbr_surface, open_pbr_surface_to_standard_surface, standard_surface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
surface 6 nodes: LamaSurface, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
extract 6 nodes: LamaDielectric, gltf_iridescence_thickness, gltf_pbr, open_pbr_surface, standard_surface, standard_surface_to_open_pbr_surface
sheen_bsdf 5 nodes: LamaSheen, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
roughness_anisotropy 5 nodes: UsdPreviewSurface, disney_principled, glossiness_anisotropy, gltf_pbr, standard_surface
generalized_schlick_bsdf 5 nodes: LamaGeneralizedSchlick, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface
oren_nayar_diffuse_bsdf 5 nodes: LamaDiffuse, UsdPreviewSurface, gltf_pbr, open_pbr_surface, standard_surface
uniform_edf 5 nodes: LamaEmission, UsdPreviewSurface, gltf_pbr, open_pbr_surface, standard_surface
ifgreatereq 5 nodes: LamaConductor, LamaDielectric, LamaIridescence, UsdPreviewSurface, gltf_pbr
dot 5 nodes: gltf_colorimage, open_pbr_surface_to_standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
clamp 5 nodes: LamaConductor, LamaDielectric, LamaIridescence, open_pbr_surface, standard_surface
combine2 5 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, open_pbr_anisotropy
rotate3d 5 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, standard_surface
normalize 5 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, standard_surface
subsurface_bsdf 4 nodes: LamaSSS, disney_principled, open_pbr_surface, standard_surface
anisotropic_vdf 4 nodes: LamaDielectric, LamaGeneralizedSchlick, gltf_pbr, open_pbr_surface
ifequal 4 nodes: UsdPreviewSurface, gltf_pbr, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
artistic_ior 4 nodes: LamaConductor, LamaDielectric, UsdPreviewSurface, standard_surface
switch 4 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface
invert 3 nodes: disney_principled, glossiness_anisotropy, open_pbr_anisotropy
image 3 nodes: UsdUVTexture, gltf_image, gltf_normalmap
place2d 3 nodes: UsdTransform2d, gltf_image, gltf_normalmap
translucent_bsdf 3 nodes: LamaTranslucent, open_pbr_surface, standard_surface
conductor_bsdf 3 nodes: LamaConductor, UsdPreviewSurface, standard_surface
dotproduct 3 nodes: standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
ln 2 nodes: gltf_pbr, open_pbr_surface
min 2 nodes: gltf_pbr, open_pbr_surface
gltf_image 2 nodes: gltf_colorimage, gltf_iridescence_thickness
separate4 2 nodes: UsdUVTexture, gltf_colorimage
normalmap 2 nodes: UsdPreviewSurface, gltf_normalmap
sqrt 2 nodes: open_pbr_anisotropy, open_pbr_surface
generalized_schlick_edf 2 nodes: open_pbr_surface, standard_surface
burley_diffuse_bsdf 1 nodes: disney_principled
roughness_dual 1 nodes: disney_principled
combine3 1 nodes: gltf_colorimage
open_pbr_anisotropy 1 nodes: open_pbr_surface
sign 1 nodes: open_pbr_surface
luminance 1 nodes: standard_surface
geompropvalue 1 nodes: UsdPrimvarReader
geompropvalueuniform 1 nodes: UsdPrimvarReader
normal 1 nodes: LamaIridescence
surfacematerial 1 nodes: LamaSurface
constant 1 nodes: open_pbr_surface_to_standard_surface
Non-Graph Nodes: 30
absorption_vdf, add, anisotropic_vdf, artistic_ior, blackbody, burley_diffuse_bsdf, chiang_hair_absorption_from_color, chiang_hair_bsdf, chiang_hair_roughness, conductor_bsdf, conical_edf, deon_hair_absorption_from_melanin, dielectric_bsdf, displacement, generalized_schlick_bsdf, generalized_schlick_edf, layer, light, measured_edf, mix, multiply, oren_nayar_diffuse_bsdf, roughness_anisotropy, roughness_dual, sheen_bsdf, subsurface_bsdf, surface, translucent_bsdf, uniform_edf, volume

Node Usage Results for all Standard Library Nodes¶

In [5]:
nodes_use, nodes_used_by, nongraph_nodes, unimplemented = getNodeDefUsage(doc)

printNodeDefUsage(nodes_use, nodes_used_by, nongraph_nodes, unimplemented)
Node Definition Uses
open_pbr_surface 27 nodes: add, anisotropic_vdf, clamp, convert, dielectric_bsdf, divide, extract, generalized_schlick_bsdf, generalized_schlick_edf, ifgreater, layer, ln, max, min, mix, multiply, open_pbr_anisotropy, oren_nayar_diffuse_bsdf, power, sheen_bsdf, sign, sqrt, subsurface_bsdf, subtract, surface, translucent_bsdf, uniform_edf
standard_surface 26 nodes: add, artistic_ior, clamp, conductor_bsdf, convert, dielectric_bsdf, divide, extract, generalized_schlick_edf, ifgreater, layer, luminance, max, mix, multiply, normalize, oren_nayar_diffuse_bsdf, power, rotate3d, roughness_anisotropy, sheen_bsdf, subsurface_bsdf, subtract, surface, translucent_bsdf, uniform_edf
gltf_pbr 21 nodes: add, anisotropic_vdf, convert, dielectric_bsdf, divide, extract, generalized_schlick_bsdf, ifequal, ifgreatereq, layer, ln, max, min, mix, multiply, oren_nayar_diffuse_bsdf, roughness_anisotropy, sheen_bsdf, subtract, surface, uniform_edf
UsdPreviewSurface 20 nodes: add, artistic_ior, conductor_bsdf, convert, dielectric_bsdf, divide, generalized_schlick_bsdf, ifequal, ifgreater, ifgreatereq, layer, mix, multiply, normalmap, oren_nayar_diffuse_bsdf, roughness_anisotropy, subtract, surface, switch, uniform_edf
LamaDielectric 18 nodes: add, anisotropic_vdf, artistic_ior, clamp, combine2, convert, dielectric_bsdf, divide, extract, ifgreatereq, layer, max, multiply, normalize, power, rotate3d, subtract, switch
LamaGeneralizedSchlick 15 nodes: add, anisotropic_vdf, combine2, convert, divide, generalized_schlick_bsdf, ifgreater, layer, max, multiply, normalize, power, rotate3d, subtract, switch
LamaConductor 14 nodes: add, artistic_ior, clamp, combine2, conductor_bsdf, convert, ifgreatereq, max, multiply, normalize, power, rotate3d, subtract, switch
disney_principled 13 nodes: burley_diffuse_bsdf, convert, dielectric_bsdf, generalized_schlick_bsdf, invert, layer, mix, multiply, roughness_anisotropy, roughness_dual, sheen_bsdf, subsurface_bsdf, surface
LamaIridescence 13 nodes: add, clamp, combine2, dielectric_bsdf, ifgreatereq, max, mix, multiply, normal, normalize, power, rotate3d, subtract
triplanarprojection 13 nodes: absval, add, clamp, combine2, divide, dotproduct, extract, image, multiply, normalize, power, separate3, switch
hexagon 13 nodes: absval, clamp, combine2, constant, dotproduct, extract, ifgreater, min, multiply, separate2, separate3, sqrt, subtract
unifiednoise2d 12 nodes: add, cellnoise2d, combine3, fractal3d, multiply, noise2d, range, rotate2d, separate2, subtract, switch, worleynoise2d
tiledcircles 12 nodes: add, circle, combine2, convert, divide, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
tiledcloverleafs 12 nodes: add, cloverleaf, combine2, convert, divide, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
tiledhexagons 12 nodes: add, combine2, convert, divide, hexagon, ifequal, ifgreater, max, modulo, multiply, separate2, subtract
gooch_shade 11 nodes: add, divide, dotproduct, max, mix, multiply, normal, normalize, power, reflect, viewdirection
ramp 11 nodes: absval, add, atan2, divide, ifgreater, magnitude, multiply, ramp_gradient, separate2, subtract, switch
crosshatch 11 nodes: add, combine2, convert, ifequal, ifgreater, line, max, modulo, multiply, separate2, subtract
open_pbr_surface_to_standard_surface 10 nodes: add, constant, convert, divide, dot, ifgreater, mix, multiply, power, subtract
unifiednoise3d 10 nodes: add, cellnoise3d, fractal3d, multiply, noise3d, range, rotate3d, subtract, switch, worleynoise3d
grid 10 nodes: absval, add, convert, ifequal, ifgreater, min, modulo, multiply, separate2, subtract
standard_surface_to_open_pbr_surface 9 nodes: convert, dot, dotproduct, extract, ifequal, ifgreater, mix, multiply, power
standard_surface_to_gltf_pbr 8 nodes: convert, divide, dot, dotproduct, ifequal, ifgreater, mix, multiply
range 8 nodes: absval, clamp, divide, ifequal, multiply, power, remap, sign
standard_surface_to_UsdPreviewSurface 7 nodes: convert, divide, dot, dotproduct, mix, multiply, subtract
ramp_gradient 7 nodes: clamp, ifgreater, ifgreatereq, mix, remap, smoothstep, switch
line 7 nodes: clamp, distance, divide, dotproduct, ifgreater, multiply, subtract
open_pbr_anisotropy 6 nodes: add, combine2, divide, invert, multiply, sqrt
checkerboard 6 nodes: dotproduct, floor, mix, modulo, multiply, subtract
cloverleaf 6 nodes: add, circle, combine2, max, separate2, subtract
refract 6 nodes: add, dotproduct, ifgreater, multiply, sqrt, subtract
gltf_colorimage 5 nodes: combine3, dot, gltf_image, multiply, separate4
gltf_normalmap 5 nodes: divide, image, multiply, normalmap, place2d
UsdUVTexture 5 nodes: add, convert, image, multiply, separate4
facingratio 5 nodes: absval, dotproduct, ifequal, invert, multiply
place2d 5 nodes: add, divide, rotate2d, subtract, switch
hsvadjust 5 nodes: add, convert, hsvtorgb, multiply, rgbtohsv
colorcorrect 5 nodes: colorcorrect, combine3, combine4, separate3, separate4
gltf_image 4 nodes: divide, image, multiply, place2d
LamaSheen 4 nodes: add, multiply, power, sheen_bsdf
g18_rec709_to_lin_rec709 4 nodes: combine2, convert, extract, g18_rec709_to_lin_rec709
g22_rec709_to_lin_rec709 4 nodes: combine2, convert, extract, g22_rec709_to_lin_rec709
rec709_display_to_lin_rec709 4 nodes: combine2, convert, extract, rec709_display_to_lin_rec709
acescg_to_lin_rec709 4 nodes: acescg_to_lin_rec709, combine2, convert, extract
g22_ap1_to_lin_rec709 4 nodes: combine2, convert, extract, g22_ap1_to_lin_rec709
srgb_texture_to_lin_rec709 4 nodes: combine2, convert, extract, srgb_texture_to_lin_rec709
lin_adobergb_to_lin_rec709 4 nodes: combine2, convert, extract, lin_adobergb_to_lin_rec709
adobergb_to_lin_rec709 4 nodes: adobergb_to_lin_rec709, combine2, convert, extract
srgb_displayp3_to_lin_rec709 4 nodes: combine2, convert, extract, srgb_displayp3_to_lin_rec709
lin_displayp3_to_lin_rec709 4 nodes: combine2, convert, extract, lin_displayp3_to_lin_rec709
tiledimage 4 nodes: divide, image, multiply, subtract
randomfloat 4 nodes: cellnoise2d, combine2, convert, range
circle 4 nodes: dotproduct, ifgreater, multiply, subtract
safepower 4 nodes: absval, multiply, power, sign
gltf_iridescence_thickness 3 nodes: extract, gltf_image, mix
LamaDiffuse 3 nodes: mix, multiply, oren_nayar_diffuse_bsdf
ramp4 3 nodes: clamp, extract, mix
trianglewave 3 nodes: absval, modulo, subtract
reflect 3 nodes: dotproduct, multiply, subtract
smoothstep 3 nodes: combine4, separate4, smoothstep
contrast 3 nodes: add, multiply, subtract
overlay 3 nodes: combine4, overlay, separate4
xor 3 nodes: and, not, or
LamaAdd 2 nodes: add, multiply
LamaLayer 2 nodes: layer, multiply
LamaSSS 2 nodes: multiply, subsurface_bsdf
LamaSurface 2 nodes: surface, surfacematerial
glossiness_anisotropy 2 nodes: invert, roughness_anisotropy
noise2d 2 nodes: convert, noise2d
noise3d 2 nodes: convert, noise3d
fractal3d 2 nodes: convert, fractal3d
randomcolor 2 nodes: convert, randomcolor
bump 2 nodes: heighttonormal, normalmap
distance 2 nodes: magnitude, subtract
saturate 2 nodes: luminance, mix
convert 2 nodes: convert, surface_unlit
UsdPrimvarReader 1 nodes: geompropvalue
UsdTransform2d 1 nodes: place2d
LamaEmission 1 nodes: uniform_edf
LamaMix 1 nodes: mix
LamaTranslucent 1 nodes: translucent_bsdf
switch 1 nodes: ifgreater
separate2 1 nodes: extract
separate3 1 nodes: extract
separate4 1 nodes: extract
Node Definition Used by
multiply 48 nodes: LamaAdd, LamaConductor, LamaDielectric, LamaDiffuse, LamaGeneralizedSchlick, LamaIridescence, LamaLayer, LamaSSS, LamaSheen, UsdPreviewSurface, UsdUVTexture, checkerboard, circle, colorcorrect, contrast, crosshatch, disney_principled, facingratio, gltf_colorimage, gltf_image, gltf_normalmap, gltf_pbr, gooch_shade, grid, hexagon, hsvadjust, line, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, overlay, ramp, randomfloat, range, reflect, refract, safepower, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, triplanarprojection, unifiednoise2d, unifiednoise3d
convert 35 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface, UsdUVTexture, acescg_to_lin_rec709, adobergb_to_lin_rec709, convert, crosshatch, disney_principled, fractal3d, g18_rec709_to_lin_rec709, g22_ap1_to_lin_rec709, g22_rec709_to_lin_rec709, gltf_pbr, grid, hsvadjust, lin_adobergb_to_lin_rec709, lin_displayp3_to_lin_rec709, noise2d, noise3d, open_pbr_surface, open_pbr_surface_to_standard_surface, randomcolor, randomfloat, rec709_display_to_lin_rec709, srgb_displayp3_to_lin_rec709, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface, tiledcircles, tiledcloverleafs, tiledhexagons
subtract 32 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, UsdPreviewSurface, checkerboard, circle, cloverleaf, colorcorrect, contrast, crosshatch, distance, gltf_pbr, grid, hexagon, line, open_pbr_surface, open_pbr_surface_to_standard_surface, overlay, place2d, ramp, reflect, refract, standard_surface, standard_surface_to_UsdPreviewSurface, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, trianglewave, unifiednoise2d, unifiednoise3d
add 31 nodes: LamaAdd, LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, LamaSheen, UsdPreviewSurface, UsdUVTexture, cloverleaf, colorcorrect, contrast, crosshatch, gltf_pbr, gooch_shade, grid, hsvadjust, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, place2d, ramp, randomcolor, refract, srgb_texture_to_lin_rec709, standard_surface, tiledcircles, tiledcloverleafs, tiledhexagons, triplanarprojection, unifiednoise2d, unifiednoise3d
combine2 25 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, acescg_to_lin_rec709, adobergb_to_lin_rec709, cloverleaf, convert, crosshatch, g18_rec709_to_lin_rec709, g22_ap1_to_lin_rec709, g22_rec709_to_lin_rec709, hexagon, lin_adobergb_to_lin_rec709, lin_displayp3_to_lin_rec709, open_pbr_anisotropy, randomfloat, rec709_display_to_lin_rec709, smoothstep, srgb_displayp3_to_lin_rec709, srgb_texture_to_lin_rec709, tiledcircles, tiledcloverleafs, tiledhexagons, triplanarprojection
divide 24 nodes: LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface, adobergb_to_lin_rec709, gltf_image, gltf_normalmap, gltf_pbr, gooch_shade, line, open_pbr_anisotropy, open_pbr_surface, open_pbr_surface_to_standard_surface, place2d, ramp, range, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, tiledcircles, tiledcloverleafs, tiledhexagons, tiledimage, triplanarprojection
extract 23 nodes: LamaDielectric, acescg_to_lin_rec709, adobergb_to_lin_rec709, convert, g18_rec709_to_lin_rec709, g22_ap1_to_lin_rec709, g22_rec709_to_lin_rec709, gltf_iridescence_thickness, gltf_pbr, hexagon, lin_adobergb_to_lin_rec709, lin_displayp3_to_lin_rec709, open_pbr_surface, ramp4, rec709_display_to_lin_rec709, separate2, separate3, separate4, srgb_displayp3_to_lin_rec709, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_open_pbr_surface, triplanarprojection
mix 20 nodes: LamaDiffuse, LamaIridescence, LamaMix, UsdPreviewSurface, checkerboard, disney_principled, gltf_iridescence_thickness, gltf_pbr, gooch_shade, open_pbr_surface, open_pbr_surface_to_standard_surface, overlay, ramp4, ramp_gradient, saturate, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
power 20 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, LamaSheen, adobergb_to_lin_rec709, colorcorrect, g18_rec709_to_lin_rec709, g22_ap1_to_lin_rec709, g22_rec709_to_lin_rec709, gooch_shade, open_pbr_surface, open_pbr_surface_to_standard_surface, range, rec709_display_to_lin_rec709, safepower, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_open_pbr_surface, triplanarprojection
ifgreater 20 nodes: LamaGeneralizedSchlick, UsdPreviewSurface, circle, crosshatch, grid, hexagon, line, open_pbr_surface, open_pbr_surface_to_standard_surface, ramp, ramp_gradient, refract, srgb_texture_to_lin_rec709, standard_surface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface, switch, tiledcircles, tiledcloverleafs, tiledhexagons
max 19 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, adobergb_to_lin_rec709, cloverleaf, crosshatch, g18_rec709_to_lin_rec709, g22_ap1_to_lin_rec709, g22_rec709_to_lin_rec709, gltf_pbr, gooch_shade, open_pbr_surface, rec709_display_to_lin_rec709, srgb_texture_to_lin_rec709, standard_surface, tiledcircles, tiledcloverleafs, tiledhexagons
ifequal 12 nodes: UsdPreviewSurface, convert, crosshatch, facingratio, gltf_pbr, grid, range, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface, tiledcircles, tiledcloverleafs, tiledhexagons
dotproduct 12 nodes: checkerboard, circle, facingratio, gooch_shade, hexagon, line, reflect, refract, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface, triplanarprojection
clamp 11 nodes: LamaConductor, LamaDielectric, LamaIridescence, hexagon, line, open_pbr_surface, ramp4, ramp_gradient, range, standard_surface, triplanarprojection
separate2 11 nodes: cloverleaf, convert, crosshatch, grid, hexagon, ramp, smoothstep, tiledcircles, tiledcloverleafs, tiledhexagons, unifiednoise2d
switch 10 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, UsdPreviewSurface, place2d, ramp, ramp_gradient, triplanarprojection, unifiednoise2d, unifiednoise3d
layer 8 nodes: LamaDielectric, LamaGeneralizedSchlick, LamaLayer, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
combine3 8 nodes: colorcorrect, convert, gltf_colorimage, overlay, randomcolor, smoothstep, srgb_texture_to_lin_rec709, unifiednoise2d
absval 8 nodes: facingratio, grid, hexagon, ramp, range, safepower, trianglewave, triplanarprojection
dielectric_bsdf 7 nodes: LamaDielectric, LamaIridescence, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
ifgreatereq 7 nodes: LamaConductor, LamaDielectric, LamaIridescence, UsdPreviewSurface, gltf_pbr, overlay, ramp_gradient
normalize 7 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, gooch_shade, standard_surface, triplanarprojection
constant 7 nodes: acescg_to_lin_rec709, hexagon, lin_adobergb_to_lin_rec709, lin_displayp3_to_lin_rec709, open_pbr_surface_to_standard_surface, srgb_displayp3_to_lin_rec709, srgb_texture_to_lin_rec709
separate3 7 nodes: colorcorrect, convert, hexagon, overlay, smoothstep, srgb_texture_to_lin_rec709, triplanarprojection
modulo 7 nodes: checkerboard, crosshatch, grid, tiledcircles, tiledcloverleafs, tiledhexagons, trianglewave
surface 6 nodes: LamaSurface, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
separate4 6 nodes: UsdUVTexture, colorcorrect, convert, gltf_colorimage, overlay, smoothstep
rotate3d 6 nodes: LamaConductor, LamaDielectric, LamaGeneralizedSchlick, LamaIridescence, standard_surface, unifiednoise3d
sheen_bsdf 5 nodes: LamaSheen, disney_principled, gltf_pbr, open_pbr_surface, standard_surface
roughness_anisotropy 5 nodes: UsdPreviewSurface, disney_principled, glossiness_anisotropy, gltf_pbr, standard_surface
generalized_schlick_bsdf 5 nodes: LamaGeneralizedSchlick, UsdPreviewSurface, disney_principled, gltf_pbr, open_pbr_surface
oren_nayar_diffuse_bsdf 5 nodes: LamaDiffuse, UsdPreviewSurface, gltf_pbr, open_pbr_surface, standard_surface
uniform_edf 5 nodes: LamaEmission, UsdPreviewSurface, gltf_pbr, open_pbr_surface, standard_surface
dot 5 nodes: gltf_colorimage, open_pbr_surface_to_standard_surface, standard_surface_to_UsdPreviewSurface, standard_surface_to_gltf_pbr, standard_surface_to_open_pbr_surface
image 5 nodes: UsdUVTexture, gltf_image, gltf_normalmap, tiledimage, triplanarprojection
range 5 nodes: colorcorrect, randomcolor, randomfloat, unifiednoise2d, unifiednoise3d
invert 4 nodes: disney_principled, facingratio, glossiness_anisotropy, open_pbr_anisotropy
subsurface_bsdf 4 nodes: LamaSSS, disney_principled, open_pbr_surface, standard_surface
anisotropic_vdf 4 nodes: LamaDielectric, LamaGeneralizedSchlick, gltf_pbr, open_pbr_surface
min 4 nodes: gltf_pbr, grid, hexagon, open_pbr_surface
sqrt 4 nodes: hexagon, open_pbr_anisotropy, open_pbr_surface, refract
artistic_ior 4 nodes: LamaConductor, LamaDielectric, UsdPreviewSurface, standard_surface
transformmatrix 4 nodes: acescg_to_lin_rec709, lin_adobergb_to_lin_rec709, lin_displayp3_to_lin_rec709, srgb_displayp3_to_lin_rec709
combine4 4 nodes: colorcorrect, convert, overlay, smoothstep
place2d 3 nodes: UsdTransform2d, gltf_image, gltf_normalmap
normalmap 3 nodes: UsdPreviewSurface, bump, gltf_normalmap
translucent_bsdf 3 nodes: LamaTranslucent, open_pbr_surface, standard_surface
sign 3 nodes: open_pbr_surface, range, safepower
conductor_bsdf 3 nodes: LamaConductor, UsdPreviewSurface, standard_surface
fractal3d 3 nodes: fractal3d, unifiednoise2d, unifiednoise3d
ln 2 nodes: gltf_pbr, open_pbr_surface
gltf_image 2 nodes: gltf_colorimage, gltf_iridescence_thickness
generalized_schlick_edf 2 nodes: open_pbr_surface, standard_surface
luminance 2 nodes: saturate, standard_surface
normal 2 nodes: LamaIridescence, gooch_shade
acescg_to_lin_rec709 2 nodes: acescg_to_lin_rec709, g22_ap1_to_lin_rec709
srgb_texture_to_lin_rec709 2 nodes: srgb_displayp3_to_lin_rec709, srgb_texture_to_lin_rec709
lin_adobergb_to_lin_rec709 2 nodes: adobergb_to_lin_rec709, lin_adobergb_to_lin_rec709
magnitude 2 nodes: distance, ramp
remap 2 nodes: ramp_gradient, range
smoothstep 2 nodes: ramp_gradient, smoothstep
noise2d 2 nodes: noise2d, unifiednoise2d
noise3d 2 nodes: noise3d, unifiednoise3d
cellnoise2d 2 nodes: randomfloat, unifiednoise2d
rotate2d 2 nodes: place2d, unifiednoise2d
hsvtorgb 2 nodes: hsvadjust, randomcolor
circle 2 nodes: cloverleaf, tiledcircles
not 2 nodes: convert, xor
burley_diffuse_bsdf 1 nodes: disney_principled
roughness_dual 1 nodes: disney_principled
open_pbr_anisotropy 1 nodes: open_pbr_surface
geompropvalue 1 nodes: UsdPrimvarReader
geompropvalueuniform 1 nodes: UsdPrimvarReader
surfacematerial 1 nodes: LamaSurface
g18_rec709_to_lin_rec709 1 nodes: g18_rec709_to_lin_rec709
g22_rec709_to_lin_rec709 1 nodes: g22_rec709_to_lin_rec709
rec709_display_to_lin_rec709 1 nodes: rec709_display_to_lin_rec709
g22_ap1_to_lin_rec709 1 nodes: g22_ap1_to_lin_rec709
adobergb_to_lin_rec709 1 nodes: adobergb_to_lin_rec709
srgb_displayp3_to_lin_rec709 1 nodes: srgb_displayp3_to_lin_rec709
lin_displayp3_to_lin_rec709 1 nodes: lin_displayp3_to_lin_rec709
viewdirection 1 nodes: gooch_shade
reflect 1 nodes: gooch_shade
ramp_gradient 1 nodes: ramp
atan2 1 nodes: ramp
worleynoise2d 1 nodes: unifiednoise2d
cellnoise3d 1 nodes: unifiednoise3d
worleynoise3d 1 nodes: unifiednoise3d
ceil 1 nodes: randomcolor
randomfloat 1 nodes: randomcolor
randomcolor 1 nodes: randomcolor
floor 1 nodes: checkerboard
distance 1 nodes: line
line 1 nodes: crosshatch
cloverleaf 1 nodes: tiledcloverleafs
hexagon 1 nodes: tiledhexagons
heighttonormal 1 nodes: bump
rgbtohsv 1 nodes: hsvadjust
contrast 1 nodes: colorcorrect
saturate 1 nodes: colorcorrect
hsvadjust 1 nodes: colorcorrect
colorcorrect 1 nodes: colorcorrect
overlay 1 nodes: overlay
surface_unlit 1 nodes: convert
and 1 nodes: xor
or 1 nodes: xor
Non-Graph Nodes: 131
absorption_vdf, absval, acos, add, and, anisotropic_vdf, artistic_ior, asin, atan2, bitangent, blackbody, blur, burley_diffuse_bsdf, burn, ceil, cellnoise2d, cellnoise3d, chiang_hair_absorption_from_color, chiang_hair_bsdf, chiang_hair_roughness, clamp, combine2, combine3, combine4, conductor_bsdf, conical_edf, constant, convert, cos, creatematrix, crossproduct, deon_hair_absorption_from_melanin, determinant, dielectric_bsdf, difference, directional_light, disjointover, displacement, divide, dodge, dot, dotproduct, exp, extract, floor, fractal3d, frame, generalized_schlick_bsdf, generalized_schlick_edf, geomcolor, geompropvalue, geompropvalueuniform, heighttonormal, hsvtorgb, ifequal, ifgreater, ifgreatereq, image, in, inside, invert, invertmatrix, layer, light, ln, luminance, magnitude, mask, matte, max, measured_edf, min, minus, mix, modulo, multiply, noise2d, noise3d, normal, normalize, normalmap, not, or, oren_nayar_diffuse_bsdf, out, outside, over, plus, point_light, position, power, premult, ramplr, ramptb, remap, rgbtohsv, rotate2d, rotate3d, roughness_anisotropy, roughness_dual, round, screen, sheen_bsdf, sign, sin, smoothstep, splitlr, splittb, spot_light, sqrt, subsurface_bsdf, subtract, surface, surface_unlit, surfacematerial, tan, tangent, texcoord, time, transformmatrix, transformnormal, transformpoint, transformvector, translucent_bsdf, transpose, uniform_edf, unpremult, viewdirection, volume, worleynoise2d, worleynoise3d
Unimplemented Nodes 1
volumematerial