Property Types
Description
Property Types are the types of Property than can be defined on the Blackboard for use in the Graph. These Properties are exposed to the Inspector for Materials that use the shader.
Each property has an associated Data Type. See Data Types for more information.
Common Parameters
All properties have the following common parameters in addition to those specific to their Data Types.
| Parameter | Description |
|---|---|
| Name | Displays the user-facing name of the property in the UI. |
| Reference | Defines the internal identifier used by the shader for this property; use this Reference instead of the display Name when accessing the property from a script.If you overwrite this parameter, be aware of the following:
|
| Promote to final Shader | Makes the property accessible across the final shader as a material property, not as an input port on the Subgraph Node. |
| Precision | Sets the numeric precision for the property’s data type. The options are:
For more details, refer to Precision Modes. |
| Scope | Specifies where and how the property is edited across materials. The options are:
|
| Default Value | Sets the property's initial value to be serialized and used when new material instances are created. The value depends on the property type. |
| Preview Value | Sets a value to use for preview in the Shader Graph window, only when you set Scope to Global. |
| Show In Inspector | Displays the property in the material Inspector when enabled. If you disable this option, it includes an [HideInInspector] attribute to the material property (refer to Properties block reference in ShaderLab for more details). |
| Read Only | Marks the property as non-editable in the material Inspector by adding the PerRendererData attribute. |
| Custom Attributes | Enables attachment of custom scripted drawers or decorators to extend the material property UI, such as adding static headers or complex controls. The Custom Material Property Drawers sample, available in the Package Manager among other Shader Graph samples, shows how to display a Vector2 as a min/max slider, for example. Note: When you declare the custom functions in the script, make sure to suffix their names with Drawer or Decorator.In the list, use + or - to add or remove entries. Each entry corresponds to a function call which requires the following parameters:
|
| Use Custom Binding | Turns the property into a bound input port for connection to the Branch On Input Connection node. In the Label field, enter the label for the default value that displays on your Subgraph node's port binding in its parent Shader Graph. This property is available only in sub graphs. |
Float
Defines a Float value.
Parameters specific to Float properties in addition to the common parameters:
| Parameter | Description |
|---|---|
| Mode | Selects the UI mode used to display and edit the property value in the material Inspector, requiring a specific subset of parameters depending on the chosen option. The options are:
|
| Default Value | Sets the initial value of the Property. The value is either a float or an integer depending on the selected Mode and its options. Not available when Scope is set to Global. |
| Requires Literal Input | Requires the input to be a constant value. When enabled, if the user connects a variable, the shader compilation fails with an error. |
Slider
Additional parameters available when you set the Float property Mode to Slider.
| Parameter | Description |
|---|---|
| Slider Type | Selects the slider response type applied when adjusting the value in the material Inspector. The options are:
|
| Min | Sets the minimum value of the slider range. |
| Max | Sets the maximum value of the slider range. |
| Power | Defines the exponent used for non-linear response between Min and Max when Slider Type is set to Power. |
Enum
Additional parameters available when you set the Float property Mode to Enum.
| Parameter | Description |
|---|---|
| Enum Type | Selects the source used to populate the dropdown entries in the material Inspector. The options are:
|
| Entries | Defines the list of dropdown entries when Enum Type is set to Explicit Values. Use + or - to add or remove entries. Each entry requires the following parameters:
|
| C# Enum Type | Specifies the existing enum type to reference when Enum Type is set to Type Reference. Enter the full type path with namespace, for example: UnityEngine.Rendering.BlendMode. |
Vector 2
Defines a Vector 2 value. Displays a Vector 4 input field in the material inspector, where the z and w components are not used.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 2D vector value (Vector2). |
Vector 3
Defines a Vector 3 value. Displays a Vector 4 input field in the material inspector, where the w component is not used.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 3D vector value (Vector3). |
Vector 4
Defines a Vector 4 value. Displays a Vector 4 input field in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 4D vector value (Vector4). |
Color
Defines a Color value. If the Property Inspector displays Main Color, this is the Main Color for the shader. To select or deselect this node as the Main Color, right-click it in the graph or Blackboard and select Set as Main Color or Clear Main Color. Corresponds to the MainColor ShaderLab Properties attribute.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. |
| Mode | Selects the color input mode. The options are:
|
Note: In versions prior to 10.0, Shader Graph didn't correct HDR colors for the project colorspace. Version 10.0 corrected this behavior. HDR color properties that you created with older versions maintain the old behavior, but you can use the Graph Inspector to upgrade them. To mimic the old behavior in a gamma space project, you can use the Colorspace Conversion Node to convert a new HDR Color property from RGB to Linear space.
Boolean
Defines a Boolean value. Displays a ToggleUI field in the material inspector. Note that internally to the shader this value is a Float. The Boolean type in Shader Graph is merely for usability.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A boolean value. |
Gradient
Defines a constant Gradient.
Parameters specific to Gradient properties in addition to the common parameters:
| Parameter | Description |
|---|---|
| Default Value | Displays the HDR Gradient Editor with selectable modes. The options are:
|
Note: The Promote to final Shader parameter is not available for this property.
Texture 2D
Defines a Texture 2D value. Displays an object field of type Texture in the material inspector. If the Property Inspector displays Main Texture, this is the Main Texture for the shader. To select or deselect this node as the Main Texture, right-click on it in the graph or Blackboard and select Set as Main Texture or Clear Main Texture. Corresponds to the MainTexture ShaderLab Properties attribute.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A texture asset reference. |
| Mode | Defines the fallback texture Unity uses when none is provided. The options are:
|
| Use Tiling and Offset | Toggles the property NoScaleOffset to enable manipulating scale and offset separately from other texture properties; see SplitTextureTransformNode.A boolean value. |
| Use TexelSize | Uses the size of texels expressed in UV space. |
Texture 2D Array
Defines a Texture 2D Array value. Displays an object field of type Texture 2D Array in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A texture asset reference. |
Texture 3D
Defines a Texture 3D value. Displays an object field of type Texture 3D in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A texture asset reference. |
Cubemap
Defines a Cubemap value. Displays an object field of type Texture in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A cubemap asset reference. |
Virtual Texture
Defines a Texture Stack, which appears as object fields of type Texture in the Material Inspector. The number of fields corresponds to the number of layers in the property.
| Parameter | Description |
|---|---|
| Layers | Manages the collection of layers in the stack. The options are:
Select the active layer to edit its parameters. |
| Layer Name | Displays the user-defined name for the selected layer. |
| Layer Reference | Defines the internal identifier used to reference the selected layer. |
| Layer Texture | Assigns the default texture asset for the selected layer. |
| Layer Texture Type | Specifies the expected data type for the selected layer’s texture, which determines import settings and sampling behavior, such as sRGB vs Linear and normal map decoding. The options are:
|
Note: The Use Custom Binding parameter isn't available for this property.
Note: The Promote to final Shader parameter is not available for this property.
Matrix 2
Defines a Matrix 2. Matrices do not display in the Inspector window of the material.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 2×2 matrix value (Matrix2). |
Matrix 3
Defines a Matrix 3 value. Can't be displayed in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 3×3 matrix value (Matrix3). |
Matrix 4
Defines a Matrix 4 value. Can't be displayed in the material inspector.
| Parameter | Description |
|---|---|
| Default Value | Sets the initial value of the Property. A 4×4 matrix value (Matrix4). |
SamplerState
Defines a SamplerState.
Parameters specific to Float properties in addition to the common parameters:
| Parameter | Description |
|---|---|
| Filter | Specifies the texture filtering mode used when sampling. The options are:
|
| Wrap | Specifies how UVs outside the [0–1] range are handled. The options are:
|
| Aniso | Specifies the anisotropic filtering level to improve texture clarity at grazing angles. The options are:
|
Dropdown
Defines a Dropdown. This property is available only in sub graphs.
Parameters specific to Dropdown properties in addition to the common parameters:
| Parameter | Description |
|---|---|
| Default Value | Selects the default Entry that you want Shader Graph to select on your property. |
| Entries | Adds a corresponding input port to the node for each entry. The options are:
|
Note: The Promote to final Shader parameter is not available for this property.