Repolode
markaren

markaren/threepp

three.js 스타일 API, OpenGL 및 Vulkan 백엔드, Python 바인딩, 물리·센서 시뮬레이션을 제공하는 크로스 플랫폼 C++20 3D 라이브러리입니다.

스타
1,212
포크
156
열린 이슈
3
마지막 커밋
어제

어떤 프로젝트인가요?

threepp는 three.js의 고수준 API를 따르는 C++20 3D 라이브러리입니다. 따라서 three.js에 익숙한 개발자는 Mesh, Scene, 조명, 카메라, 로더와 같은 객체를 활용해 비슷한 방식으로 씬 코드를 작성할 수 있습니다. 렌더링에는 이식성 높은 OpenGL 백엔드나 레이 트레이싱 그림자, 반사, 앰비언트 오클루전, 전역 조명을 지원하는 지연 렌더링 Vulkan 백엔드를 사용할 수 있으며, 동일한 씬 코드를 어느 쪽에서도 실행할 수 있습니다.

렌더링 외에도 씬 에디터, PhysX 기반 로봇 및 강체 시뮬레이션, 시뮬레이션된 라이다·깊이·카메라·IMU 등의 센서와 합성 데이터용 정답 레이블 출력 기능, ArduPilot을 이용한 하드웨어 인더 루프 비행 기능을 제공합니다. Python 바인딩은 PyPI에 배포되며 렌더러, NumPy 배열 형태의 레이블, PhysX 관절 구조를 사용할 수 있습니다.

프로젝트는 프로덕션 엔진보다는 연구, 프로토타이핑, 교육에 적합하다고 설명하며, 릴리스마다 API가 변경될 수 있다고 안내합니다. Vulkan 백엔드에는 레이 트레이싱 확장이 필요하므로 macOS에서는 실행되지 않으며, 대신 OpenGL 렌더러를 사용합니다.

핵심 기능

  • 01메시, 조명, 카메라, 컨트롤, 애니메이션, 후처리를 지원하는 three.js 스타일 API.
  • 02glTF, OBJ, STL, COLLADA, SVG, URDF, FBX(선택적 활성화), 일반 이미지 및 HDR 형식용 로더.
  • 03레이 트레이싱 그림자, 반사, AO, GI를 지원하는 Vulkan 지연 렌더러.
  • 04라이다, 깊이·컬러 카메라, IMU, 조인트 인코더 등의 센서 시뮬레이션.
  • 05강체, 관절 구조, 소프트 바디, 차량을 지원하는 PhysX 통합.
  • 06PyPI에서 설치할 수 있으며 헤드리스 렌더링을 지원하는 Python 바인딩.

활용 사례

  • 센서 모델과 물리 기능이 필요한 로보틱스 또는 자율 시스템 시뮬레이션을 C++로 구축.
  • 인식 모델 학습에 사용할 레이블이 포함된 합성 이미지 및 깊이 데이터 생성.
  • three.js 스타일의 씬 코드를 네이티브 C++ 애플리케이션으로 포팅.
  • 익숙한 고수준 API를 활용해 3D 그래픽 개념 교육.

빠른 시작

  1. 1

    PyPI에서 Python 패키지를 설치합니다

    pip install threepp
  2. 2

    CMake presets로 OpenGL 백엔드를 빌드합니다

    cmake --preset gl
  3. 3

    OpenGL 빌드를 컴파일합니다

    cmake --build --preset gl

사용 전 알아둘 점

  • Vulkan 백엔드에는 레이 트레이싱을 지원하는 GPU가 필요하며 macOS에서는 실행되지 않습니다. macOS에서는 GLRenderer를 사용하세요.
  • 이 프로젝트는 연구, 프로토타이핑, 교육용으로 개발되었으며 프로덕션 환경용이 아닙니다. API는 릴리스마다 변경됩니다.
  • 시뮬레이션 계층(Vulkan, 센서, PhysX, 에디터, Python)은 가장 빠르게 변경되며, 에디터의 Vulkan 뷰포트는 최선을 다해 지원합니다.

포함된 컬렉션

토픽

자주 묻는 질문

threepp은(는) 무엇인가요?
three.js 스타일 API, OpenGL 및 Vulkan 백엔드, Python 바인딩, 물리·센서 시뮬레이션을 제공하는 크로스 플랫폼 C++20 3D 라이브러리입니다. threepp는 three.js의 고수준 API를 따르는 C++20 3D 라이브러리입니다. 따라서 three.js에 익숙한 개발자는 Mesh, Scene, 조명, 카메라, 로더와 같은 객체를 활용해 비슷한 방식으로 씬 코드를 작성할 수 있습니다. 렌더링에는 이식성 높은 OpenGL 백엔드나 레이 트레이싱 그림자, 반사, 앰비언트 오클루전, 전역 조명을 지원하는 지연 렌더링 Vulkan 백엔드를 사용할 수 있으며, 동일한 씬 코드를 어느 쪽에서도 실행할 수 있습니다.
threepp은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
threepp은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
threepp은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. threepp의 마지막 커밋은 2026년 11월 6일입니다.
threepp은(는) 어디에 사용할 수 있나요?
센서 모델과 물리 기능이 필요한 로보틱스 또는 자율 시스템 시뮬레이션을 C++로 구축. 인식 모델 학습에 사용할 레이블이 포함된 합성 이미지 및 깊이 데이터 생성. three.js 스타일의 씬 코드를 네이티브 C++ 애플리케이션으로 포팅. 익숙한 고수준 API를 활용해 3D 그래픽 개념 교육.
threepp는 어떻게 설치하나요?
PyPI에서 Python 패키지를 설치합니다: pip install threepp CMake presets로 OpenGL 백엔드를 빌드합니다: cmake --preset gl OpenGL 빌드를 컴파일합니다: cmake --build --preset gl
threepp은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/markaren/threepp

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트