Version: 2022.2
언어: 한국어
Metal 소개
Metal 그래픽스 디버깅

Metal 요구 사항 및 호환성

이 페이지에는 Metal 사용에 대한 요구 사항과 Metal과 호환되는 기능이 열거되어 있습니다.

플랫폼 호환성

Unity는 iOS, tvOS, macOS에서 Unity 플레이어용 Metal을 지원합니다.또한 Unity는 macOS에서 Unity 에디터용 Metal을 지원합니다.

하드웨어 호환성

Unity는 Unity가 지원하는 모든 Apple 기기에 Metal을 지원합니다.

렌더 파이프라인 호환성

기능 빌트인 렌더 파이프라인 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) 커스텀 스크립터블 렌더 파이프라인(SRP)
Metal 지원 지원 지원(macOS만) 지원

셰이더 호환성

  • Metal은 최소 셰이더 컴파일 타겟이 3.5인 셰이더를 지원합니다.
  • Metal은 지오메트리 셰이더를 지원하지 않습니다.

셰이더 데이터 타입 지원

일부 Metal 기기는 16비트 half 데이터 타입을 지원하지 않습니다.이러한 기기에서 Unity 셰이더는 half를 32비트 float로 표현합니다.마찬가지로 Unity 셰이더는 real 데이터 타입을 모바일 디바이스에서 half로 표현하고 데스크톱 플랫폼에서 float로 표현합니다.이 문서 섹션은 half 데이터 타입을 사용하고 half를 지원하지 않는 기기에 애플리케이션을 배포하려는 경우와 관련이 있습니다.

올바른 위치에서 half를 사용하면 작업 속도를 높이고, 메모리 사용량을 줄이며, 모바일 디바이스의 배터리 사용량을 줄일 수 있습니다.고정밀도가 필요하지 않은 값에는 half를 사용하고 이 문서 섹션의 정보를 사용하여 코드로 half를 지원하지 않는 기기를 처리하는 것이 가장 좋습니다.

지원하는 셰이더 데이터 타입 및 정밀도에 대한 자세한 내용은 셰이더 데이터 타입 및 정밀도를 참조하십시오.

지원의 시사점

16비트 부동 소수점 숫자는 32비트 부동 소수점 숫자에 비해 정밀도가 낮습니다.half를 사용하고 이를 지원하는 기기에서 애플리케이션을 테스트하면 낮은 정밀도로 인해 발생하는 문제를 확인하고 수정할 수 있는 경우가 많습니다.하지만 half를 지원하지 않는(그리고 halffloat로 대체하는) 기기에서 애플리케이션을 테스트하면 나중에 half를 지원하는 기기에서 애플리케이션이 실행될 때 발생하는 정밀도 문제를 숨길 수 있습니다.

half를 지원하지 않는 기기에 Unity 애플리케이션을 배포하려면 floathalf로 대체했을 때 코드가 작동하는지 확인해야 합니다.또한 half를 지원하는 Metal GPU도 상수 버퍼를 비롯한 버퍼에 16비트 값이 포함될 것으로 예상합니다.half를 지원하지 않는 GPU는 이러한 버퍼에 32비트 값이 포함될 것으로 예상합니다.버퍼에 값을 쓸 때 CPU 측 코드에 이 점을 고려해야 합니다.

Metal 소개
Metal 그래픽스 디버깅