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

Metadata

Release files for glass-engine 0.1.64

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for glass-engine 0.1.64
File Size Uploaded
glass_engine-0.1.64.tar.gz 291.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for glass-engine 0.1.64
File Interpreter ABI Platform
glass_engine-0.1.64-py3-none-any.whl Python 3 none any Details

Total release size: 543.6 kB

Release files / glass_engine-0.1.64.tar.gz

Download URL glass_engine-0.1.64.tar.gz
Size 291.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e5f6596776511e04c44f1edd124c88f799c07e459a014b57e00c53036642c05d
BLAKE2b-256 checksum
How to use checksums
d755dffed43c8430a2d3b4ede6f8d30923e4965222ac4509653bdd74634e7329
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / glass_engine-0.1.64-py3-none-any.whl

Download URL glass_engine-0.1.64-py3-none-any.whl
Size 252.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4442153949b2c3c9a7ac91dac9fc04eeefe41ef5282c93b6751b5f563d8e9f28
BLAKE2b-256 checksum
How to use checksums
e61bbf7656f722878bf47bde932602932897d5d4e1836b08092d20d02ace732f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.1.64 This release

2 release files

0.1.63

2 release files

0.1.62

2 release files

0.1.61

2 release files

0.1.60

2 release files

0.1.59

2 release files

0.1.57

2 release files

0.1.55

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.47

2 release files

0.1.39

2 release files

0.1.38

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

1 release file

0.1.17

1 release file

0.1.16

1 release file

0.1.15

1 release file

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page