====== Node Graph Contexts ====== **This is a crucial part of creating a node graph.** The context defines which capabilities a node graph has, which also affects which nodes can be added to it. For example, only if the context of the node graph evaluation allows for raytracing, will you be able to add nodes that require raytracing. The nodeMeister node only allows for a nodeMeister graph to be used if the graph that is hosting the node **at least** matches **all** of the contexts of the nodeMeister graph. You can select multiple contexts for a node graph, but please note, while this may make more nodes available, this will also restrict where the nodeMeister graph may be used. As a general rule of thumb, **don't** set a context at all unless you specifically need to use a node that requires a specific context. The predefined contexts are as follows, more may be available in future versions: * **All** The Node is available in all contexts. * **Mesh** The Node is available in contexts where a physical mesh is provided. * **Spot** The Node is available in contexts where virtual spot geometry is provided. * **Surface** The Node is available in contexts where virtual or real surface geometry is provided. A surface requires proper normals. * **Raytrace** The Node is available in contexts where ray-tracing functions are provided. * **Light** Undocumented - available in a light context only. * **OpenVDB** Undocumented - available in a OpenVDB context only ^Node Editor ^Contexts^ |Shading| Mesh/Spot/Surface/Raytrace| |Motion|Mesh| |Displacement|Mesh/Spot/Surface| |Light|Spot/Light| |Edges|All| |OpenVDB|OpenVDB| You can query the context of any node graph by adding the Context Info node (see [[nodemeister2018:utilities|]]) to it. ===== Examples ===== **Material nodes** require both the **Raytrace** and **Surface** context. <-utilities|^|^presets|->