이 챕터는 “셰이더를 공부할 때 손이 자주 가는 심볼”을 모아놓은 사전(레퍼런스) 챕터입니다.
원칙:
- 모든 항목은 반환값/파라미터/정의 위치(파일/라인) 를 함께 제공합니다.
- 목록은 “학습 핵심”만 큐레이션합니다. 전체 인덱스는 IDE에서 검색하세요.
19.0 정확 레퍼런스(IDE)
- 함수 시그니처 전체:
/ide/index/ - 매크로 전체:
/ide/index/ - Lit 핵심 심볼 xref(정의+대표 호출처):
/ide/index/
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 “내가 찾는 함수가 없다” — 빠른 찾기 루틴
/ide/index/에서 함수명 검색Defined-in경로로 로컬 URP/Core 소스를 열어 맥락 확인- 호출 흐름이 필요하면 xref:
/ide/index/