Repolode
markaren

markaren/threepp

跨平台 C++20 三维图形库,API 仿照 three.js,提供 OpenGL 与 Vulkan 渲染后端及 Python 绑定。

Star
1,212
Fork
156
未关闭 Issue
3
最近提交
昨天

这是什么?

threepp 是一个 C++20 三维图形库,API 沿用 three.js 的高层设计,熟悉 three.js 的开发者可以用相近的对象(Mesh、Scene、光源、相机、加载器等)编写场景代码。渲染既可以使用跨平台的 OpenGL 后端,也可以使用延迟渲染的 Vulkan 后端,后者支持光线追踪阴影、反射、环境光遮蔽和全局光照,两种后端共用同一套场景代码。

除渲染外,项目还包含场景编辑器、基于 PhysX 的机器人与刚体仿真,以及可输出真值标签的仿真激光雷达、深度相机、IMU 等传感器,适合生成合成数据。它还支持与 ArduPilot 的硬件在环飞行。Python 绑定已发布到 PyPI,可访问渲染器、NumPy 格式的标签数据和 PhysX 关节体。

项目定位为研究、原型开发和教学用途,而非生产级引擎,版本之间 API 可能变化。Vulkan 后端需要光线追踪扩展,因此不能在 macOS 上运行,那里应使用 OpenGL 渲染器。

核心功能

  • 01仿照 three.js 的 API,涵盖网格、光源、相机、控制器、动画和后处理。
  • 02支持 glTF、OBJ、STL、COLLADA、SVG、URDF 等格式加载,FBX 为可选项。
  • 03Vulkan 延迟渲染器支持光线追踪阴影、反射、环境光遮蔽和全局光照。
  • 04提供激光雷达、深度与彩色相机、IMU、关节编码器等仿真传感器。
  • 05集成 PhysX,支持刚体、关节体、软体和车辆仿真。
  • 06通过 PyPI 安装 Python 绑定,支持无显示器的离屏渲染。

适用场景

  • 在 C++ 中搭建需要传感器模型和物理仿真的机器人或自主系统仿真。
  • 为感知模型训练生成带真值标签的合成图像和深度数据。
  • 将 three.js 风格的场景代码迁移到原生 C++ 应用中。
  • 用熟悉的高层 API 讲授三维图形学概念。

快速上手

  1. 1

    从 PyPI 安装 Python 包

    pip install threepp
  2. 2

    使用 CMake 预设构建 OpenGL 后端

    cmake --preset gl
  3. 3

    编译 OpenGL 构建

    cmake --build --preset gl

使用前须知

  • Vulkan 后端需要支持光线追踪的 GPU,且不能在 macOS 上运行;该平台请使用 GLRenderer。
  • 项目面向研究、原型和教学,而非生产级引擎,API 会随版本变化。
  • 仿真层(Vulkan、传感器、PhysX、编辑器、Python)迭代最快,编辑器的 Vulkan 视口仅为尽力支持。

收录于专题

标签

常见问题

threepp 是什么?
跨平台 C++20 三维图形库,API 仿照 three.js,提供 OpenGL 与 Vulkan 渲染后端及 Python 绑定。 threepp 是一个 C++20 三维图形库,API 沿用 three.js 的高层设计,熟悉 three.js 的开发者可以用相近的对象(Mesh、Scene、光源、相机、加载器等)编写场景代码。渲染既可以使用跨平台的 OpenGL 后端,也可以使用延迟渲染的 Vulkan 后端,后者支持光线追踪阴影、反射、环境光遮蔽和全局光照,两种后端共用同一套场景代码。
threepp 可以免费使用吗?用的什么许可证?
threepp 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
threepp 还在维护吗?
活跃维护中。threepp 最近一次提交是在 2026年11月6日。
threepp 适合用来做什么?
在 C++ 中搭建需要传感器模型和物理仿真的机器人或自主系统仿真。 为感知模型训练生成带真值标签的合成图像和深度数据。 将 three.js 风格的场景代码迁移到原生 C++ 应用中。 用熟悉的高层 API 讲授三维图形学概念。
threepp 怎么安装和运行?
从 PyPI 安装 Python 包: pip install threepp 使用 CMake 预设构建 OpenGL 后端: cmake --preset gl 编译 OpenGL 构建: cmake --build --preset gl
在哪里获取 threepp?
源代码和安装说明在 GitHub 上:https://github.com/markaren/threepp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目