Skip to content

GLB 최적화 도구 ​

GLB 또는 glTF 파일의 용량을 줄이고 렌더링 비용을 낮추세요. 파일을 놓고 원하는 작업을 선택하면 됩니다. 어디에서도 참조하지 않는 데이터를 제거하고, 지오메트리를 용접 및 단순화하고, 드로 콜을 줄이도록 메시를 병합하고, 텍스처 크기를 조정해 다시 인코딩하고, 전체 파일을 Meshopt로 압축할 수 있습니다. 각 단계가 끝날 때마다 파일 용량을 확인하고, 확정하기 전에 결과를 미리 볼 수 있으며, 어떤 데이터도 업로드되지 않습니다. 최적화와 미리보기는 무료이며, 결과 다운로드는 Standard 및 Pro 요금제에 포함됩니다.

Meshopt 압축

훨씬 적은 용량만 배포하세요.

아무것도 참조하지 않는 데이터를 걷어내고, 지오메트리를 병합·단순화하고, 텍스처를 다시 인코딩한 다음 전부 Meshopt로 압축합니다. 단계마다 용량 수치가 나오고, 확정하기 전에 결과를 미리 볼 수 있습니다.

단계마다 수치 표시다운로드 전 미리보기업로드 없음
4.0 MB676 KB

84% smaller. Our sample character with 10 clips baked in.

Remove unused data3.8 MB
Weld vertices3.8 MB
Trim animation keyframes3.6 MB
Meshopt compression676 KB
파일 용량을 줄여 볼까요?

Meshopt, 양자화, 그리고 여기에서 Draco를 지원하지 않는 이유 ​

Meshopt(EXT_meshopt_compression)는 기본 옵션이며, 브라우저에서 실행되는 콘텐츠에 가장 적합한 선택입니다. Draco와 비슷한 수준까지 용량을 줄이면서도 몇 배 더 빠르게 디코딩됩니다. 플레이어가 로딩 화면을 보는 동안 디코딩이 이루어지므로 이 차이는 중요합니다. three.js, Babylon.js, PlayCanvas 모두 Meshopt를 읽을 수 있으며, 디코더도 신경 쓰지 않아도 될 만큼 작습니다.

**양자화(Quantize)**에는 확장이 전혀 필요하지 않습니다. 위치, 노멀, UV를 더 작은 숫자 형식으로 저장하며, 모든 glTF 로더가 별도 디코더 없이 읽을 수 있습니다. 절감 폭은 비교적 작지만 파일이 표준 glTF 형식으로 유지되므로, 직접 관리하지 않는 파이프라인에 전달할 때 가장 안전합니다.

Draco 파일은 여기에서 문제없이 열 수 있으므로 압축을 해제하거나 Meshopt로 전환할 수 있습니다. 하지만 Draco로 인코딩하는 것은 다른 문제이며 이 도구에서는 지원하지 않습니다. 브라우저에서 실행되는 유일한 Draco 인코더는 초기화에만 몇 분이 걸리는 asm.js 빌드이고, 현재 유지 관리되는 패키지는 Node 전용 빌드만 제공합니다. 탭을 멈추게 하는 버튼을 제공하는 것은 아예 제공하지 않는 것보다 못합니다. Draco 출력이 꼭 필요하다면 glTF-Transform CLI를 사용하여 컴퓨터에서 명령 하나로 처리할 수 있습니다.

bash
npx @gltf-transform/cli draco input.glb output.glb

각 단계에서 실제로 하는 일 ​

미사용 데이터 제거는 prune과 dedup을 실행합니다. 내보내기 도구는 흔히 어디에서도 사용되지 않는 머티리얼, 이름만 다른 중복 텍스처, 빈 노드를 남깁니다. 두세 개의 도구를 거친 파일이라면 이 작업만으로도 눈에 띄게 용량이 줄어드는 경우가 많으며, 모델의 외형에는 영향을 주지 않습니다.

버텍스 용접은 위치와 노멀이 같은 버텍스를 병합하여 삼각형 집합을 인덱스 메시로 변환합니다. 대부분의 내보내기 도구는 이미 이 작업을 처리하지만, 그렇지 않은 도구로 만든 파일은 공유되는 각 모서리마다 버텍스 사본 세 개를 저장하게 됩니다.

머티리얼별 메시 결합은 드로 콜을 줄이는 기능입니다. 모델이 하나의 머티리얼을 사용하는 200개의 개별 오브젝트로 구성되어 있다면, GPU는 한 번에 끝낼 수 있는 작업을 200번 수행하게 됩니다. 메시를 결합하면 계층 구조가 평탄화되므로 기본적으로 꺼져 있습니다. 게임에서 개별 부품을 움직이거나 모델에 리그가 적용되어 있다면 이 계층 구조가 필요합니다.

지오메트리 단순화는 Meshopt 단순화 도구로 메시를 감축하여 설정한 삼각형 비율에 맞춥니다. 아무도 원하지 않은 수십만 개의 삼각형이 포함된 스캔 모델이나 CAD 모델에 적합한 조정 옵션입니다. 약 40% 아래로 낮추면 유기적인 형태에서 변화가 눈에 띄기 시작하지만, 하드 서피스에서는 그 영향이 비교적 적습니다.

애니메이션 키프레임 정리는 애니메이션 트랙을 리샘플링하고, 양옆 키프레임 사이의 직선상에 놓인 키프레임을 제거합니다. 모든 프레임을 베이크하는 도구에서 60fps로 내보낸 클립이라면 애니메이션 데이터가 파일 대부분을 차지할 수 있습니다.

텍스처 단계에서는 크기를 조정하고 다시 인코딩합니다. WebP는 같은 품질의 PNG보다 용량이 대략 3분의 1이며, 현재 사용되는 모든 브라우저에서 지원됩니다. 게임 모델에서는 최대 크기를 1024로 제한해도 대개 차이가 보이지 않으며, 다운로드 용량을 줄이는 가장 효과적인 방법인 경우가 많습니다.

다운로드 용량과 메모리 사용량은 다릅니다 ​

압축은 파일 용량을 줄이지만, 텍스처가 업로드된 후 차지하는 비디오 메모리에는 아무런 영향을 주지 않습니다. JPEG, PNG, WebP 모두 GPU에서 원시 픽셀로 풀리기 때문입니다. 2048×2048 텍스처는 다운로드 용량이 4MB이든 200KB이든 VRAM에서 약 22MB를 차지합니다.

GLB 뷰어에서 파일 용량이 아니라 텍스처 메모리가 문제라고 표시된다면 해결책은 KTX2입니다. KTX2는 메모리에 올라간 뒤에도 GPU 압축 상태를 유지합니다. 두 형식은 서로 보완적입니다. GPU가 보관하는 데이터에는 KTX2를, 네트워크로 전송하는 데이터에는 Meshopt를 사용하세요.

자주 묻는 질문 ​

GLB 파일을 어떻게 압축하나요? ​

위에 파일을 놓고 기본 설정을 그대로 둔 다음 최적화를 클릭하세요. 기본 설정은 미사용 데이터를 정리하고 버텍스를 용접한 후 Meshopt 압축을 적용합니다. 웹 게임에 안전하게 사용할 수 있는 조합입니다. 단계별 목록에서 어떤 작업으로 용량이 줄었는지 확인할 수 있습니다.

파일 용량이 얼마나 줄어드나요? ​

파일에 무엇이 들어 있는지에 따라 전적으로 달라집니다. 압축되지 않은 메시 중심 모델은 Meshopt를 사용하면 용량이 흔히 60~80% 줄어듭니다. PNG 텍스처가 대부분인 파일은 이를 WebP로 변환하기 전까지 용량이 거의 줄지 않습니다. 애니메이션 데이터가 대부분인 파일은 키프레임 정리에만 반응합니다. 단계별 내역을 보면 파일이 어떤 경우에 해당하는지 알 수 있습니다.

최적화하면 모델이 손상되나요? ​

미사용 데이터 제거, 용접, 키프레임 정리, Meshopt 압축은 모두 외형을 그대로 유지하는 무손실 작업입니다. 단순화는 그렇지 않습니다. 삼각형을 제거하므로 강한 설정에서는 변화가 눈에 띕니다. 텍스처 크기 조정과 JPEG 변환도 손실 작업입니다. 미리보기에는 실제 출력 결과가 표시되므로 다운로드하기 전에 직접 확인할 수 있습니다.

Unity나 Godot에서 결과 파일을 열 수 있나요? ​

Meshopt 지원 여부는 임포터와 해당 버전에 따라 달라집니다. 파일을 브라우저가 아니라 엔진으로 가져와야 한다면 확장이 필요 없고 어디에서나 작동하는 양자화(Quantize)를 선택하세요. 대상이 웹 페이지라면 Meshopt가 더 좋은 선택입니다.

이미 압축된 파일도 열 수 있나요? ​

예. Draco와 Meshopt로 압축된 입력 파일은 모두 불러올 때 디코딩되므로 Draco 파일의 압축을 해제하거나, Meshopt로 전환하거나, 다른 설정으로 다시 압축할 수 있습니다.

모델이 업로드되나요? ​

아니요. 인코더를 포함한 전체 파이프라인이 브라우저의 Web Worker에서 실행됩니다. 페이지를 불러온 후에는 오프라인에서도 작동합니다.