Version: 2019.4
빌트인 셰이더 헬퍼 함수
Shader variants and keywords

빌트인 셰이더 변수

Unity’s built-in include files contain global variables for your shaders: things like current object’s transformation matrices, light parameters, current time and so on. You use them in shader programs like any other variable, but if you include the relevant include file, you don’t have to declare them.

For more information on include files, see Built-in include files.

변환

All these matrices are float4x4 type, and are column major.

이름
UNITY\MATRIX\MVP 현재 모델 \* 뷰 \* 투사 매트릭스
UNITY\MATRIX\MV 현재 모델 \* 뷰 매트릭스
UNITY\MATRIX\V 현재 뷰 매트릭스
UNITY\MATRIX\P 현재 투사 매트릭스
UNITY\MATRIX\VP 현재 뷰 \* 투사 매트릭스
UNITY\MATRIX\T\MV | 모델의 전치 \* 뷰 매트릭스 | | UNITY\MATRIX\IT\MV 모델의 역 전치 \* 뷰 매트릭스
unity_ObjectToWorld 현재 모델 매트릭스
unity_WorldToObject 현재 월드 매트릭스의 역

카메라 및 스크린

These variables will correspond to the Camera that is rendering. For example during shadowmap rendering, they will still refer to the Camera component values, and not the “virtual camera” that is used for the shadowmap projection.

이름 타입
\WorldSpaceCameraPos |float3 | 카메라의 월드 공간 포지션 | |\ProjectionParams float4 x는 1.0(또는 현재 상하반전 투사 매트릭스로 렌더링 중일 경우 –1.0), y는 카메라의 근접 평면, z는 카메라의 원거리 평면, w는 1/FarPlane입니다.
\ScreenParams |float4 | x는 카메라 타겟 텍스처의 폭(픽셀 단위), y는 카메라 타겟 텍스처의 높이(픽셀 단위), z는 1.0 + 1.0/폭, w는 1.0 + 1.0/높이입니다. | |\ZBufferParams float4 Z 버퍼 값을 선형화하기 위해 사용합니다. x는 (1-far/near), y는 (far/near), z는 (x/far), w는 (y/far)입니다.
unity_OrthoParams float4 x는 직교 카메라의 폭, y는 직교 카메라의 높이, z는 사용되지 않으며 w는 직교 카메라일 때는 1.0, 원근 카메라일 때는 0.0입니다.
unity_CameraProjection float4x4 카메라의 투사 매트릭스
unity_CameraInvProjection float4x4 카메라의 투사 매트릭스의 역행렬
unity_CameraWorldClipPlanes[6] float4 카메라 프러스텀 평면 월드 공간 방정식으로, 다음 순서입니다. 좌, 우, 하, 상, 근접, 원거리

시간

Time is measured in seconds, and is scaled by the Time multiplier in your Project’s Time settings. There is no built-in variable that provides access to unscaled time.

이름 타입
Time |float4 | 레벨 로딩 시점부터의 시간(t/20, t, t\\2, t\\3)으로 셰이더 내에서 애니메이션을 위해 사용합니다. | |\SinTime float4 시간의 사인(Sin): (t/8, t/4, t/2, t)
\CosTime |float4 | 시간의 코사인(Cos): (t/8, t/4, t/2, t) | |unity\DeltaTime float4 델타 타임: (dt, 1/dt, smoothDt, 1/smoothDt)

조명

광원 파라미터는 셰이더에서 어떤 렌더링 경로가 사용되는지, 어떤 LightMode 패스 태그가 사용되는지에 따라 다른 방법으로 셰이더에 전달됩니다.

포워드 렌더링(ForwardBaseForwardAdd 패스 타입):

이름 타입
_LightColor0 (UnityLightingCommon.cginc에 선언됨) fixed4 광원 컬러
\_WorldSpaceLightPos0 float4 방향 광원: (월드 공간 방향, 0). 기타 라이트: (월드 공간 포지션, 1)
unity_WorldToLight (declared in AutoLight.cginc) float4x4 World-to-light 매트릭스. 쿠키 및 감쇠 텍스처를 샘플링하기 위해 사용합니다.
unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0 float4 (ForwardBase 패스 한정) 중요하지 않은 첫 네 개 점 광원의 월드 공간 포지션입니다.
unity_4LightAtten0 float4 (ForwardBase 패스 한정) 중요하지 않은 첫 네 개 점 광원의 감쇠 팩터입니다.
unity_LightColor half4[4] (ForwardBase 패스 한정) 중요하지 않은 첫 네 개 점 광원의 컬러입니다.
unity_WorldToShadow float4x4[4] 월드-그림자 매트릭스입니다. 스폿 광원에 한 개의 매트릭스, 방향 광원 캐스케이드에 최대 네 개의 매트릭스를 지원합니다.

조명 패스 셰이더에서 사용되는 디퍼드 섀이딩 및 디퍼드 라이팅(모두 UnityDeferredLibrary.cginc에 선언됨)

이름 타입
\_LightColor float4 광원 컬러
unity_WorldToLight float4x4 World-to-light 매트릭스. 쿠키 및 감쇠 텍스처를 샘플링하기 위해 사용합니다.
unity_WorldToShadow float4x4[4] 월드-그림자 매트릭스입니다. 스폿 광원에 한 개의 매트릭스, 방향 광원 캐스케이드에 최대 네 개의 매트릭스를 지원합니다.

스피리컬 하모닉스 계수(앰비언트 및 라이트 프로브에서 사용됨)는 ForwardBase, PrePassFinal, Deferred 패스 타입용으로 설정됩니다. 이 계수는 월드 공간 노멀에 의해 계산되기 위해 3차 SH를 포함합니다(UnityCG.cgincShadeSH9을 참조하십시오). 이 변수는 모두 half4 타입이며 unity_SHAr 및 이와 비슷한 이름을 가집니다.

버텍스 릿(Vertex-lit) 렌더링(Vertex 패스 타입):

최대 8개의 광원이 Vertex 패스 타입용으로 설정됩니다. 항상 가장 밝은 것부터 어두운 것 순서로 정렬됩니다. 따라서 두 개의 광원에 동시에 영향을 받는 오브젝트를 렌더링하려면 배열의 처음 두 항목을 가져오면 됩니다. 오브젝트에 영향을 미치는 광원이 8개보다 적으면, 나머지는 검은색으로 설정됩니다.

이름 타입
unity_LightColor half4[8] 광원 컬러
unity_LightPosition float4[8] 뷰 공간 광원 포지션. 방향 광원: (-방향,0). 포인트/스폿 광원: (포지션,1).
unity_LightAtten half4[8] 광원 감쇠 팩터. x 는 cos(spotAngle/2) 또는 스폿 광원 아닌 경우 –1입니다. y 는 1/cos(spotAngle/4) 또는 스폿 광원이 아닌 경우 1입니다. z 는 2차 감쇠입니다. w 는 광원 범위 제곱입니다.
unity_SpotDirection float4[8] 뷰 공간 스폿 광원 포지션. 비스폿 광원(0,0,1,0)입니다.

Lightmaps

이름 타입
unity_Lightmap Texture2D Contains lightmap information.
unity_LightmapST float4[8] Scales and translates the UV information to the correct range to sample the lightmap texture.

안개 및 앰비언트

이름 타입
unity_AmbientSky fixed4 그레디언트 주변 조명 케이스의 스카이 주변 조명 컬러
unity_AmbientEquator fixed4 그레디언트 주변 조명 케이스의 이퀘이터 주변 조명 컬러
unity_AmbientGround fixed4 그레디언트 주변 조명 케이스의 그라운드 주변 조명 컬러
UNITY_LIGHTMODEL_AMBIENT fixed4 주변 조명 컬러(그레디언트 주변 케이스의 스카이 컬러). 레거시 변수.
unity_FogColor fixed4 안개 컬러
unity_FogParams float4 안개 계산을 위한 파라미터: (density / sqrt(ln(2)), density / ln(2), –1/(end-start), end/(end-start)). x 는 Exp2 안개 모드, y 는 Exp 모드, zw 는 선형 모드에 유용합니다.

그 외

이름 타입
unity_LODFade float4 LODGroup을 사용할 때의 정밀도 수준(LOD) 페이드. x 는 (01) 사이 페이드, y 는 16단계로 양자화한 페이드, zw 는 사용되지 않습니다.
_TextureSampleAdd float4 텍스처가 Alpha8 포맷으로 사용되는지 여부(사용되면 값이 (1,1,1,0)으로, 사용되지 않으면 값이 (0,0,0,0)으로 설정됨)에 따라 Unity가 UI 전용으로 자동 설정합니다.
빌트인 셰이더 헬퍼 함수
Shader variants and keywords