Skip to content

Commit 0062647

Browse files
Add hextiled node documentation (AcademySoftwareFoundation#2649)
This PR adds documentation for hextiledimage and hextilednormalmap.
1 parent 443eb51 commit 0062647

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

documents/Specification/MaterialX.StandardNodes.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,23 @@ The type of the <image> node determines the number of channels output, which
102102
* `viewdir` (vector3): the view direction determining the value sampled from the projected equiangular map.
103103
* `rotation` (float): the longitudinal sampling offset, in degrees.
104104

105+
<a id="node-hextiledimage"> </a>
106+
107+
* **`hextiledimage`**: samples data from a single image, with provisions for hex-tiling and randomizing the image across uv space.
108+
* `file` (uniform filename): the URI of an image file. The filename can include one or more substitutions to change the file name (including frame number) that is accessed, as described in the [Filename Substitutions](./MaterialX.Specification.md#filename-substitutions) section in the main Specification document.
109+
* `default` (color<em>N</em>): a default value to use if the `file` reference can not be resolved (e.g. if a &lt;geomtoken>, [interfacetoken] or {hostattr} is included in the filename but no substitution value or default is defined, or if the resolved file URI cannot be read). The `default` value must be the same type as the `<hextiledimage>` element itself. If `default` is not defined, the default color value will be 0.0 in all channels.
110+
* `texcoord` (vector2): the name of a vector2-type node specifying the 2D texture coordinate at which the image data is read. Default is to use the current u,v coordinate.
111+
* `tiling` (vector2): the tiling rate for the hexagon tiles along the U and V axes. Default value is (1.0, 1.0).
112+
* `rotation` (float): per-tile rotation randomness in degrees. Default is 0.0.
113+
* `rotationrange` (vector2): [min, max] range in degrees used to randomize rotation for each tile. Default is (0.0, 360.0).
114+
* `scale` (float): per-tile scale randomness multiplier applied to tile size. Default is 1.0.
115+
* `scalerange` (vector2): [min, max] range of scale multipliers used to randomize tile scale. Default is (0.5, 2.0).
116+
* `offset` (float): per-tile translation randomness in UV units. Default is 0.0.
117+
* `offsetrange` (vector2): [min, max] range of offset values in UV units used to randomize tile positions. Default is (0.0, 1.0).
118+
* `falloff` (float): falloff width used to blend neighboring tiles at their edges; larger values produce smoother blends. Default is 0.5.
119+
* `falloffcontrast` (float): contrast applied to the falloff blending to sharpen (values >1) or soften (values <1) transitions. Default is 0.5.
120+
* `lumacoeffs` (uniform color3): the luma coefficients of the current working color space; if no specific color space can be determined, the ACEScg (ap1) luma coefficients [0.2722287, 0.6740818, 0.0536895] will be used. Applications which support color management systems may choose to retrieve the luma coefficients of the working colorspace from the CMS to pass to the &lt;luminance> node's implementation directly, rather than exposing it to the user.
121+
105122
<a id="node-triplanarprojection"> </a>
106123

107124
* **`triplanarprojection`** (NG): samples data from three images (or layers within multi-layer images), and projects a tiled representation of the images along each of the three respective coordinate axes, computing a weighted blend of the three samples using the geometric normal.
@@ -767,6 +784,26 @@ Math nodes have one or two spatially-varying inputs, and are used to perform a m
767784
* `tangent` (vector3): surface tangent vector, defaults to the current world-space tangent vector.
768785
* `bitangent` (vector3): surface bitangent vector, defaults to the current world-space bitangent vector.
769786

787+
<a id="node-hextilednormalmap"> </a>
788+
789+
* **`hextilednormalmap`**: samples data from a single normalmap, with provisions for hex-tiling and randomizing the normalmap across uv space.
790+
* `file` (uniform filename): the URI of an image file. The filename can include one or more substitutions to change the file name (including frame number) that is accessed, as described in the [Filename Substitutions](./MaterialX.Specification.md#filename-substitutions) section in the main Specification document.
791+
* `default` (vector3): a default value to use if the `file` reference can not be resolved (e.g. if a &lt;geomtoken>, [interfacetoken] or {hostattr} is included in the filename but no substitution value or default is defined, or if the resolved file URI cannot be read). Default is (0.5, 0.5, 1.0).
792+
* `texcoord` (vector2): the name of a vector2-type node specifying the 2D texture coordinate at which the image data is read. Default is to use the current u,v coordinate.
793+
* `tiling` (vector2): the tiling rate for the hexagon tiles along the U and V axes. Default value is (1.0, 1.0).
794+
* `rotation` (float): per-tile rotation randomness in degrees. Default is 0.0.
795+
* `rotationrange` (vector2): [min, max] range in degrees used to randomize rotation for each tile. Default is (0.0, 360.0).
796+
* `scale` (float): per-tile scale randomness multiplier applied to tile size. Default is 1.0.
797+
* `scalerange` (vector2): [min, max] range of scale multipliers used to randomize tile scale. Default is (0.5, 2.0).
798+
* `offset` (float): per-tile translation randomness in UV units. Default is 0.0.
799+
* `offsetrange` (vector2): [min, max] range of offset values in UV units used to randomize tile positions. Default is (0.0, 1.0).
800+
* `falloff` (float): falloff width used to blend neighboring tiles at their edges; larger values produce smoother blends. Default is 0.5.
801+
* `strength` (float): Controls how strongly the sampled normal map affects the final normal. A value of 0.0 leaves the surface normal unchanged, 1.0 applies the sampled normal at full strength, and values >1.0 amplify the normal perturbation. Default is 1.0.
802+
* `flip_g` (boolean): If true, negate (flip) the green (G) channel of the sampled normal map to accommodate different tangent-space conventions (handedness). Default is false.
803+
* `normal` (vector3): surface normal; defaults to the current world-space normal.
804+
* `tangent` (vector3): surface tangent vector, defaults to the current world-space tangent vector.
805+
* `bitangent` (vector3): surface bitangent vector, defaults to the current world-space bitangent vector.
806+
770807
<a id="node-creatematrix"> </a>
771808

772809
* **`creatematrix`**: build a 3x3 or 4x4 matrix from three vector3 or four vector3 or vector4 inputs. A matrix44 may also be created from vector3 input values, in which case the fourth value will be set to 0.0 for in1-in3, and to 1.0 for in4 when creating the matrix44.

0 commit comments

Comments
 (0)