Singularity/Library/PackageCache/com.unity.shadergraph@12.1.11/Documentation~/Sample-Texture-2D-Node.md
2024-05-06 11:45:45 -07:00

2.9 KiB

Sample Texture 2D Node

Description

Samples a Texture 2D and returns a Vector 4 color value for use in the shader. You can override the UV coordinates using the UV input and define a custom Sampler State using the Sampler input.

To use the Sample Texture 2D Node to sample a normal map, set the Type dropdown parameter to Normal.

NOTE: This Node can only be used in the Fragment Shader Stage. To sample a Texture 2D in the Vertex Shader Stage use a Sample Texture 2D LOD Node instead.

If you experience texture sampling errors while using this node in a graph which includes Custom Function Nodes or Sub Graphs, you can resolve them by upgrading to version 10.3 or later.

Ports

Name Direction Type Binding Description
Texture Input Texture 2D None Texture 2D to sample
UV Input Vector 2 UV UV coordinates
Sampler Input Sampler State Default sampler state Sampler for the texture
RGBA Output Vector 4 None Output value as RGBA
R Output Float None red (x) component of RGBA output
G Output Float None green (y) component of RGBA output
B Output Float None blue (z) component of RGBA output
A Output Float None alpha (w) component of RGBA output

Controls

Name Type Options Description
Type Dropdown Default, Normal Selects the texture type
Space Dropdown Tangent, Object Selects the space of the normal map. If Type is not Normal, this control is ignored.
Enable Global Mip Bias Toggle On, Off Enables the automatic global mip bias imposed by the runtime. This bias is set during certain dynamic resolution scaling algorithms to improve detail reconstruction.

Generated Code Example

The following example code represents one possible outcome of this node per Type mode.

Default

float4 _SampleTexture2D_RGBA = SAMPLE_TEXTURE2D(Texture, Sampler, UV);
float _SampleTexture2D_R = _SampleTexture2D_RGBA.r;
float _SampleTexture2D_G = _SampleTexture2D_RGBA.g;
float _SampleTexture2D_B = _SampleTexture2D_RGBA.b;
float _SampleTexture2D_A = _SampleTexture2D_RGBA.a;

Normal

float4 _SampleTexture2D_RGBA = SAMPLE_TEXTURE2D(Texture, Sampler, UV);
_SampleTexture2D_RGBA.rgb = UnpackNormalRGorAG(_SampleTexture2D_RGBA);
float _SampleTexture2D_R = _SampleTexture2D_RGBA.r;
float _SampleTexture2D_G = _SampleTexture2D_RGBA.g;
float _SampleTexture2D_B = _SampleTexture2D_RGBA.b;
float _SampleTexture2D_A = _SampleTexture2D_RGBA.a;