12个不稳定版本 (3个破坏性更新)
0.3.0 | 2022年2月12日 |
---|---|
0.2.3 | 2021年11月15日 |
0.2.2 | 2021年10月24日 |
0.1.2 | 2021年9月20日 |
0.0.5 | 2021年3月10日 |
#22 in 渲染引擎
91 每月下载量
在 9 crates 中使用
295KB
6K SLoC
rend3
基于wgpu构建的易于使用、可定制、高效的3D渲染器库。
库正处于积极开发中。虽然内部结构可能在将来发生变化,但外部API保持稳定,仅在添加新功能时进行少量更改。
示例
请参阅示例以了解如何使用API。示例将展示如何使用核心库和辅助crate。
截图
这些截图来自场景查看器示例。
crates
rend3生态系统由几个核心crates组成,这些crates提供了库的大部分功能以及扩展性和集成性。
核心
rend3
: 核心crate。处理所有世界数据,提供Renderer和RenderGraph,并定义词汇类型。rend3-routine
: 在RenderGraph之上实现各种"渲染例程"。还提供可重用的图形工作。提供PBR渲染、Skyboxes、阴影渲染和色调映射。
扩展
有一些扩展crate不是必需的,但提供了预制的有用代码块,我推荐使用。
rend3-framework
: 大大简化了跨平台的窗口和表面正确处理。rend3-gltf
: 模块化gltf文件和场景加载器。
集成
还提供了与其他外部库的集成。由于外部依赖关系,这些库的版本可能比整个生态系统增长得更快。
功能和平台支持
rend3支持两种不同的渲染配置,一种用于速度,另一种用于兼容性。
配置特性
现代配置不仅将更多工作卸载到GPU,还可以进行更激进的性能优化,包括只绘制所需的三角形。
配置 | 纹理访问 | 对象剔除 | 三角形剔除 | 绘制调用 |
---|---|---|---|---|
GPU驱动 | 无绑定 | 在GPU上 | 在GPU上 | 合并间接 |
CPU驱动 | 已绑定 | 在CPU上 | ❌ | 实例直接 |
配置支持
以下表格显示了不同API/平台对不同配置的支持情况。这有望帮助您判断目标受众支持哪些功能。
操作系统 | API | GPU | GPU驱动 | CPU驱动 |
---|---|---|---|---|
Windows 7+ | Vulkan | AMD / NVIDIA | ✅ | — |
Vulkan | Intel 6XXX+ | ❌ | ✅ | |
Dx11 | Intel 2XXX+ | ❌ | 🚧 | |
Windows 10+ | Dx12 | Intel 6XXX+ / AMD GCN 2+ / NVIDIA 6XX+ | 🚧 | ✅ |
MacOS 10.13+ iOS 11+ | Metal | Intel / Apple A13+ / M1+ | ✅ | — |
Apple A9+ | ❌ | ✅ | ||
Linux | Vulkan | Intel 6XXX+ / AMD GCN 2+ / NVIDIA 6XX+ | ✅ | — |
Intel 4XXX+ | ❌ | ✅ | ||
Android | Vulkan | 所有 | ❌ | ✅ |
脚注
- ✅ 支持
- 🚧 进行中
- ❌ 不支持
- — 使用现代配置
- Intel 6XXX = Skylake
- Intel 4XXX = Haswell
- Intel 2XXX = Sandy Bridge
- AMD GCN 2 = Rx 200+, RX 5000+
- Apple A9 = iPhone 6S, iPad 5th Gen
- Apple A13 = iPhone 11, iPad 9th Gen
用途
rend3
试图满足以下用途
- 需要可定制且高效的渲染器的游戏和可视化。
- 只需在屏幕上显示对象,但需要光照和效果的项目。
- 大机器中的小齿轮:一个不干扰程序其他部分的渲染器。
rend3
不是
- 一个框架或引擎。它不包含制作高级游戏或模拟所需的所有部分,也不关心您如何结构程序。如果您需要一个处理窗口和事件循环管理的非常基础的框架,
rend3-framework
可以帮到您。这将始终是可选的,只是为了帮助它在能帮助的有限情况下。
未来计划
我对这个库有很多宏伟的计划。概述可以在enhancement标签下的issue tracker中找到。
Matrix聊天室
我们有一个matrix聊天室,如果您想讨论rend3的使用或开发,可以加入。
如果您更喜欢discord,我们的元项目有一个频道,它与matrix房间相匹配。
帮助
我们欢迎所有贡献和想法。如果您想参与或为此库提供想法,我们将非常乐意倾听!
许可证:MIT OR Apache-2.0 OR Zlib
依赖项
~14–26MB
~418K SLoC