Unity에는 셰이더를 더 간편하고 쉽게 작성하는 데 유용한 빌트인 유틸리티 기능이 있습니다.
Unity와 함께 제공되는 셰이더 포함 파일의 개요는 빌트인 셰이더 포함 파일을 참조하십시오.
기능: | 설명: |
---|---|
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__와 같으며, 이를 대신하여 사용해야 합니다. |
기능: | 설명: |
---|---|
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) |
정밀도가 낮은 렌더링 타겟에 저장하기 위해 (0–1) 범위 플로트를 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에서 디코딩합니다. |
이 함수는 포워드 렌더링(ForwardBase 또는 ForwardAdd 패스 타입)을 사용하는 경우에만 유용합니다.
기능: | 설명: |
---|---|
float3 WorldSpaceLightDir (float4 v) |
광원을 향한 월드 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에 대해 계산합니다. |
float3 ObjSpaceLightDir (float4 v) |
광원을 향한 오브젝트 공간 방향(정규화되지 않음)을 주어진 오브젝트 공간 버텍스 포지션에 대해 계산합니다. |
float3 Shade4PointLights (...) |
벡터에 조밀하게 채워진 광원 데이터를 사용해 점 광원 4개의 조명을 연산합니다. 포워드 렌더링에서 버텍스당 조명을 연산하는 데 사용됩니다. |
다음은 스크린 공간 텍스처 샘플링에 사용되는 좌표를 계산하는 헬퍼 함수입니다. 텍스처를 샘플링할 최종 좌표를 원근 나누기(예: xy/w
)를 통해 계산할 수 있는float4
를 반환합니다.
함수는 렌더 텍스처 좌표의 플랫폼 차이도 처리합니다.
기능: | 설명: |
---|---|
float4 ComputeScreenPos (float4 clipPos) |
Screenspace 매핑된 텍스처 샘플링을 수행하기 위한 텍스처 좌표를 계산합니다. 입력은 클립 공간 포지션입니다. |
float4 ComputeGrabScreenPos (float4 clipPos) |
GrabPass 텍스처를 샘플링하는 텍스처 좌표를 계산합니다. 입력은 클립 공간 포지션입니다. |
함수는 버텍스당 릿 셰이더(“Vertex” 패스 타입)를 사용하는 경우에만 유용합니다.
기능: | 설명: |
---|---|
float3 ShadeVertexLights (float4 vertex, float3 normal) |
버텍스당 광원 및 앰비언트 4개의 조명을 주어진 오브젝트 공간 포지션 및 노멀에 대해 계산합니다. |