이 페이지는 “공부하다가 헷갈릴 때 빠르게 찾기” 위한 레퍼런스입니다.
특히 HLSL 항목은 “개념”이 아니라 반환값/시그니처/정의 위치/대표 참조(xref) 를 함께 제공합니다.
13.0 정확 레퍼런스(IDE, URP 17.3.0)
- Lit Pass/Include 맵:
/ide/graph/ - 함수 시그니처 인덱스:
/ide/index/ - 구조체(필드 포함):
/ide/index/ - 매크로 인덱스:
/ide/index/ - Lit 핵심 심볼 xref:
/ide/index/
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 IDE Index에서 발췌한 “학습 핵심”입니다.
전체 목록은/ide/index/에서 검색하세요.
| 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(정의 + 호출처): /ide/index/
13.4 HLSL(URP) 핵심 구조체: 필드/정의 위치
전체 목록은
/ide/index/에서 검색하세요.
| 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