Version: Unity 6.0 (6000.0)
언어 : 한국어
셰이더 모델 기반 브랜치
Unity 버전에 기반한 브랜치

플랫폼 기능 기반 브랜치

이 플랫폼 매크로를 직접 사용하는 것은 장래성을 충분히 보장하지 않기 때문에 권장하지 않습니다. 예를 들어, D3D11을 확인하는 셰이더를 작성하는 경우 나중에 확인을 확장하여 Vulkan이 포함되도록 해야 할 수 있습니다. 대신 Unity는 HLSLSupport.cginc에 몇 가지 헬퍼 매크로를 정의합니다.

매크로: 용도:
UNITY_BRANCH 실제 브랜치로 컴파일해야 함을 컴파일러에 알리기 위해 조건문 앞에 추가합니다. HLSL 플랫폼에서는 [branch]로 확장됩니다.
UNITY_FLATTEN 실제 브랜치 명령을 방지하기 위해 평면화해야 함을 컴파일러에 알리기 위해 조건문 앞에 추가합니다. HLSL 플랫폼에서는 [flatten]로 확장됩니다.
UNITY_NO_SCREENSPACE_SHADOWS 캐스캐이드된 스크린 공간 섀도우맵을 사용하지 않는 플랫폼(모바일 플랫폼)에서 정의합니다.
UNITY_NO_LINEAR_COLORSPACE 리니어 색 공간을 지원하지 않는 플랫폼(모바일 플랫폼)에서 정의합니다.
UNITY_NO_RGBM 라이트맵용 RGBM 압축을 사용하지 않는 플랫폼(모바일 플랫폼)에서 정의합니다.
UNITY_NO_DXT5nm DXT5nm 노멀 맵 압축을 사용하지 않는 플랫폼(모바일 플랫폼)에서 정의합니다.
UNITY_FRAMEBUFFER_FETCH_AVAILABLE ‘프레임버퍼 컬러 페치’ 기능을 사용할 수 있는 플랫폼(일반적으로 iOS 플랫폼)에서 정의합니다.
UNITY_USE_RGBA_FOR_POINT_SHADOWS 점 광원 섀도우맵에 인코딩된 뎁스가 있는 RGBA 텍스처를 사용하는 플랫폼에서 정의합니다. 그 외의 플랫폼에는 싱글 채널 플로팅 포인트 텍스처가 사용됩니다.
UNITY_ATTEN_CHANNEL 데이터가 포함된 광원 감쇠 텍스처 채널을 정의하고, 픽셀당 광원 코드에 사용됩니다. ‘r’ 또는 ’a’로 정의됩니다.
UNITY_HALF_TEXEL_OFFSET 텍셀을 픽셀에 매핑할 때, 하프 텍셀 오프셋 조정이 필요한 플랫폼에서 정의합니다.
UNITY_UV_STARTS_AT_TOP 항상 1 또는 0으로 정의됩니다. 텍스처 ’맨 위’의 텍스처 V 좌표가 0인 플랫폼에서는 값이 1입니다. Direct3D와 유사한 플랫폼에서는 1이 값으로 사용되고 OpenGL과 유사한 플랫폼에서는 0이 값으로 사용됩니다.
UNITY_MIGHT_NOT_HAVE_DEPTH_Texture 플랫폼에서 수동으로 뎁스를 텍스처로 렌더링하여 섀도우 맵 또는 뎁스 텍스처를 에뮬레이트할 수 있는 경우 정의됩니다.
UNITY_PROJ_COORD(a) 컴포넌트가 4개인 벡터가 주어지면 투사된 텍스처 읽기에 적합한 텍스처 좌표를 반환합니다. 대부분의 플랫폼에서는 주어진 값을 직접 반환합니다.
UNITY_NEAR_CLIP_VALUE 근거리 클리핑 평면 값으로 정의됩니다. Direct3D와 유사한 플랫폼은 1.0을 사용하고 OpenGL과 유사한 플랫폼은 –1.0을 사용합니다.
UNITY_VPOS_TYPE 픽셀 위치 입력(VPOS)에 요구되는 데이터 유형을 정의합니다. D3D9에서는 float2고 그 외의 경우 float4입니다.
UNITY_CAN_COMPILE_TESSELLATION 셰이더 컴파일러가 테셀레이션 셰이더 HLSL 구문을 이해하는 경우에 정의됩니다(현재 D3D11에만 해당).
UNITY_INITIALIZE_OUTPUT(type,name) 주어진 유형_의 변수 이름_을 0으로 초기화합니다.
UNITY_COMPILER_HLSL, UNITY_COMPILER_HLSL2GLSL, UNITY_COMPILER_CG 셰이더를 컴파일하는 데 사용되는 셰이더 컴파일러를 나타냅니다. 자세한 내용은 셰이더 컴파일 기술 자료를 참조하십시오. 컴파일러 간 차이를 다루는 매우 구체적인 셰이더 구문에 직면하는 경우에 각 컴파일러마다 다른 코드를 작성하려면 사용합니다.
  • UNITY_REVERSED_Z - 역 Z 버퍼를 사용하여 플랫폼에서 정의됩니다. 저장된 Z 값은 0–1이 아닌 1–0 범위입니다.

추가 리소스

셰이더 모델 기반 브랜치
Unity 버전에 기반한 브랜치