book/13-reference-cheatsheet.md

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

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

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

13.0 정확 레퍼런스(IDE, 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 IDE Index에서 발췌한 “학습 핵심”입니다.
전체 목록은 /ide/index/에서 검색하세요.

SymbolReturnsParams(요약)Defined-in관련
TransformObjectToHClipfloat4float3 positionOS<CORE>/ShaderLibrary/SpaceTransforms.hlsl:10808
GetVertexPositionInputsVertexPositionInputsfloat3 positionOS<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:821
GetVertexNormalInputsVertexNormalInputsfloat3 normalOS, float4 tangentOS<URP>/ShaderLibrary/ShaderVariablesFunctions.hlsl:2221
GetMainLightLight(overloads)<URP>/ShaderLibrary/RealtimeLights.hlsl07
GetAdditionalLightLightuint i, float3 positionWS<URP>/ShaderLibrary/RealtimeLights.hlsl07
GetAdditionalLightsCountint(none)<URP>/ShaderLibrary/RealtimeLights.hlsl:27107
UniversalFragmentPBRhalf4InputData, SurfaceData<URP>/ShaderLibrary/Lighting.hlsl:28222
InitializeStandardLitSurfaceDatavoidfloat2 uv, out SurfaceData<URP>/Shaders/LitInput.hlsl:25222
InitializeInputDatavoidVaryings, normalTS, out InputData<URP>/Shaders/LitForwardPass.hlsl:7222

대표 xref(정의 + 호출처): /ide/index/

13.4 HLSL(URP) 핵심 구조체: 필드/정의 위치

전체 목록은 /ide/index/에서 검색하세요.

StructFields(개수)Defined-in관련
Light5<URP>/ShaderLibrary/RealtimeLights.hlsl:1207
InputData23<URP>/ShaderLibrary/Input.hlsl:4321
SurfaceData10<URP>/ShaderLibrary/SurfaceData.hlsl:521
VertexPositionInputs4<URP>/ShaderLibrary/Core.hlsl:25921
VertexNormalInputs3<URP>/ShaderLibrary/Core.hlsl:26721

13.5 Forward+(Cluster) 관련 키워드/매크로(요약)

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

Forward+에서 GetAdditionalLightsCount()가 0일 수 있다는 점이 가장 흔한 함정입니다.
자세한 디버깅 루틴: 07

13.6 ShaderLab Pass tags/LightMode(URP 17.3.0 Lit 기준 9종)

LightMode용도(요약)
UniversalForwardForward 컬러
UniversalGBufferDeferred GBuffer
ShadowCaster그림자
DepthOnly깊이
DepthNormals깊이+노말
Meta베이킹
MotionVectorsvelocity
XRMotionVectorsXR velocity(+스텐실)
Universal2D2D 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 “어디서 확인하나?” 빠른 링크