跳转到主要内容

基于wgpu的类似于threejs的渲染引擎

项目描述


Pygfx

CI Documentation Status PyPI version

Pygfx的目标是为Python世界带来强大和可靠的可视化。🚀

Pygfx(发音为"py-graphics")基于wgpu构建,与基于OpenGL的解决方案相比,具有更好的性能和可靠性。它设计简单且通用:凭借其模块化架构,您可以轻松地组装适用于各种应用的图形场景,从科学可视化到视频游戏渲染。

drawing drawing drawing

[用户指南] [示例画廊] [API参考]

专业支持

需要帮助?我们提供以下专业服务

  • 优先支持: 通过我们的专业支持,确保您的需求得到优先处理,以快速解决问题和实现功能。
  • 集成支持: 获取将 Pygfx 集成到您的应用程序中的帮助,确保平稳过渡和最佳性能。
  • 定制解决方案: 不论是创建特定的可视化效果还是开发着色器,我们都会与您紧密合作,创建满足您独特需求的定制解决方案。
  • 培训和研讨会: 我们提供信息丰富的培训课程和研讨会,旨在提升技能和知识。

另外,请查看赞助商页面。如需进一步咨询,请联系我们support@pygfx.org

安装

pip install -U pygfx glfw

Pygfx 需要某些窗口来渲染。Glfw 是一个轻量级选项,但还有其他选择。如果您使用不同的 wgpu 兼容窗口管理器或仅渲染离屏,可以选择不使用 glfw。其他替代方案的例子包括: jupyter_rfb(在 Jupyter 中渲染)、PyQtPySidewx

此外,还有一些平台要求,请参阅 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)
drawing

功能亮点

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 (1.1 MB 查看哈希值)

上传时间

构建分布

pygfx-0.5.0-py3-none-any.whl (1.1 MB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面