3차원 그래픽에서의 웨이블릿
1. 이게 뭔가요?
3차원 게임 엔진에서 화면에 띄우는 이미지인 텍스처의 용량을 줄이고 단계별로 효율적으로 불러오기 위해 수학적 도구인 하르 웨이블릿을 활용하는 개발 과정을 다룹니다.
2. 왜 화제인가요?
기존에는 모든 이미지를 한 번에 불러오느라 화면이 멈추는 현상이 발생해 게임의 몰입감을 떨어뜨렸습니다. 반면 이 방식은 이미지를 단계별로 나누어 불러와 화면 끊김을 막고 메모리 부담을 줄여주기 때문에 중요합니다.
3. 핵심 내용
컴퓨터 게임에서는 고화질 이미지와 크기별 축소 버전을 함께 저장하므로 많은 메모리가 필요합니다. 과거에는 메모리 한계로 인해 이미지를 8비트 색상표로 줄이는 방식을 썼으나 화면이 뚝뚝 끊기는 문제가 있었습니다. 이를 해결하기 위해 하르 웨이블릿 방식을 적용하면 데이터를 짝지어 평균과 변화량을 구하는 단순한 덧셈 연산만으로 이미지를 압축하고 복원할 수 있습니다. 이미지는 가로와 세로가 있는 격자 형태이므로 비표준 분해 방식을 사용해 멀리 있는 흐린 이미지부터 가까이 있는 선명한 이미지까지 단계별로 불러올 수 있습니다. 개발자는 이미지 데이터가 한 번에 몰려 화면이 멈추는 것보다 꾸준히 일정한 속도를 유지하는 편이 낫다고 판단했습니다. 변환된 값들 중 중요하지 않은 항목을 0으로 바꾸고 정리한 뒤 최종 용량을 줄였습니다. 압축률을 조금 더 높이려고 속도가 크게 느려지는 방식을 쓰는 것은 득보다 실이 컸습니다. 다만 이 방식을 쓰면 표면 관리를 위한 프로그램 구조가 복잡해지고, 색상 대비가 심한 무늬에서는 네모난 격자 흔적이 눈에 띄며, 8배에서 35배 사이로 압축했을 때 텍스처가 거칠어지는 한계가 있습니다.
4. 나에게 어떤 영향이 있나요?
일반 독자의 일상생활에 직접적인 변화를 주지는 않지만, 게임 개발 관점에서는 메모리 부족 문제를 해결하면서 이미지 압축과 복원 속도의 균형을 맞추는 하나의 설계 사례를 보여줍니다.