이 페이지에는 특히 GPU 성능이 제한된 모바일 플랫폼에서 런타임 성능을 위해 셰이더를 최적화하는 방법에 대한 정보가 포함되어 있습니다.
복잡한 계산을 피하려면 다음을 수행하십시오.
pow, log, sin 같이 리소스를 많이 소모하는 함수 대신 룩업 텍스처를 사용합니다.normalize 및 dot 같은 Unity HLSL 함수를 사용합니다. 이렇게 하면 드라이버가 더 나은 코드를 생성할 수 있습니다.셰이더가 계산을 반복하지 않도록 하려면 다음을 수행하십시오.
월드 공간 좌표와 텍스처 좌표를 제외한 모든 변수에 float 대신 half를 사용합니다. 자세한 내용은 셰이더에서 16비트 정밀도 사용을 참조하십시오.
Unity는 접미사를 지원하지 않으므로 2.0h 같은 값은 전체 float가 됩니다. 즉, GPU가 계산을 할 때 다른 값을 float로 다시 전환해야 할 수 있습니다. 이렇게 하면 셰이더가 느려질 수 있습니다.
이를 방지하려면 접미사 대신 캐스트를 사용하십시오. 예를 들어 2.0h 대신 half(2.0)를 사용합니다.
셰이더가 느려지지 않도록 다음과 같이 리소스를 많이 소모하는 메서드를 사용하지 마십시오.
discard 메서드모바일 GPU가 초기 뎁스 테스트를 사용하여 렌더링 속도를 높이려면 프래그먼트 셰이더의 뎁스 버퍼에 작성하지 마십시오.
뎁스 테스트에 대한 자세한 내용은 ShaderLab 커맨드: ZTest를 참조하십시오.