홈으로 돌아가기

meshoptimizer 1.1: 메시렛 압축

meshoptimizer 1.1에서 GPU에서 최대 150 GB/s 압축 해제 속도를 가진 메시렛 압축 코덱과 Vulkan/DirectX용 불투명도 마이크로맵 생성을 도입. 독립적 인코딩으로 통합 간소화. 실시간 복잡한 3D 장면 최적화에 적합.

meshoptimizer 1.1: 초고속 메시렛 압축 및 OMM
Advertisement 728x90

## meshoptimizer 1.1: 메시렛 압축과 불투명도 마이크로맵

meshoptimizer 1.1 라이브러리의 새 버전은 메시렛 압축을 위한 코덱과 불투명도 마이크로맵 생성 지원을 추가합니다. 이 업데이트는 GPU 렌더링을 위한 토폴로지 최적화와 레이 트레이싱 가속에 중점을 둡니다. 개발은 MIT 라이선스 하에 C++와 JavaScript로 진행되며, 주요 기여는 Valve에서 나왔습니다.

삼각형 메시 최적화

meshoptimizer 라이브러리는 GPU 파이프라인 단계에서 정점 및 인덱스 처리를 개선합니다. 알고리즘은 메시 복잡도를 줄이고, 저장 비용을 최소화하며, 렌더링 효율성을 높입니다. 2017년 이후 프로젝트가 발전해왔으며, 1.0 버전은 2025년 12월에 출시되었습니다.

관련 도구:

Google AdInline article slot
  • gltfpack: glTF 파일의 자동 최적화를 위한 CLI 유틸리티.
  • clusterlod.h: 연속적인 세부 수준을 가진 클러스터 LOD를 위한 C/C++ 라이브러리.

메시렛 압축 코덱

새 코덱은 마이크로 인덱스와 정점 데이터의 지역성을 활용해 메시렛 토폴로지를 압축합니다. 각 메시렛은 독립적으로 인코딩되어 병렬 처리와 런타임 저장 구조를 단순화합니다.

디코딩은 고속으로 최적화되었습니다:

  • CPU: 데스크톱 프로세서에서 7–10 GB/s, 쓰기 결합 메모리와 호환.
  • GPU: 컴퓨트 셰이더를 통해 RTX 5070에서 >150 GB/s.

출력 데이터는 Zstandard로 추가 압축됩니다. 디코더는 삼각형당 3/4바이트, 정점당 2/4바이트 형식으로 직접 GPU 사용을 위한 형식을 생성합니다.

Google AdInline article slot

불투명도 마이크로맵

함수는 메시 UV 좌표와 알파 텍스처로부터 하드웨어 준비 마이크로맵을 생성합니다. Vulkan (VK_EXT_opacity_micromap)과 DirectX (DXR 1.2) 지원.

각 삼각형은 UV를 따라 4^N 개의 마이크로 삼각형으로 분할됩니다. 표현 옵션:

  • 2상태 (1비트): 레이 트레이싱 성능 극대화를 위한 셰이더 호출 완전 제거.
  • 4상태 (2비트): 텍스처 조회를 통한 any-hit 셰이더 가속.

OMM 인덱스 버퍼를 통한 삼각형 간 맵 재사용으로 메모리를 최소화합니다. 4상태의 경우 2상태로의 폴백이 가능합니다.

Google AdInline article slot

핵심 사항

  • 메시렛 코덱은 CPU에서 7–10 GB/s, GPU에서 >150 GB/s의 압축 해제 속도를 제공합니다.
  • UV와 알파로부터 생성된 마이크로맵으로 Vulkan/DirectX와 호환.
  • 독립적인 메시렛 인코딩으로 병렬 처리와 런타임 저장을 단순화.
  • 레이 트레이싱과 셰이더 최적화를 위한 1/2비트 상태 지원.
  • 최종 크기를 위한 추가 Zstandard 압축.

이 업데이트는 게임 엔진에서 GPU 렌더링과 레이 트레이싱을 다루는 중간/시니어 개발자를 대상으로 합니다. 기존 파이프라인 변경 없이 통합 가능합니다.

— Editorial Team

Advertisement 728x90

다음 읽기