Playdate向け小型3Dレンダラー自作記
원제: Building a Tiny 3D Renderer for a Tiny Handheld
왜 중요한가
GPU 없는 저사양 디바이스에서 순수 CPU 기반 3D 렌더러 구현 사례는 임베디드 및 인디 게임 개발 커뮤니티에 실질적인 기술 참고 자료가 된다.
개발자 Cristina Ramos가 소형 휴대용 게임기 Playdate를 위한 3D 소프트웨어 렌더러를 자체 제작한 과정을 공개했다. GPU가 없는 Playdate의 CPU만으로 3D 그래픽을 구현하기 위해 레이캐스터 벤치마크부터 시작해 성능 한계를 분석, 1비트 디스플레이의 메모리 효율을 활용する방식을 채택했다.
Cristina Ramos는 itch.io 개발 로그를 통해 Playdate용 3D 소프트웨어 렌더러 개발 과정을 상세히 공개했다. 개발 초기에는 성능 기준치가 없어 Ken Silverman의 코드 예제를 기반으로 작성한 레이캐스터를 벤치마크 도구로 사용했다. 이 테스트는 부동소수점 연산 속도, 벡터 수학 처리, 메모리 작업 속도, 화면 드로잉 성능, 프레임버퍼 구성 등 3D 렌더러에서 핵심적인 영역들을 평가하기 위한 것이었다.
초기 벤치마크 결과는 예상보다 좋지 않았다. Playdate는 3dfx Voodoo 같은 초기 3D 가속기나 초대 PlayStation 수준의 3D 장면을 실시간으로 처리할 만한 성능이 없음이 확인됐다. 그러나 Playdate의 저해상도 소형 화면과 1비트 디스플레이 특성이 메모리 효율 면에서 큰 이점을 제공한다는 점에 주목했다.
Ramos는 3DO나 Sega Saturn 시대 게임과 유사한 시각적 결과물을 목표로 설정했다. 다만 이는 하드웨어 방식이 아닌 체감적 결과를 의미하는 것임을 강조했다. 3DO와 Saturn은 폴리곤 드로잉을 위한 전용 그래픽 하드웨어를 탑재했으나, Playdate는 3D 전용 하드웨어가 전혀 없어 폴리곤 정렬, 래스터라이제이션, 깊이 버퍼, 뷰 프러스텀 클리핑, 텍스처 매핑 등 모든 작업을 CPU만으로 처리해야 한다.