You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move Standard Library Shader Nodes to StandardNodes doc (#2278)
Move the description of Standard Library Shader Nodes from the main Specification doc to the new StandardNodes doc. Adjust other text and links as needed.
@@ -657,15 +656,17 @@ MaterialX also supports the following additional attributes for Output elements
657
656
658
657
## Standard Nodes
659
658
660
-
A core part of MaterialX is its set of Standard Nodes, divided into four categories: Source nodes, Operator Nodes, Physically-Based Shading nodes, and NPR (non-photorealistic) Shading nodes.
659
+
A core part of MaterialX is its set of Standard Nodes, divided into five categories: Source nodes, Operator nodes, Standard Shader nodes, Physically-Based Shading nodes, and NPR (non-photorealistic) Shading nodes.
661
660
662
-
**Source nodes** use external data and/or procedural functions to form an output; they do not have any required inputs. Standard Source Nodes are grouped into the following classifications: [Texture Nodes](./MaterialX.StandardNodes.md#texture-nodes), [Procedural Nodes](./MaterialX.StandardNodes.md#procedural-nodes), [Noise Nodes](./MaterialX.StandardNodes.md#noise-nodes), [Shape Nodes](./MaterialX.StandardNodes.md#shape-nodes), [Geometric Nodes](./MaterialX.StandardNodes.md#geometric-nodes) and [Application Nodes](./MaterialX.StandardNodes.md#application-nodes).
661
+
[**Source nodes**](./MaterialX.StandardNodes.md#standard-source-nodes) use external data and/or procedural functions to form an output; they do not have any required inputs. Standard Source Nodes are grouped into the following classifications: [Texture Nodes](./MaterialX.StandardNodes.md#texture-nodes), [Procedural Nodes](./MaterialX.StandardNodes.md#procedural-nodes), [Noise Nodes](./MaterialX.StandardNodes.md#noise-nodes), [Shape Nodes](./MaterialX.StandardNodes.md#shape-nodes), [Geometric Nodes](./MaterialX.StandardNodes.md#geometric-nodes) and [Application Nodes](./MaterialX.StandardNodes.md#application-nodes).
663
662
664
-
**Operator nodes** process one or more required input streams to form an output. Standard Operator Nodes are grouped into the following classifications: [Math Nodes](./MaterialX.StandardNodes.md#math-nodes), [Logical Operator Nodes](./MaterialX.StandardNodes.md#logical-operator-nodes), [Adjustment Nodes](./MaterialX.StandardNodes.md#adjustment-nodes), [Compositing Nodes](./MaterialX.StandardNodes.md#compositing-nodes), [Conditional Nodes](./MaterialX.StandardNodes.md#conditional-nodes), [Channel Nodes](./MaterialX.StandardNodes.md#channel-nodes) and [Convolution Nodes](./MaterialX.StandardNodes.md#convolution-nodes).
663
+
[**Operator nodes**](./MaterialX.StandardNodes.md#standard-operator-nodes) process one or more input streams to form an output. Standard Operator Nodes are grouped into the following classifications: [Math Nodes](./MaterialX.StandardNodes.md#math-nodes), [Logical Operator Nodes](./MaterialX.StandardNodes.md#logical-operator-nodes), [Adjustment Nodes](./MaterialX.StandardNodes.md#adjustment-nodes), [Compositing Nodes](./MaterialX.StandardNodes.md#compositing-nodes), [Conditional Nodes](./MaterialX.StandardNodes.md#conditional-nodes), [Channel Nodes](./MaterialX.StandardNodes.md#channel-nodes) and [Convolution Nodes](./MaterialX.StandardNodes.md#convolution-nodes).
665
664
666
-
**Physically-Based Shading nodes** are shader-semantic nodes implementing a number of widely-used [BSDF/BSSRDF](./MaterialX.PBRSpec.md#bsdf-nodes), [emission](./MaterialX.PBRSpec.md#edf-nodes)and [volume](./MaterialX.PBRSpec.md#vdf-nodes) distribution functions and [utility nodes](./MaterialX.PBRSpec.md#utility-nodes) useful in constructing complex layered rendering shaders using node graphs, as well as a set of complete [PBR Shader Nodes](./MaterialX.PBRSpec.md#pbr-shader-nodes) implementing open standard shading models.
665
+
[**Standard Shader nodes**](./MaterialX.StandardNodes.md#standard-shader-nodes)comprise non-shading shaders such as for displacement, and shaders which do not respond to external illumination.
667
666
668
-
**NPR Shading nodes** are operations that are desirable in non-photorealistic shading styles but which cannot be implemented within certain rendering constructs. These include [NPR Application Nodes](./MaterialX.NPRSpec.md#npr-application-nodes), [NPR Utility Nodes](./MaterialX.NPRSpec.md#npr-utility-nodes) and [NPR Shading Nodes](./MaterialX.NPRSpec.md#npr-shading-nodes).
667
+
[**Physically-Based Shading nodes**](./MaterialX.PBRSpec.md) are shader-semantic nodes implementing a number of widely-used [BSDF/BSSRDF](./MaterialX.PBRSpec.md#bsdf-nodes), [emission](./MaterialX.PBRSpec.md#edf-nodes) and [volume](./MaterialX.PBRSpec.md#vdf-nodes) distribution functions and [utility nodes](./MaterialX.PBRSpec.md#utility-nodes) useful in constructing complex layered rendering shaders using node graphs, as well as a set of complete [PBR Shader Nodes](./MaterialX.PBRSpec.md#pbr-shader-nodes) implementing open standard shading models.
668
+
669
+
[**NPR Shading nodes**](./MaterialX.NPRSpec.md) are operations that are desirable in non-photorealistic shading styles but which cannot be implemented within certain rendering constructs. These include [NPR Application Nodes](./MaterialX.NPRSpec.md#npr-application-nodes), [NPR Utility Nodes](./MaterialX.NPRSpec.md#npr-utility-nodes) and [NPR Shading Nodes](./MaterialX.NPRSpec.md#npr-shading-nodes).
669
670
670
671
671
672
@@ -1313,33 +1314,7 @@ As with non-shader custom nodes, **Input** elements are used within a <nodede
1313
1314
1314
1315
An input with a shader-semantic type may be given a value of "" to indicate no shader node is connected to this input; this is typically the default for shader-semantic inputs of operator nodes. It is up to applications to decide what to do with unconnected shader-semantic inputs.
1315
1316
1316
-
1317
-
1318
-
### Standard Library Shader Nodes
1319
-
1320
-
The Standard MaterialX Library defines the following nodes and node variants operating on "shader"-semantic types. Standard library shaders do not respond to external illumination; please refer to the [**MaterialX Physically Based Shading Nodes**](./MaterialX.PBRSpec.md#materialx-pbs-library) document for definitions of additional nodes and shader constructors which do respond to illumination.
1321
-
1322
-
<aid="node-surface-unlit"> </a>
1323
-
1324
-
***`surface_unlit`**: an unlit surface shader node, representing a surface that can emit and transmit light, but does not receive illumination from light sources or other surfaces. Output type surfaceshader.
1325
-
*`emission` (float): the surface emission amount; default is 1.0
1326
-
*`emission_color` (color3): surface emission color; default is (1, 1, 1)
1327
-
*`transmission` (float): the surface transmission amount; default is 0
1328
-
*`transmission_color` (color3): surface transmission color; default is (1, 1, 1)
1329
-
*`opacity` (float): surface cutout opacity; default is 1.0
1330
-
1331
-
<aid="node-displacement"> </a>
1332
-
1333
-
***`displacement`**: Constructs a displacement shader describing geometric modification to surfaces. Output type "displacementshader".
1334
-
*`displacement` (float or vector3): Scalar (along the surface normal direction) or vector displacement (in (dPdu, dPdv, N) tangent/normal space) for each position. Default is 0.
1335
-
*`scale` (float): Scale factor for the displacement vector. Default is 1.0.
1336
-
1337
-
<aid="node-mix-shader"> </a>
1338
-
1339
-
***`mix`**: linear blend between two surface/displacement/volumeshader closures.
1340
-
*`bg` (surface/displacement/volumeshader): the name of the background shader-semantic node
1341
-
*`fg` (surface/displacement/volumeshader): the name of the foreground shader-semantic node
1342
-
*`mix` (float): the blending factor used to mix the two input closures
1317
+
Please refer to [**Standard Shader Nodes**](./MaterialX.StandardNodes.md#standard-shader-nodes), [**Physically-Based Shading Nodes**](./MaterialX.PBRSpec.md) and [**NPR Shading Nodes**](./MaterialX.NPRSpec.md) for descriptions of Shader Nodes defined by MaterialX.
@@ -1090,7 +1092,7 @@ The Mix node takes two 1-4 channel inputs `fg` and `bg` plus a separate 1-channe
1090
1092
*`mix` (float or same type as `bg`): the 0-1 mixing value; default is 0.
1091
1093
1092
1094
1093
-
See also the [Standard Library Shader Nodes](./MaterialX.Specification.md#standard-library-shader-nodes) section of the main Specification document for additional `mix`operator variants supporting shader-semantic types.
1095
+
See also the [Standard Shader Nodes](#standard-shader-nodes) section below for additional shader-semantic variants of the [`mix`node](#node-mix-shader).
1094
1096
1095
1097
1096
1098
@@ -1227,4 +1229,31 @@ Convolution nodes have one input named "in", and apply a defined convolution fun
1227
1229
*`in` (float): the input value or nodename
1228
1230
*`scale` (float): the scale of normal map deflections relative to the gradient of the height map. Default is 1.0.
1229
1231
1232
+
<br>
1233
+
1234
+
1235
+
# Standard Shader Nodes
1236
+
1237
+
The Standard MaterialX Library defines the following nodes and node variants operating on "shader"-semantic types. Standard library shaders do not respond to external illumination; please refer to the [**MaterialX Physically Based Shading Nodes**](./MaterialX.PBRSpec.md#materialx-pbs-library) document for definitions of additional nodes and shader constructors which do respond to illumination, as well as [**MaterialX NPR Shading Nodes**](./MaterialX.NPRSpec.md) for definitions of shaders and nodes applicable to non-photorealistic rendering.
1238
+
1239
+
<aid="node-surface-unlit"> </a>
1240
+
1241
+
***`surface_unlit`**: an unlit surface shader node, representing a surface that can emit and transmit light, but does not receive illumination from light sources or other surfaces. Output type surfaceshader.
1242
+
*`emission` (float): the surface emission amount; default is 1.0
1243
+
*`emission_color` (color3): surface emission color; default is (1, 1, 1)
1244
+
*`transmission` (float): the surface transmission amount; default is 0
1245
+
*`transmission_color` (color3): surface transmission color; default is (1, 1, 1)
1246
+
*`opacity` (float): surface cutout opacity; default is 1.0
1247
+
1248
+
<aid="node-displacement"> </a>
1249
+
1250
+
***`displacement`**: Constructs a displacement shader describing geometric modification to surfaces. Output type "displacementshader".
1251
+
*`displacement` (float or vector3): Scalar (along the surface normal direction) or vector displacement (in (dPdu, dPdv, N) tangent/normal space) for each position. Default is 0.
1252
+
*`scale` (float): Scale factor for the displacement vector. Default is 1.0.
1253
+
1254
+
<aid="node-mix-shader"> </a>
1230
1255
1256
+
***`mix`**: linear blend between two surface/displacement/volumeshader closures.
1257
+
*`bg` (surface/displacement/volumeshader): the name of the background shader-semantic node
1258
+
*`fg` (surface/displacement/volumeshader): the name of the foreground shader-semantic node
1259
+
*`mix` (float): the blending factor used to mix the two input closures
0 commit comments