Metal 요구 사항 및 호환성
이 페이지에는 Metal 사용에 대한 요구 사항과 Metal과 호환되는 기능이 열거되어 있습니다.
Unity는 iOS, tvOS, macOS에서 Unity 플레이어용 Metal을 지원합니다.또한 Unity는 macOS에서 Unity 에디터용 Metal을 지원합니다.
Unity는 Unity가 지원하는 모든 Apple 기기에 Metal을 지원합니다.
기능 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 스크립터블 렌더 파이프라인(SRP) |
---|---|---|---|---|
Metal | 지원 | 지원 | 지원(macOS만) | 지원 |
일부 Metal 기기는 16비트 half
데이터 타입을 지원하지 않습니다.이러한 기기에서 Unity 셰이더는 half
를 32비트 float
로 표현합니다.마찬가지로 Unity 셰이더는 real
데이터 타입을 모바일 디바이스에서 half
로 표현하고 데스크톱 플랫폼에서 float
로 표현합니다.이 문서 섹션은 half
데이터 타입을 사용하고 half
를 지원하지 않는 기기에 애플리케이션을 배포하려는 경우와 관련이 있습니다.
올바른 위치에서 half
를 사용하면 작업 속도를 높이고, 메모리 사용량을 줄이며, 모바일 디바이스의 배터리 사용량을 줄일 수 있습니다.고정밀도가 필요하지 않은 값에는 half
를 사용하고 이 문서 섹션의 정보를 사용하여 코드로 half
를 지원하지 않는 기기를 처리하는 것이 가장 좋습니다.
지원하는 셰이더 데이터 타입 및 정밀도에 대한 자세한 내용은 셰이더 데이터 타입 및 정밀도를 참조하십시오.
16비트 부동 소수점 숫자는 32비트 부동 소수점 숫자에 비해 정밀도가 낮습니다.half
를 사용하고 이를 지원하는 기기에서 애플리케이션을 테스트하면 낮은 정밀도로 인해 발생하는 문제를 확인하고 수정할 수 있는 경우가 많습니다.하지만 half
를 지원하지 않는(그리고 half
를 float
로 대체하는) 기기에서 애플리케이션을 테스트하면 나중에 half
를 지원하는 기기에서 애플리케이션이 실행될 때 발생하는 정밀도 문제를 숨길 수 있습니다.
half
를 지원하지 않는 기기에 Unity 애플리케이션을 배포하려면 float
를 half
로 대체했을 때 코드가 작동하는지 확인해야 합니다.또한 half
를 지원하는 Metal GPU도 상수 버퍼를 비롯한 버퍼에 16비트 값이 포함될 것으로 예상합니다.half
를 지원하지 않는 GPU는 이러한 버퍼에 32비트 값이 포함될 것으로 예상합니다.버퍼에 값을 쓸 때 CPU 측 코드에 이 점을 고려해야 합니다.