Version: 2018.2
미리 정의된 셰이더 프리프로세서 매크로
빌트인 셰이더 변수

빌트인 셰이더 헬퍼 함수

Unity에는 셰이더를 더 간편하고 쉽게 작성하는 데 유용한 빌트인 유틸리티 기능이 있습니다.

UnityCG.cginc에서 선언되는 함수

Unity와 함께 제공되는 셰이더 포함 파일의 개요는 빌트인 셰이더 포함 파일을 참조하십시오.

UnityCG.cginc의 버텍스 트랜스폼 함수

기능: 설명:
float4 UnityObjectToClipPos(float3 pos) 오브젝트 공간의 한 점을 동질적인 좌표에 있는 카메라의 클립 공간으로 변환합니다. mul(UNITY_MATRIX_MVP, float4(pos, 1.0))과 같으며, 이를 대신하여 사용해야 합니다.
float3 UnityObjectToViewPos(float3 pos) 오브젝트 공간의 한 점을 뷰 공간으로 변환합니다. __mul(UNITY_MATRIX_MV, float4(pos, 1.0)).xyz__와 같으며, 이를 대신하여 사용해야 합니다.

UnityCG.cginc의 일반 헬퍼 함수

기능: 설명:
float3 WorldSpaceViewDir (float4 v) 월드 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에서 카메라 쪽으로 되돌립니다.
float3 ObjSpaceViewDir (float4 v) 오브젝트 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에서 카메라 쪽으로 되돌립니다.
float2 ParallaxOffset (half h, half height, half3 viewDir) 패럴랙스 노멀 매핑의 UV 오프셋을 계산합니다.
fixed Luminance (fixed3 c) 컬러를 휘도(그레이스케일)로 변환합니다.
fixed3 DecodeLightmap (fixed4 color) Unity 라이트맵에서 컬러를 디코딩합니다(플랫폼에 따라 RGBM 또는 dLDR).
float4 EncodeFloatRGBA (float v) 정밀도가 낮은 렌더링 타겟에 저장하기 위해 [01) 범위 플로트를 RGBA 컬러로 인코딩합니다.
float DecodeFloatRGBA (float4 enc) RGBA 컬러를 플로트로 디코딩합니다.
float2 EncodeFloatRG (float v) [0–1) 범위 플로트를 float2로 인코딩합니다.
float DecodeFloatRG (float2 enc) 이전에 인코딩된 RG 플로트를 디코딩합니다.
float2 EncodeViewNormalStereo (float3 n) 뷰 공간 노멀을 범위가 01인 숫자 2개로 인코딩합니다.
float3 DecodeViewNormalStereo (float4 enc4) 뷰 공간 노멀을 enc4.xy에서 디코딩합니다.

UnityCG.cginc의 포워드 렌더링 헬퍼 함수

이 함수는 포워드 렌더링(ForwardBase 또는 ForwardAdd 패스 타입)을 사용하는 경우에만 유용합니다.

기능: 설명:
float3 WorldSpaceLightDir (float4 v) 광원을 향한 월드 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에 대해 계산합니다.
float3 ObjSpaceLightDir (float4 v) 광원을 향한 오브젝트 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에 대해 계산합니다.
float3 Shade4PointLights (...) 벡터에 조밀하게 채워진 광원 데이터를 사용해 점 광원 4개의 조명을 연산합니다. 포워드 렌더링에서 버텍스당 조명을 연산하는 데 사용됩니다.

UnityCG.cginc의 스크린 공간 헬퍼 함수

다음은 스크린 공간 텍스처 샘플링에 사용되는 좌표를 계산하는 헬퍼 함수입니다. 텍스처를 샘플링할 최종 좌표를 원근 나누기(예: xy/w)를 통해 계산할 수 있는float4를 반환합니다.

함수는 렌더 텍스처 좌표의 플랫폼 차이도 처리합니다.

기능: 설명:
float4 ComputeScreenPos (float4 clipPos) Screenspace 매핑된 텍스처 샘플링을 수행하기 위한 텍스처 좌표를 계산합니다. 입력은 클립 공간 포지션입니다.
float4 ComputeGrabScreenPos (float4 clipPos) GrabPass 텍스처를 샘플링하는 텍스처 좌표를 계산합니다. 입력은 클립 공간 포지션입니다.

UnityCG.cginc의 버텍스 릿 헬퍼 함수

함수는 버텍스당 릿 셰이더(“Vertex” 패스 타입)를 사용하는 경우에만 유용합니다.

기능: 설명:
float3 ShadeVertexLights (float4 vertex, float3 normal) 버텍스당 광원 및 앰비언트 4개의 조명을 주어진 오브젝트 공간 포지션 및 노멀에 대해 계산합니다.
미리 정의된 셰이더 프리프로세서 매크로
빌트인 셰이더 변수