以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 Spring启动启用HTTPS   actionscript 3 java中的这个[“var”+“name”]   java只匹配给定集合中一个字符的一个匹配项   java Hibernate:防止角色表中出现多个相同的条目   javajersey+Spring注入servlet请求   java HtmlEditor javafx失去焦点   java Apache Wicket AjaxRequestTarget ListView组件未刷新或更新   mysql java。无法将lang.String转换为java。sql。时间戳   java将巨大的整数文件(在一行中)拆分为具有内存限制的已排序块   安卓如何完全关闭proguard?   安装Eclipse和Android SDK后的java“无AVD可用”消息   java动态显示图像视图   java在Spring中还有哪些WebsocketClient实现?   java Glassfish需要很长时间才能重新启动   使用Java简单串行连接器将pc与arduino连接   java如何在camel文件组件配置中结合readLockCheckInterval和maxMessagesPerPoll?   单击Android时的java预览图像   java如何将字节数组转换为ByteArrayOutputStream