38个版本
0.17.0 | 2024年2月26日 |
---|---|
0.16.3 | 2023年11月9日 |
0.15.0 | 2023年3月14日 |
0.14.0 | 2022年11月4日 |
0.1.0 | 2020年3月22日 |
#7 in 渲染
4,250 每月下载量
在 7 个crate中使用 (6 个直接使用)
620KB
14K SLoC

three-d
这是什么?
A OpenGL/WebGL/OpenGL ES渲染器,旨在使图形简单,同时仍然具有高效绘制所需内容的强大功能。
three-d
- 针对那些只想绘制一些东西的人,以及那些想要避免繁琐设置但仍希望获得底层访问权限的人。
- 使其能够将高级功能与自定义低级实现(例如自定义着色器)相结合。
- 试图用几行简单的代码完成事情。
- 旨在尽可能明确,以便您不会感到意外 - 没有隐藏的魔法。
- 针对桌面、网页和移动设备。
three-d
可以用于
- 数据可视化
- 图像处理
- UI渲染
- 工具(2D或3D)
- 游戏(2D或3D)
引用
来自问题、讨论和拉取请求的引用
..., 感谢您编写了如此优秀的3d crate。我能够完成所需的工作,而无需数千行的样板代码。这真是一种乐趣。
我必须说:伙计,你在这个库上做得太棒了!它的性能真的非常出色,使用简单易懂,我非常感激,你使它成为开源!非常感谢。
感谢您制作了如此出色的3d工具,它对我帮助很大,因为大多数基于Rust的3d工具要么太底层,要么是一个完整的游戏引擎,这不符合我的需求。
首先,three-d 对于即使是经验不足的Rust用户来说也是一种乐趣,尽管我确实有一些与OpenGL合作的经验。
感谢您提供如此酷且易于开始的Rust 3D库 :)
嗨,感谢这样一个酷且易于使用的项目!
感谢这个库,到目前为止一直是一种乐趣。
首先,为这个库干得好,因此感谢!
非常感谢这个库,它看起来很棒!
感谢这个伟大的项目。
到目前为止,该项目使用起来非常出色,非常感谢您的时间和奉献。
结构
该仓库包含三个主要模块用于绘图:context
、core
和 renderer
,以及一个可选的 window
模块,用于简化设置。
模块 | 描述 |
---|---|
context |
底层渲染模块 - 需要对图形概念有深入了解。它提供了对设置和渲染的完全控制。 |
core |
中级渲染模块 - 需要对图形概念至少有一定的了解。如果您想编写自己的着色器,但不想在设置和错误处理上浪费时间,请使用此模块。它可以与 context 模块中的底层功能结合使用。 |
renderer |
高级渲染模块 - 不需要了解图形概念。如果您只想绘制一些东西,请使用此模块。它提供了渲染不同类型标准对象的功能,并具有不同的着色方式。它可以与 core 模块中的中级功能和 context 模块中的功能无缝结合。 |
window (需要 "window" 功能) |
提供跨平台原生和Web的窗口功能,主要用于简化入门。在某些情况下,可能需要用自定义的 winit 窗口替换默认的 Window ,例如在 winit_window 示例中所示。然而,此模块也可以被提供OpenGL或WebGL2图形上下文的一切所替换,例如 winit 和 glutin、wasm-bindgen 或 eframe。 |
此外,three-d-asset 仓库使加载、反序列化、序列化和保存3D资产成为可能,例如3D模型、纹理等。请确保使用在 Cargo.toml
中定义的 three-d-asset 的同一版本。
示例
可以在 示例文件夹 中找到涵盖大多数功能的几个示例。
在这里,您还可以找到示例概述、构建说明和示例网络版本的链接。
适合特定版本的示例可以在该版本的分支中找到,例如 0.9 版本 的示例可以在 0.9 分支 中找到。
支持
three-d
受支持
- 在所有主要的桌面操作系统(Windows、Mac、Linux)上,通过使用OpenGL 3.3图形API进行支持。 注意:MacOS已弃用OpenGL,因此它仍然可以工作,但可能不会表现最优。
- 在所有主要浏览器(Chrome、Firefox、Edge和Safari)上,通过编译为WebAssembly并使用WebGL 2.0图形API进行支持(见
web/README.md
) - 在具有OpenGL ES 3.0支持的内嵌/移动系统上。 注意:这不是定期测试的,请报告任何问题。
项目状态
大多数部分相对稳定,但直到1.0.0版本发布之前,仍可能定期出现重大更改。主分支是正在进行中的,所以如果您想避免太多破坏性更改和功能不工作,请使用发布版本。如果可能且可行,功能将在一个版本中弃用,然后在下一个版本中删除。
贡献
欢迎提出功能请求和错误报告;只需打开一个问题或开始一次讨论。我们非常欢迎贡献;请随时联系我们或直接在 master 分支 上创建拉取请求。为了避免浪费宝贵时间,请在进行重大更改之前先与我们联系。
依赖项
~4–21MB
~258K SLoC