13. 레퍼런스(치트시트): 클래스/함수/키워드/변수
이 페이지는 “공부하다가 헷갈릴 때 빠르게 찾기” 위한 레퍼런스입니다.
특히 HLSL 항목은 “개념”이 아니라 반환값/시그니처/정의 위치/대표 참조(xref) 를 함께 제공합니다.
13.0 정확 레퍼런스(Generated, URP 17.3.0)
- Lit Pass/Include 맵:
book/generated/urp-lit-map.md - 함수 시그니처 인덱스:
book/generated/urp-17.3.0/symbols/functions.md - 구조체(필드 포함):
book/generated/urp-17.3.0/symbols/structs.md - 매크로 인덱스:
book/generated/urp-17.3.0/symbols/macros.md - Lit 핵심 심볼 xref:
book/generated/urp-17.3.0/xref/lit-key-symbols.md
13.1 C# (SRP/URP) 핵심 타입
ScriptableRendererFeature— 렌더러 확장 포인트- 관련: 03. URP 아키텍처
ScriptableRenderPass— 패스 단위(RecordRenderGraph/Execute)RenderGraph/TextureHandle— RenderGraph 패스/리소스CommandBuffer/CommandBufferPool— GPU 명령 기록RTHandle— 스케일/동적 해상도 대응 렌더 타겟 핸들- 관련: 05. 텍스처/ID/핸들
13.2 URP Frame Data(자주 쓰는 것, RenderGraph 경로)
RenderGraph 경로에서 ContextContainer frameData로 접근하는 데이터 타입들입니다.
UniversalResourceData— 카메라 컬러/뎁스/히스토리 등 리소스 핸들 모음UniversalCameraData— 카메라 관련 데이터(카메라 타입/행렬/설정 등)- 관련: 04. RenderGraph
공식 문서:
13.3 HLSL(URP) 핵심 함수: 시그니처/반환값/정의 위치
아래 표는 URP 17.3.0 generated 인덱스에서 발췌한 “학습 핵심”입니다.
전체 목록은book/generated/urp-17.3.0/symbols/functions.md에서 검색하세요.
| Symbol | Returns | Params(요약) | Defined-in | 관련 |
|---|---|---|---|---|
TransformObjectToHClip |
float4 |
float3 positionOS |
<CORE>/ShaderLibrary/SpaceTransforms.hlsl:108 |
08 |
GetVertexPositionInputs |
VertexPositionInputs |
float3 positionOS |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:8 |
21 |
GetVertexNormalInputs |
VertexNormalInputs |
float3 normalOS, float4 tangentOS 등 |
<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:22 |
21 |
GetMainLight |
Light |
(overloads) | <URP>/ShaderLibrary/RealtimeLights.hlsl |
07 |
GetAdditionalLight |
Light |
uint i, float3 positionWS 등 |
<URP>/ShaderLibrary/RealtimeLights.hlsl |
07 |
GetAdditionalLightsCount |
int |
(none) | <URP>/ShaderLibrary/RealtimeLights.hlsl:271 |
07 |
UniversalFragmentPBR |
half4 |
InputData, SurfaceData |
<URP>/ShaderLibrary/Lighting.hlsl:282 |
22 |
InitializeStandardLitSurfaceData |
void |
float2 uv, out SurfaceData |
<URP>/Shaders/LitInput.hlsl:252 |
22 |
InitializeInputData |
void |
Varyings, normalTS, out InputData |
<URP>/Shaders/LitForwardPass.hlsl:72 |
22 |
대표 xref(정의 + 호출처): book/generated/urp-17.3.0/xref/lit-key-symbols.md
13.4 HLSL(URP) 핵심 구조체: 필드/정의 위치
전체 목록은
book/generated/urp-17.3.0/symbols/structs.md에서 검색하세요.
| Struct | Fields(개수) | Defined-in | 관련 |
|---|---|---|---|
Light |
5 | <URP>/ShaderLibrary/RealtimeLights.hlsl:12 |
07 |
InputData |
23 | <URP>/ShaderLibrary/Input.hlsl:43 |
21 |
SurfaceData |
10 | <URP>/ShaderLibrary/SurfaceData.hlsl:5 |
21 |
VertexPositionInputs |
4 | <URP>/ShaderLibrary/Core.hlsl:259 |
21 |
VertexNormalInputs |
3 | <URP>/ShaderLibrary/Core.hlsl:267 |
21 |
13.5 Forward+(Cluster) 관련 키워드/매크로(요약)
| Symbol | 종류 | Defined-in | 핵심 포인트 |
|---|---|---|---|
_CLUSTER_LIGHT_LOOP |
shader keyword | <URP>/ShaderLibrary/ForwardPlusKeyword.deprecated.hlsl:20 등 |
variant 분기(Forward+) |
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/Forward+ 루프 통일 |
Forward+에서 GetAdditionalLightsCount()가 0일 수 있다는 점이 가장 흔한 함정입니다.
자세한 디버깅 루틴: 07
13.6 ShaderLab Pass tags/LightMode(URP 17.3.0 Lit 기준 9종)
| LightMode | 용도(요약) |
|---|---|
UniversalForward |
Forward 컬러 |
UniversalGBuffer |
Deferred GBuffer |
ShadowCaster |
그림자 |
DepthOnly |
깊이 |
DepthNormals |
깊이+노말 |
Meta |
베이킹 |
MotionVectors |
velocity |
XRMotionVectors |
XR velocity(+스텐실) |
Universal2D |
2D Renderer |
계약 전체 표/소비 단계: book/20-urp-pass-tags-and-lightmode-contract.md
13.7 RenderGraph “빌더”에서 자주 보는 호출(개념)
URP 버전마다 정확한 시그니처는 다를 수 있지만, 개념적으로 다음 호출을 반복해서 보게 됩니다.
- 패스 추가:
renderGraph.AddRasterRenderPass<T>(...) - 텍스처 생성:
renderGraph.CreateTexture(desc) - 외부 RTHandle 가져오기:
renderGraph.ImportTexture(rtHandle) - 읽기 선언:
builder.UseTexture(handle, AccessFlags.Read) - 컬러 타겟 설정:
builder.SetRenderAttachment(handle, index, AccessFlags.Write) - 실행 함수 설정:
builder.SetRenderFunc((data, ctx) => { ... })
관련: 04. RenderGraph
13.8 ComputeGraphContext(Compute Pass)에서 자주 보는 호출(개념)
Compute 패스에서는 ComputeGraphContext가 전달되며, 보통 다음 패턴을 반복합니다.
- 패스 추가:
renderGraph.AddComputePass<T>(...) - UAV 텍스처 생성:
desc.enableRandomWrite = true - 텍스처 read/write 선언:
builder.UseTexture(handle, AccessFlags.Read/Write) - 바인딩:
cmd.SetComputeTextureParam(...),cmd.SetComputeBufferParam(...) - 실행:
cmd.DispatchCompute(...)
관련: 17. RenderGraph Compute/UAV
13.9 ShaderLab 태그/키(대표)
Tags { "RenderPipeline"="UniversalPipeline" }— URP용 셰이더임을 선언Tags { "LightMode"="UniversalForward" }— URP가 선택하는 패스 용도 선언Queue/RenderType— 렌더 큐/렌더 타입(opaque/transparent) 분류
13.10 “어디서 확인하나?” 빠른 링크
- URP 변환 헬퍼/셰이더 메서드: https://docs.unity3d.com/6000.3/Documentation/Manual/urp/use-built-in-shader-methods-transformations.html
- Forward+ 추가 라이트: https://docs.unity3d.com/6000.3/Documentation/Manual/urp/rendering/additional-lights-fplus.html
- RenderGraph 패스 작성: https://docs.unity3d.com/Manual/urp/render-graph-write-render-pass.html