오늘은 모바일 디바이스에서 업스케일링을 위한 동급 최고의 오픈 소스 해법인 "Arm 정확도 초해상도"(Arm ASR)를 소개합니다. 이 글에서는 우리의 접근 방식을 설명하오니 이 여정에 동참해 주시기 바랍니다.
훌륭한 게임은 플레이어를 감성적인 여정으로 안내합니다. 이를 위해 게임 개발자 키트에는 감성을 자극하는 음악, 상상력을 자극하는 조작 방식, 그래픽 효과 등 다양한 도구가 있습니다. 그래픽에 초점을 맞추면 모바일 게임에서 얼마나 정교한 그래픽을 구현할 수 있는지 놀라울 정도입니다. 게임은 수백만 개의 픽셀이 포함된 화면으로 렌더링되고 60Hz 이상의 속도로 새로 고쳐집니다. 놀랍습니다.
최신 모바일 게임은 개발자의 비전을 실현하기 위해 복잡한 조명과 셰이더로 한계를 뛰어넘습니다. 이 모든 것에는 GPU에 부담을 주고 더 많은 양의 전력을 소모하는 대가가 따릅니다. 하이엔드 PC에서도 무언가 희생이 필요하다는 것을 알고 있습니다. 이것이 바로 업스케일링 기술이 필요한 이유입니다.
Arm ASR: Arm Accuracy Super Resolution
업스케일링은 프레임의 일부 단계를 낮은 해상도로 렌더링한 다음 나중에 이 기술을 적용하여 낮은 해상도에서 높은 해상도로 스케일링하는 방식으로 작동합니다. 전체 화면 효과나 사용자 인터페이스를 렌더링할 때 보기 흉한 결함이 발생할 수 있으므로 프레임 렌더링의 모든 단계에서 사용해서는 안 됩니다. 하지만 파이프라인의 초기 단계에서 효과적으로 사용할 수 있으며 프로세스의 일부로 앤티 앨리어싱을 제공할 수 있습니다.
프레임에 업스케일링 통합
포스트프로세스 기술 의 예
Lighting Based Post-processing | Image Based Post-processing |
Screenspace Reflections | Film grain |
Screenspace ambient occlusion | Chromatic aberration |
Denoisers (shadows, reflections) | Vignette |
Exposure | Tonemapping |
여러 솔루션 중에서 저희는 AMD의 FidelityFX 슈퍼 해상도 2(FSR2)에 주목했습니다. 이 솔루션은 2016년에 시작된 오픈 소스 프로젝트인 GPUOpen의 요소입니다. 허용된 MIT 라이선스를 사용하여 PC와 콘솔 사이에 존재하는 격차를 해소하는 데 따르는 부담을 덜어주는 휴대용 솔루션을 제공하는 것이 목적입니다. 이러한 가치는 저희의 관심을 사로잡았고, 모바일을 위한 좋은 솔루션이 어떤 모습이어야 하는지 스스로에게 질문하게 만들었습니다.
업스케일러의 유형
업스케일러는 공간적 업스케일러와 시간적 업스케일러의 두 가지 종류가 있습니다. 전자가 가장 먼저 출시되어 개발자들이 사용할 수 있게 되었습니다.
공간 업스케일러는 프레임 단위로 작동하여 결과를 생성하므로 이해하기 쉬울 뿐만 아니라 이를 호스팅하는 게임 엔진의 요구 사항도 낮습니다. 공간 업스케일러의 예로는 FSR1과 퀄컴의 게임 슈퍼 해상도(GSR)가 있습니다. 이 기술의 단점은 최종 이미지가 흐릿해지기 때문에 개발자가 렌더링할 해상도를 너무 과감하게 선택할 수 없다는 것입니다. 반대로 계산적인 측면에서는 상대적으로 저렴합니다.
템포럴 업스케일러는 여러 프레임에서 파생된 정보를 결합하여 최종 결과를 생성하기 때문에 더 복잡합니다. 하지만 일반적으로 저해상도 대상에서 더 높은 품질의 이미지를 생성합니다. 여기에는 엔진의 추가 입력 요구 사항이 따릅니다. 예를 들어 뎁스 및 모션 벡터 정보를 제공해야 합니다. 파티클 효과와 같이 깊이 또는 모션 정보가 부족한 피처를 처리할 때는 반응형 마스크를 사용하는 것이 바람직합니다.
템포럴 업스케일러의 시대로
우리는 일반적인 그래픽 성능 문제를 해결하는 동시에 모바일 게임 개발자에게 혜택을 제공하기 위해 템포럴 업스케일링으로 직접 전환하기로 결정했습니다. 저희의 출발점은 훌륭한 결과를 제공하지만 PC와 하이엔드 콘솔에서만 구현할 수 있는 AMD의 FSR2 업스케일러였습니다. 저희는 FSR2에서 솔루션을 도출했기 때문에 개발자는 익숙한 API와 구성 옵션의 이점을 누릴 수 있습니다.
조사의 일환으로 잘 알려진 비스트로 장면을 사용했습니다. 약 280만 개의 트라이앵글을 렌더링하는 사실적인 컴퓨팅 문제를 만들기 위해 더 많은 로컬 조명과 겹치는 조명을 추가하고 메인 조명의 감쇠를 추가했습니다.
NVIDIA에서 제공한 비스트로 장면으로 크리에이티브 커먼즈 CC-BY-4.0 라이선스에 따라 공개되었습니다.
Arm Immortalis-G720 GPU와 2800x1260의 디스플레이 해상도를 갖춘 상용 모바일 기기에서 수집한 결과를 분석했습니다. 그 결과 GPU 성능이 크게 향상되었음을 확인할 수 있었습니다.
Arm ASR, FSR2, FSR1 및 GSR을 사용한 네이티브 해상도 및 업스케일링 성능의 프레임 속도 분석.
또한 이 기술을 사용하면 안정적이고 낮은 온도에서 고품질의 결과물을 렌더링할 수 있다는 점도 중요합니다. 기본 해상도로 렌더링하면 필연적으로 바람직하지 않은 열 스로틀링이 발생하며, 이는 게임에서 사용자 경험을 망치고 몰입도를 떨어뜨릴 수 있습니다.
Arm ASR 성능
Arm ASR의 뛰어난 성능은 GPU 부하와 대역폭 요구 사항을 모두 줄인 고효율 셰이더 코드의 조합입니다.
FSR2 및 Arm ASR의 GPU 성능 분석
이러한 성능 향상은 전력 절감으로 이어져 사용자가 더 긴 배터리 수명을 누릴 수 있어 일상 생활에서 큰 이점을 누릴 수 있습니다. 이러한 주장을 검증하기 위해 MediaTek과의 협업의 일환으로 Dimensity 9300 모바일디바이스을 사용하여 다음과 같은 결과를 얻었습니다.
기본 전체 해상도(1080p), Arm ASR 품질, 540p에서 1080p로의 밸런스 및 성능 업스케일링, 기본 절반 해상도(540p)를 위한 전력 소비량.
Arm 게임 콘텐츠 팀은 미래의 모바일 GPU에 도전하기 위한 언리얼 엔진 데모를 제작하기 위해 열심히 노력해 왔습니다. 이 콘텐츠에 Arm ASR을 적용할 수 있는 기회를 놓칠 수 없었습니다.
"모리" 데모, Arm 콘텐츠 팀 제공
보시다시피 이 장면에는 다양하고 미세한 디테일이 있습니다. 그렇기 때문에 AMD의 FSR1 및 2와 마찬가지로 Arm ASR에서도 강력한 콘트라스트 적응형 샤프닝(RCAS)을 지원합니다. 결과는 그 자체로 증명됩니다:
Enlarged sections of the “Mori” scene.
언리얼 엔진용 얼리 액세스 플러그인
이제 에픽게임즈의 언리얼 엔진용 얼리 액세스 플러그인으로 Arm ASR을 사용할 수 있습니다. 아래 동영상은 언리얼 엔진의 데스크톱 렌더러를 사용하여 개발자가 도달할 수 없는 성능 최적화 기회를 제공하는 Arm ASR ON의 이점을 강조합니다.
오픈소스로 결과 공유
우리는 이 작업의 결과를 매우 자랑스럽게 생각하며 MIT 오픈 소스 라이선스에 따라 개발자 커뮤니티와 공유하고자 합니다. 이를 통해 모든 개발자가 Arm ASR의 이점을 직접 확인하고 자신의 프로젝트에서 실험해 볼 수 있습니다. 얼리 어답터가 되고 싶다면 뉴스레터를 구독하세요.
역자 추가.
Arm ASR(Accuracy Super Resolution)와 AMD FSR(FidelityFX Super Resolution)의 주요 차이점은 다음과 같습니다:
- 목적 및 플랫폼:
- AMD FSR: 주로 고성능 게이밍 PC와 콘솔을 대상으로 설계되었습니다.
- Arm ASR: 저전력 모바일 디바이스를 위해 최적화되었습니다.
- 성능 및 효율성:
- AMD FSR: 고성능 장치에서 높은 품질의 업스케일링을 제공하며, 주로 고해상도와 고프레임 레이트를 목표로 합니다.
- Arm ASR: 모바일 디바이스에서 GPU 사용량을 줄이고 배터리 수명을 연장하는 데 중점을 둡니다. Arm의 내부 테스트에 따르면, 동일한 해상도와 스케일링 팩터에서 ASR은 FSR2에 비해 최대 1.5배 더 빠른 GPU 성능을 제공합니다.
- 기술적 차이:
- AMD FSR: 고성능 장치에서 복잡한 조명과 셰이더를 처리할 수 있도록 설계되었습니다.
- Arm ASR: 모바일 디바이스에서 더 나은 성능을 제공하기 위해 FSR2를 기반으로 최적화되었습니다.
이러한 차이점 덕분에 각 기술은 자신이 목표로 하는 플랫폼에서 최적의 성능을 발휘할 수 있습니다.
Original Topic here.
'TECH.ART.FLOW.IO' 카테고리의 다른 글
[번역] Advanced Shading Techniques with Pixel Local Storage (4) | 2024.10.21 |
---|---|
[번역] [물리적 렌더링 (PBR) 백서] (3) 디즈니 원칙의 BRDF 및 BSDF 요약 (9) | 2024.10.11 |
[번역] URP 17, RenderGraph Invalid version: 20 (2) | 2024.10.06 |
[번역] Unity6에서 RenderGraph를 활용해보자 - 구현 응용편 1편 (0) | 2024.10.06 |
[번역]Unity6에서 RenderGraph를 활용해보자 - 기본 기능편 (1) | 2024.10.06 |