以django为灵感的现代opengl 3.3+框架

demosys-p的Python项目详细描述


pypitravisDocumentation Status

Demosys PY

基于ModernGL

的python 3跨平台opengl3.3+核心框架

screenshot1screenshot2


最初是为与音乐结合的非交互式实时图形而设计的 (“实时音乐视频”,请参见demoscene) 但当然可以用于几乎任何用途。

专为那些喜欢玩现代opengl而不花很多钱的人设计 创建所有工具来启动和运行的时间。使用ModernGL 同时,使用opengl只需几行代码就可以轻松完成很多工作。

这个项目的一个高度优先事项也是帮助改进ModernGL

使用旋转立方体创建项目可以在不到一分钟的时间内完成。

pip install demosys-py
demosys-admin createproject myproject
demosys-admin createeffect myproject/cube

现在运行效果

python manage.py runeffect myproject.cube

功能

  • 基于python包的简单效果系统
  • 通过ModernGL支持大多数现代OpenGL功能
  • 用于着色器程序、纹理、场景和杂项数据的资源加载系统
  • 加载GLTF 2.0和Wavefront OBJ文件/场景
  • 支持火箭同步跟踪器系统创建有趣的关键帧数据(使用pyrocket
  • 运行时重新加载着色器程序(按R)
  • 支持无头渲染和各种可见窗口,如pyglfw、pyqt5、pysdl2和pyglet。
  • 用于创建新项目和效果的管理命令,包括生成自定义命令的能力
  • 一个高度可插入的框架,具有可定制的计时器、资源加载程序、时间线等功能
  • 用于快速创建常用网格/VAO类型的几何体模块
  • 实验性音频播放支持

要求

为了使用该框架,最好了解以下内容:

  • 基本或中间python
  • 基本glsl
  • 基本矩阵数学

如果您缺少这些需求中的任何一个,那么框架绝对可以用来学习。需要0行代码来生成一个带有旋转立方体的项目,并且您可以开始戳东西。

地方发展

以开发模式安装项目(在virtualenv中):

python setup.py develop
# PyQt5 doesn't support develop and have to manually be force-reinstalled installed after
pip install -I PyQt5

运行测试:

# All tests
pip install -r requirements-test.txt
python manage.py test# Single tests module
python manage.py test tests/test_effect.py

建筑文档:

pip install -r docs/requirements.txt
python setup.py build_sphinx

贡献者

依赖关系

  • ModernGLpyopengl替换
  • PIL/Pillow用于纹理加载
  • Pyrrr用于数学(使用numpy)
  • PyQt5是窗口/上下文创建的默认值(在大多数平台上都是现成的)

可选:

  • pyGLFW用于创建窗口/上下文
  • pyglet用于创建窗口/上下文(不适用于OS X)
  • pygame使用混音器模块播放音乐
  • python-vlc用于音频播放

提及

也可以考虑通过成为 黄金会员,但一次性(5美元或以上)捐赠一个广告免费体验。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中模拟按键?   尽管元素存在,但HtmlUnit中的java ElementNotFoundException   在Java中,长双精度并发写入不是原子的吗?   java如何在另一个对象数组中打印对象的int值?   java在显示或更改视图后执行一些代码   java JFR:读取时发生OutOfMemoryError。jfr文件   java Android助手检查是否购买   java这种设计模式的好处是什么?   Weblogic 10.3中针对托管服务器的java部署问题   java如何获取字符串。在编译时投诉的格式   声明字符串数组时发生java错误   java JPA在多个并行线程中从表中删除时发生死锁   java Android:在按钮动画之后启动活动   java并发与JMS主题在春季   使用Lucene spatial search/DateRangePrefixTree进行java日期范围查询?   java可选接口问题   JavaDbUnit没有在每个方法之后清洗和插入数据库,所以测试不是独立的   java在IAIK PKCS11包装器中一对私钥和证书如何匹配?