book/13-reference-cheatsheet.md

13. 레퍼런스(치트시트)

Unity 6.3(6000.3) / URP 17.3.0 기준으로 SRP/URP/RenderGraph/HLSL 핵심 심볼을 “시그니처+정의 위치+참조(xref)”로 빠르게 찾는 페이지

13. 레퍼런스(치트시트): 클래스/함수/키워드/변수

이 페이지는 “공부하다가 헷갈릴 때 빠르게 찾기” 위한 레퍼런스입니다.
특히 HLSL 항목은 “개념”이 아니라 반환값/시그니처/정의 위치/대표 참조(xref) 를 함께 제공합니다.

13.0 정확 레퍼런스(Generated, URP 17.3.0)

13.1 C# (SRP/URP) 핵심 타입

13.2 URP Frame Data(자주 쓰는 것, RenderGraph 경로)

RenderGraph 경로에서 ContextContainer frameData로 접근하는 데이터 타입들입니다.

공식 문서:

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) 분류

관련: 09. URP 호환 셰이더 작성

13.10 “어디서 확인하나?” 빠른 링크