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 형태로 정리한 레퍼런스

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

원칙:

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

19.0 정확 레퍼런스(IDE)

19.1 Transform / Space(좌표 변환)

APISignature(요약)Defined-inUsed-by / Notes
TransformObjectToWorldfloat3 (float3 positionOS)<CORE>/ShaderLibrary/SpaceTransforms.hlsl:79OS→WS 기본 변환
TransformObjectToHClipfloat4 (float3 positionOS)<CORE>/ShaderLibrary/SpaceTransforms.hlsl:108OS→Clip(가장 자주)
TransformWorldToViewfloat3 (float3 positionWS)<CORE>/ShaderLibrary/SpaceTransforms.hlsl:97WS→VS
TransformWorldToHClipfloat4 (float3 positionWS)<CORE>/ShaderLibrary/SpaceTransforms.hlsl:115WS→Clip
TransformWorldToShadowCoordfloat4 (float3 positionWS)<URP>/ShaderLibrary/Shadows.hlsl:356WS→ShadowCoord

관련: 08, 16

19.2 Vertex 입력 헬퍼(Attributes → Inputs)

APISignature(요약)Defined-inUsed-by / Notes
GetVertexPositionInputsVertexPositionInputs (float3 positionOS)<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:8WS/VS/CS/NDC를 한 번에 준비
GetVertexNormalInputsVertexNormalInputs (float3 normalOS)<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:22tangent 없는 케이스
GetVertexNormalInputsVertexNormalInputs (float3 normalOS, float4 tangentOS)<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:31tangent basis 준비

관련(구조체 필드): book/21-urp-hlsl-structs-dataflow.md

19.3 Screen/UV/Depth 헬퍼(화면 기반 효과 핵심)

APISignature(요약)Defined-inUsed-by / Notes
GetNormalizedScreenSpaceUVfloat2 (float4 positionCS)<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:570Forward+(클러스터) 핵심 입력
SampleSceneColorfloat3 (float2 uv)<URP>/ShaderLibrary/DeclareOpaqueTexture.hlsl:10OpaqueTexture 샘플
SampleSceneDepthfloat (float2 uv)<URP>/ShaderLibrary/DeclareDepthTexture.hlsl:18raw depth(비선형)
SampleSceneNormalsfloat3 (float2 uv)<URP>/ShaderLibrary/DeclareNormalsTexture.hlsl:26normals texture 샘플
Linear01Depthfloat (float depth, float4 zBufferParam)<CORE>/ShaderLibrary/Common.hlsl:1198raw→0..1 선형
LinearEyeDepthfloat (float depth, float4 zBufferParam)<CORE>/ShaderLibrary/Common.hlsl:1208raw→eye depth

실무 체크리스트: book/08-urp-hlsl-library-map.md#-86-depthnormals-텍스처-생성--선언--샘플링--선형화-4단계

19.4 Lit 엔트리/초기화(Forward)

APIReturnsParams(요약)Defined-inUsed-by / Notes
LitPassVertexVaryingsAttributes input<URP>/Shaders/LitForwardPass.hlsl:158ForwardLit vertex entry
LitPassFragmentvoidVaryings input, out SV_Target0 ...<URP>/Shaders/LitForwardPass.hlsl:223out SV_Target 계약
InitializeStandardLitSurfaceDatavoidfloat2 uv, out SurfaceData<URP>/Shaders/LitInput.hlsl:252SurfaceData 구성
InitializeInputDatavoidVaryings, normalTS, out InputData<URP>/Shaders/LitForwardPass.hlsl:72InputData 구성
InitializeBakedGIDatavoidVaryings, inout InputData<URP>/Shaders/LitForwardPass.hlsl:132baked GI 준비
ApplyDecalToSurfaceDatavoidpositionCS, inout SurfaceData, inout InputData<URP>/ShaderLibrary/DBuffer.hlsl:191DBuffer decals
UniversalFragmentPBRhalf4InputData, SurfaceData<URP>/ShaderLibrary/Lighting.hlsl:282PBR 합성
MixFoghalf3half3 color, half fog<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:513fog 결합
OutputAlphahalfhalf 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 접근 함수

APIReturnsParams(요약)Defined-inNotes
GetMainLightLight(none)<URP>/ShaderLibrary/RealtimeLights.hlsl:81가장 단순
GetMainLightLightfloat4 shadowCoord<URP>/ShaderLibrary/RealtimeLights.hlsl:102shadow 입력 포함
GetAdditionalLightLightuint i, float3 positionWS<URP>/ShaderLibrary/RealtimeLights.hlsl:224Forward 기본
GetAdditionalLightLightuint i, InputData, half4 shadowMask, AO<URP>/ShaderLibrary/RealtimeLights.hlsl:257기능 결합
GetAdditionalLightsCountint(none)<URP>/ShaderLibrary/RealtimeLights.hlsl:271Forward+에서 0일 수 있음(계약)

19.5.2 Forward+ 루프 매크로(가장 중요)

SymbolKindDefined-in핵심 포인트
_CLUSTER_LIGHT_LOOPshader keyword<URP>/ShaderLibrary/ForwardPlusKeyword.deprecated.hlsl:20variant 분기
USE_CLUSTER_LIGHT_LOOPmacro 0/1<URP>/ShaderLibrary/Core.hlsl:14 / :16include 내부 스위치
LIGHT_LOOP_BEGIN/ENDmacros<URP>/ShaderLibrary/RealtimeLights.hlsl:28 / :36루프 구현 통일

Forward+ 심화: 07

19.6 Shadows(그림자)

APIReturnsParams(요약)Defined-inNotes
GetShadowCoordfloat4VertexPositionInputs<URP>/ShaderLibrary/Shadows.hlsl:524메인 라이트 shadowCoord 준비
MainLightRealtimeShadowhalffloat4 shadowCoord<URP>/ShaderLibrary/Shadows.hlsl:385메인 라이트 realtime shadow
AdditionalLightRealtimeShadowhalfint lightIndex, float3 positionWS, half3 lightDir<URP>/ShaderLibrary/Shadows.hlsl:425추가 라이트 shadow

매크로(대표):

MacroKindDefined-inNotes
SAMPLE_SHADOWMASKfunction-like macro<URP>/ShaderLibrary/Shadows.hlsl:45shadow mixing 경로

19.7 Indirect / SH / GI(간접광)

APIReturnsParams(요약)Defined-inNotes
SampleSHVertexhalf3half3 normalWS<URP>/ShaderLibrary/GlobalIllumination.hlsl:45정점 SH
SampleSHPixelhalf3half3 L2Term, half3 normalWS<URP>/ShaderLibrary/GlobalIllumination.hlsl:60픽셀 SH
SampleSHreal3real3 normalWS<CORE>/ShaderLibrary/AmbientProbe.hlsl:69Core SH 샘플

매크로(대표):

MacroKindDefined-inNotes
SAMPLE_GIfunction-like macro<URP>/ShaderLibrary/GlobalIllumination.hlsl:212라이트맵/프로브 분기

19.8 “내가 찾는 함수가 없다” — 빠른 찾기 루틴

  1. /ide/index/에서 함수명 검색
  2. Defined-in 경로로 로컬 URP/Core 소스를 열어 맥락 확인
  3. 호출 흐름이 필요하면 xref: /ide/index/