book/19-urp-shader-methods-reference.md

19. URP Shader Methods Reference

Unity 6.3(6000.3) / URP 17.3.0 기준으로 자주 쓰는 URP/Core HLSL 함수/매크로를 Signature/Returns/Params/Defined-in/Used-by 형태로 정리한 레퍼런스

19. URP Shader Methods Reference (URP 17.3.0)

이 챕터는 “셰이더를 공부할 때 손이 자주 가는 심볼”을 모아놓은 사전(레퍼런스) 챕터입니다.

원칙:

  • 모든 항목은 반환값/파라미터/정의 위치(파일/라인) 를 함께 제공합니다.
  • 목록은 “학습 핵심”만 큐레이션합니다. 전체 인덱스는 generated에서 검색하세요.

19.0 정확 레퍼런스(Generated)

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

관련: 08, 16

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 “내가 찾는 함수가 없다” — 빠른 찾기 루틴

  1. book/generated/urp-17.3.0/symbols/functions.md에서 함수명 검색
  2. Defined-in 경로로 로컬 URP/Core 소스를 열어 맥락 확인
  3. 호출 흐름이 필요하면 xref: book/generated/urp-17.3.0/xref/lit-key-symbols.md