arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.shadergraph@940512a5d7e1/Documentation~/Scene-Depth-Node.md
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

2.2 KiB

Scene Depth node

The Scene Depth node samples the depth texture of the current camera, using the screen space coordinates you input. The node returns the depth of the closest object the camera sees along the path towards the coordinates, or 1 (white) if no object is present.

If you use the Universal Render Pipeline (URP), make sure the depth texture is enabled in the URP asset. Otherwise the Scene Depth node returns a value of 0.5 (mid-grey).

The Scene Depth node works only in the fragment shader stage, and might not work if you set Surface Type to Opaque in the Graph Inspector window.

Render pipeline support

This node supports the following render pipelines:

  • High Definition Render Pipeline (HDRP)
  • Universal Render Pipeline (URP)

Ports

Name Direction Type Binding Description
UV Input Vector 4 Screen position The normalized screen space coordinates to sample from.
Out Output Float None The depth value from the depth texture at the UV coordinates.

Sampling modes

Name Description
Linear 01 Returns the linear depth value. The range is from 0 to 1. 0 is the near clipping plane of the camera, and 1 is the far clipping plane of the camera.
Raw Returns the non-linear depth value. The range is from 0 to 1. 0 is the near clipping plane of the camera, and 1 is the far clipping plane of the camera.
Eye Returns the depth value as the distance from the camera in meters.

For more information about clipping planes, refer to Introduction to the camera view.

Generated code example

The HLSL code this node generates depends on the render pipeline you use. If you use your own custom render pipeline, you must define the behaviour of the node yourself, otherwise the node returns a value of 1 (white).

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

void Unity_SceneDepth_Raw_float(float4 UV, out float Out)
{
    Out = SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV);
}