19. URP Shader Methods Reference (URP 17.3.0)
이 챕터는 “셰이더를 공부할 때 손이 자주 가는 심볼”을 모아놓은 사전(레퍼런스) 챕터입니다.
원칙:
- 모든 항목은 반환값/파라미터/정의 위치(파일/라인) 를 함께 제공합니다.
- 목록은 “학습 핵심”만 큐레이션합니다. 전체 인덱스는 generated에서 검색하세요.
19.0 정확 레퍼런스(Generated)
- 함수 시그니처 전체:
book/generated/urp-17.3.0/symbols/functions.md - 매크로 전체:
book/generated/urp-17.3.0/symbols/macros.md - Lit 핵심 심볼 xref(정의+대표 호출처):
book/generated/urp-17.3.0/xref/lit-key-symbols.md
19.1 Transform / Space(좌표 변환)
| API | Signature(요약) | Defined-in | Used-by / Notes |
|---|---|---|---|
TransformObjectToWorld |
float3 (float3 positionOS) |
<CORE>/ShaderLibrary/SpaceTransforms.hlsl:79 |
OS→WS 기본 변환 |
TransformObjectToHClip |
float4 (float3 positionOS) |
<CORE>/ShaderLibrary/SpaceTransforms.hlsl:108 |
OS→Clip(가장 자주) |
TransformWorldToView |
float3 (float3 positionWS) |
<CORE>/ShaderLibrary/SpaceTransforms.hlsl:97 |
WS→VS |
TransformWorldToHClip |
float4 (float3 positionWS) |
<CORE>/ShaderLibrary/SpaceTransforms.hlsl:115 |
WS→Clip |
TransformWorldToShadowCoord |
float4 (float3 positionWS) |
<URP>/ShaderLibrary/Shadows.hlsl:356 |
WS→ShadowCoord |
19.2 Vertex 입력 헬퍼(Attributes → Inputs)
| API | Signature(요약) | Defined-in | Used-by / Notes |
|---|---|---|---|
GetVertexPositionInputs |
VertexPositionInputs (float3 positionOS) |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:8 |
WS/VS/CS/NDC를 한 번에 준비 |
GetVertexNormalInputs |
VertexNormalInputs (float3 normalOS) |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:22 |
tangent 없는 케이스 |
GetVertexNormalInputs |
VertexNormalInputs (float3 normalOS, float4 tangentOS) |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:31 |
tangent basis 준비 |
관련(구조체 필드): book/21-urp-hlsl-structs-dataflow.md
19.3 Screen/UV/Depth 헬퍼(화면 기반 효과 핵심)
| API | Signature(요약) | Defined-in | Used-by / Notes |
|---|---|---|---|
GetNormalizedScreenSpaceUV |
float2 (float4 positionCS) |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:570 |
Forward+(클러스터) 핵심 입력 |
SampleSceneColor |
float3 (float2 uv) |
<URP>/ShaderLibrary/DeclareOpaqueTexture.hlsl:10 |
OpaqueTexture 샘플 |
SampleSceneDepth |
float (float2 uv) |
<URP>/ShaderLibrary/DeclareDepthTexture.hlsl:18 |
raw depth(비선형) |
SampleSceneNormals |
float3 (float2 uv) |
<URP>/ShaderLibrary/DeclareNormalsTexture.hlsl:26 |
normals texture 샘플 |
Linear01Depth |
float (float depth, float4 zBufferParam) |
<CORE>/ShaderLibrary/Common.hlsl:1198 |
raw→0..1 선형 |
LinearEyeDepth |
float (float depth, float4 zBufferParam) |
<CORE>/ShaderLibrary/Common.hlsl:1208 |
raw→eye depth |
실무 체크리스트: book/08-urp-hlsl-library-map.md#-86-depthnormals-텍스처-생성--선언--샘플링--선형화-4단계
19.4 Lit 엔트리/초기화(Forward)
| API | Returns | Params(요약) | Defined-in | Used-by / Notes |
|---|---|---|---|---|
LitPassVertex |
Varyings |
Attributes input |
<URP>/Shaders/LitForwardPass.hlsl:158 |
ForwardLit vertex entry |
LitPassFragment |
void |
Varyings input, out SV_Target0 ... |
<URP>/Shaders/LitForwardPass.hlsl:223 |
out SV_Target 계약 |
InitializeStandardLitSurfaceData |
void |
float2 uv, out SurfaceData |
<URP>/Shaders/LitInput.hlsl:252 |
SurfaceData 구성 |
InitializeInputData |
void |
Varyings, normalTS, out InputData |
<URP>/Shaders/LitForwardPass.hlsl:72 |
InputData 구성 |
InitializeBakedGIData |
void |
Varyings, inout InputData |
<URP>/Shaders/LitForwardPass.hlsl:132 |
baked GI 준비 |
ApplyDecalToSurfaceData |
void |
positionCS, inout SurfaceData, inout InputData |
<URP>/ShaderLibrary/DBuffer.hlsl:191 |
DBuffer decals |
UniversalFragmentPBR |
half4 |
InputData, SurfaceData |
<URP>/ShaderLibrary/Lighting.hlsl:282 |
PBR 합성 |
MixFog |
half3 |
half3 color, half fog |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:513 |
fog 결합 |
OutputAlpha |
half |
half alpha, bool transparent |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:239 |
투명 처리 |
호출 흐름/편집 지점: book/22-urp-lit-callflow-and-edit-points.md
19.5 Lights(메인/추가 라이트) + Forward+(클러스터) 루프
19.5.1 Light 접근 함수
| API | Returns | Params(요약) | Defined-in | Notes |
|---|---|---|---|---|
GetMainLight |
Light |
(none) | <URP>/ShaderLibrary/RealtimeLights.hlsl:81 |
가장 단순 |
GetMainLight |
Light |
float4 shadowCoord |
<URP>/ShaderLibrary/RealtimeLights.hlsl:102 |
shadow 입력 포함 |
GetAdditionalLight |
Light |
uint i, float3 positionWS |
<URP>/ShaderLibrary/RealtimeLights.hlsl:224 |
Forward 기본 |
GetAdditionalLight |
Light |
uint i, InputData, half4 shadowMask, AO |
<URP>/ShaderLibrary/RealtimeLights.hlsl:257 |
기능 결합 |
GetAdditionalLightsCount |
int |
(none) | <URP>/ShaderLibrary/RealtimeLights.hlsl:271 |
Forward+에서 0일 수 있음(계약) |
19.5.2 Forward+ 루프 매크로(가장 중요)
| Symbol | Kind | Defined-in | 핵심 포인트 |
|---|---|---|---|
_CLUSTER_LIGHT_LOOP |
shader keyword | <URP>/ShaderLibrary/ForwardPlusKeyword.deprecated.hlsl:20 등 |
variant 분기 |
USE_CLUSTER_LIGHT_LOOP |
macro 0/1 | <URP>/ShaderLibrary/Core.hlsl:14 / :16 |
include 내부 스위치 |
LIGHT_LOOP_BEGIN/END |
macros | <URP>/ShaderLibrary/RealtimeLights.hlsl:28 / :36 |
루프 구현 통일 |
Forward+ 심화: 07
19.6 Shadows(그림자)
| API | Returns | Params(요약) | Defined-in | Notes |
|---|---|---|---|---|
GetShadowCoord |
float4 |
VertexPositionInputs |
<URP>/ShaderLibrary/Shadows.hlsl:524 |
메인 라이트 shadowCoord 준비 |
MainLightRealtimeShadow |
half |
float4 shadowCoord |
<URP>/ShaderLibrary/Shadows.hlsl:385 |
메인 라이트 realtime shadow |
AdditionalLightRealtimeShadow |
half |
int lightIndex, float3 positionWS, half3 lightDir |
<URP>/ShaderLibrary/Shadows.hlsl:425 |
추가 라이트 shadow |
매크로(대표):
| Macro | Kind | Defined-in | Notes |
|---|---|---|---|
SAMPLE_SHADOWMASK |
function-like macro | <URP>/ShaderLibrary/Shadows.hlsl:45 등 |
shadow mixing 경로 |
19.7 Indirect / SH / GI(간접광)
| API | Returns | Params(요약) | Defined-in | Notes |
|---|---|---|---|---|
SampleSHVertex |
half3 |
half3 normalWS |
<URP>/ShaderLibrary/GlobalIllumination.hlsl:45 |
정점 SH |
SampleSHPixel |
half3 |
half3 L2Term, half3 normalWS |
<URP>/ShaderLibrary/GlobalIllumination.hlsl:60 |
픽셀 SH |
SampleSH |
real3 |
real3 normalWS |
<CORE>/ShaderLibrary/AmbientProbe.hlsl:69 |
Core SH 샘플 |
매크로(대표):
| Macro | Kind | Defined-in | Notes |
|---|---|---|---|
SAMPLE_GI |
function-like macro | <URP>/ShaderLibrary/GlobalIllumination.hlsl:212 등 |
라이트맵/프로브 분기 |
19.8 “내가 찾는 함수가 없다” — 빠른 찾기 루틴
book/generated/urp-17.3.0/symbols/functions.md에서 함수명 검색Defined-in경로로 로컬 URP/Core 소스를 열어 맥락 확인- 호출 흐름이 필요하면 xref:
book/generated/urp-17.3.0/xref/lit-key-symbols.md