Skip to main content

Glass Engine -- 相当易用的 Python 3D 渲染引擎

glass engine logo

Glass Engine 是一个相当易用的 Python 实时 3D 渲染引擎,完全免费开源。使用 Glass Engine 你可以轻松地在你的 Python 界面程序中嵌入可交互的 3D 画面。

首先,使用以下命令即可完成对 Glass Engine 的安装:

pip install glass-engine

如果你是中国区用户,则可以使用以下命令以加速安装过程:

pip install glass-engine -i https://mirrors.aliyun.com/pypi/simple

若发生安装错误,请参考 Glass Engine 的安装教程 进行解决。

接下来,让我们通过一个简单例子来直观感受一下 Glass Engine 的使用过程:

from glass_engine import *
from glass_engine.Geometries import * # 导入所有的基本几何体

scene, camera, light, floor = SceneRoam() # 创建基本场景

sphere = Sphere() # 创建一个球体模型
sphere.position.z = 1 # 设置球体位置
scene.add(sphere) # 将球体添加到场景中

camera.screen.show() # 相机显示屏显示渲染结果

上述代码首先使用 SceneRoam 创建出一个基本场景,包括了相机、光源、地板,然后往场景中添加了一个球体模型,最后将相机观察到的视口显示出来。

可以看出,使用 Glass Engine 创建 3D 场景无需自定义任何类和任何函数,仅通过对象创建、方法调用的顺序程序结构就可完成场景的构建和显示,由此体现出 Glass Engine 高度的易用性,这也是 Glass Engine 相比于其他同类 3D 引擎的优势所在。

运行上述程序,你将得到下图所示结果:

glass engine simple scene

你可以通过鼠标右键拖动以旋转视角,还可通过键盘按键 W A S D E C 来在场景中漫游:

  • A 向左移动,D 向右移动
  • W 向前移动,S 向后移动
  • E 向上移动,C 向下移动

怎么样,是不是很简单、直观、易用?如果你感兴趣的话,就让我们开始接下来的 3D 渲染之旅吧!

Release notes

version 0.1.61

  • 升级 tree-sitter 为现代版
  • 优化预处理调用时机,减少调用次数

version 0.1.57

  • 兼容 Python 3.13

version 0.1.54

  • 修复 bug #4: "view_pos.y" is used before being initialized
  • 修复 bug #5: ShaderToy 动态纹理文件不存在
  • 修复 bug #6: ImportError: cannot import name 'Self' from 'typing'
  • 修复 bug #7: #version directive error

temp version 0.1.52

  • 添加深度树摇尝试修复 bug #3
  • 临时版本,代码结构有待优化

version 0.1.51

  • 修复相机挂载到有缩放的节点位置不对的 bug
  • 将所有屏幕四边形绘制取消依赖顶点和索引
  • 去除不必要的 FBO

version 0.1.39

  • 兼容 Linux
  • 支持 PyInstaller 无配置打包

version 0.1.36

  • 修复纹理数超过硬件限制问题

version 0.1.35

  • 修改 PyPI 主页文档

version 0.1.34

  • 删除对 OpenEXR 的依赖,使用 opencv 读取 exr

version 0.1.33

  • 修复打包错误

version 0.1.31

  • 将 OpenGL 封装模块分离出来并单独打包为 python-glass
  • 将模型加载模块分离出来并单独打包为 assimpy
  • 模型加载支持内置纹理
  • 添加对 metallic-roughness map 的支持

version 0.1.30

  • 兼容了 AMD 显卡
  • 修复仅有天空盒不显示 bug
  • 优化 shader 逻辑
  • 改进 Qt API 选择逻辑

version 0.1.29

  • 修改动态加载新功能代码 bug

version 0.1.28

  • 修改 pcpp 冲突 bug

version 0.1.27

  • 禁用滚轮
  • 修改 Python 3.7 f-string bug

version 0.1.26

  • 添加 treeshake 功能,自动删除 glsl 无用函数
  • 添加功能自动剪裁功能,没有用到的功能不参与 glsl 编译

version 0.1.25

  • 添加 minifyc 进一步减小 glsl 代码体积,避免 OSError: 0x000000010 bug

version 0.1.24

  • 修复 OSError: 0x000000010 bug
  • 修复 dynamic_env_map 开启再关闭失效 bug
  • 修复 cast_shadows 开启再关闭失效 bug
  • 修复 16bits 灰度图像加载错误 bug

version 0.1.23

  • 修复后处理 bug
  • 修复半透明 bug

version 0.1.22

  • 支持了 Python 3.12

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glass_engine-0.1.64.tar.gz (291.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glass_engine-0.1.64-py3-none-any.whl (252.4 kB view details)

Uploaded Python 3

File details

Details for the file glass_engine-0.1.64.tar.gz.

File metadata

  • Download URL: glass_engine-0.1.64.tar.gz
  • Upload date:
  • Size: 291.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for glass_engine-0.1.64.tar.gz
Algorithm Hash digest
SHA256 e5f6596776511e04c44f1edd124c88f799c07e459a014b57e00c53036642c05d
MD5 a1d8597ecf772dabd86b83e4c8249376
BLAKE2b-256 d755dffed43c8430a2d3b4ede6f8d30923e4965222ac4509653bdd74634e7329

See more details on using hashes here.

File details

Details for the file glass_engine-0.1.64-py3-none-any.whl.

File metadata

  • Download URL: glass_engine-0.1.64-py3-none-any.whl
  • Upload date:
  • Size: 252.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for glass_engine-0.1.64-py3-none-any.whl
Algorithm Hash digest
SHA256 4442153949b2c3c9a7ac91dac9fc04eeefe41ef5282c93b6751b5f563d8e9f28
MD5 5a71a9119ce4df9a4bfabc5bb135c281
BLAKE2b-256 e61bbf7656f722878bf47bde932602932897d5d4e1836b08092d20d02ace732f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.64 This release

2 files

0.1.63

2 files

0.1.62

2 files

0.1.61

2 files

0.1.60

2 files

0.1.59

2 files

0.1.57

2 files

0.1.56

2 files

0.1.55

2 files

0.1.54

2 files

0.1.52

2 files

0.1.51

2 files

0.1.50

2 files

0.1.47

2 files

0.1.39

2 files

0.1.38

2 files

0.1.36

2 files

0.1.35

2 files

0.1.34

2 files

0.1.33

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1.28

2 files

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.18

1 file

0.1.17

1 file

0.1.16

1 file

0.1.15

1 file

0.1.13

1 file

0.1.12

1 file

0.1.11

1 file

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

0.0.4

1 file

0.0.3

1 file

0.0.2

1 file

0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page