基于wgpu的类似于threejs的渲染引擎
项目描述

Pygfx
Pygfx的目标是为Python世界带来强大和可靠的可视化。🚀
Pygfx(发音为"py-graphics")基于wgpu构建,与基于OpenGL的解决方案相比,具有更好的性能和可靠性。它设计简单且通用:凭借其模块化架构,您可以轻松地组装适用于各种应用的图形场景,从科学可视化到视频游戏渲染。
专业支持
需要帮助?我们提供以下专业服务
- 优先支持: 通过我们的专业支持,确保您的需求得到优先处理,以快速解决问题和实现功能。
- 集成支持: 获取将 Pygfx 集成到您的应用程序中的帮助,确保平稳过渡和最佳性能。
- 定制解决方案: 不论是创建特定的可视化效果还是开发着色器,我们都会与您紧密合作,创建满足您独特需求的定制解决方案。
- 培训和研讨会: 我们提供信息丰富的培训课程和研讨会,旨在提升技能和知识。
另外,请查看赞助商页面。如需进一步咨询,请联系我们support@pygfx.org。
安装
pip install -U pygfx glfw
Pygfx 需要某些窗口来渲染。Glfw 是一个轻量级选项,但还有其他选择。如果您使用不同的 wgpu 兼容窗口管理器或仅渲染离屏,可以选择不使用 glfw。其他替代方案的例子包括: jupyter_rfb
(在 Jupyter 中渲染)、PyQt
、PySide
或 wx
。
此外,还有一些平台要求,请参阅 wgpu 文档。简而言之,您需要现代(足够)的图形驱动程序,以及 pip>=20.3
。
状态
我们目前正在努力实现 1.0
版本,这意味着 API 可能会随着每个版本而改变。我们预计将在 2024 年底实现 1.0
版本,届时我们将开始关注向后兼容性。
这意味着在此之前,您可能需要锁定您正在使用的 Pygfx 版本,并在更新时查看 发行说明。
使用示例
注意:下面的示例针对
main
分支,在我们处于测试版时可能不会在最新的 PyPI 版本上运行。
注意:有关此示例的教程可以在 指南 中找到。
import pygfx as gfx
import pylinalg as la
cube = gfx.Mesh(
gfx.box_geometry(200, 200, 200),
gfx.MeshPhongMaterial(color="#336699"),
)
rot = la.quat_from_euler((0, 0.01), order="XY")
def animate():
cube.local.rotation = la.quat_mul(rot, cube.local.rotation)
if __name__ == "__main__":
gfx.show(cube, before_render=animate)
功能亮点
Pygfx 的一些关键特性包括
- 基于 SDF 的文本渲染(《示例》)
- 顺序无关透明度(OIT)(《示例》)
- 灯光、阴影和基于物理的渲染(PBR)(《示例》)
- 具有内置拾取的事件系统(《示例》)
- 支持 1D、2D 和 3D 数据的纹理和颜色映射(《示例》)
还有很多!请查看我们在文档中的功能演示。
许可证
Pygfx 采用 BSD 2-Clause "Simplified" 许可证。这意味着
- :white_check_mark: 它是免费的(并且是开源的)永远。 :cupid
- :white_check_mark: 您可以使用它进行商业用途。
- :white_check_mark: 您可以分发它,并自由地进行更改。
- :x: 您不能因使用 Pygfx 而对我们承担责任。
贡献
请参阅 CONTRIBUTING.md。
开发安装
要获取 Pygfx 的工作开发安装,您可以按照以下步骤操作
# Click the Fork button on GitHub and navigate to your fork
git clone <address_of_your_fork>
cd pygfx
# if you use a venv, create and activate it
pip install -e ".[dev,docs,examples]"
pytest tests
测试
测试套件分为三个部分;核心的单元测试、示例的单元测试和验证示例的截图测试。
pytest -v tests
运行核心单元测试。pytest -v examples
测试示例。
截图测试在所有开发平台上难以保证一致,最好在我们的 CI 上运行,以实现更可预测的结果。您可以在本地 Linux 机器上运行,选择软件渲染适配器和测试,命令如下:
PYGFX_WGPU_ADAPTER_NAME=llvmpipe pytest examples -k test_examples_compare
请注意,我们的 pytest.ini
文件包含环境变量 PYGFX_DISABLE_SYSTEM_FONTS=1
,以帮助确保系统安装的一致性。
行为准则
我们的行为准则可以在这里找到:[行为准则](./CODE_OF_CONDUCT.md)
拼写和发音
代码中使用小写 "pygfx"。在书面文本中,您可以使用 "Pygfx" 来指代项目。Pygfx 的发音为 pie-graphics。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
pygfx-0.5.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 693a0d80515bfc94b0578859bba542c786569086bd62fd4de26d256fad54c12c |
|
MD5 | 9c12b3aa09b8f6b151eb368bed63e752 |
|
BLAKE2b-256 | cabdc38d7d5a58c7955be01bbad95ada28ab0a349c1f638ab4519dae09841fe6 |
pygfx-0.5.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1ea6f1b1603264070337268a099c89ef69785e056d36fa6022d5e31ed8cdc6d |
|
MD5 | 33e99d5e0135a94f7dbb745d6da7de4d |
|
BLAKE2b-256 | 4ea561ed33d89524d78db9f64189a7fea204cdde2556597696f50987b55ef44d |