V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zemora
V2EX  ›  分享创造

用 Python + glsl 做了一个分形视频

  •  
  •   zemora ·
    neozhaoliang · 2019-06-23 22:54:34 +08:00 · 2551 次点击
    这是一个创建于 2009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很久没给自己的项目做宣传了,按理说应该是每次有了新的干货之后再宣传一波,但是最近卡在一个新的子项目上 (双曲铺砌),这个子项目原型已经完成,但是要作出漂亮的效果来非常花功夫,结果一拖再拖,TODO list 也越列越长,感觉最近完工是没戏了,无奈下只好炒炒冷饭(虽然我很鄙视自己这样做),把之前做过的一个分形脚本重新做了一个视频。

    效果如下:(传到了微博上)

    http://@@@t.cn/AipJlJgR?m=4386474986114782&u=6843493481) (去掉 @@@)

    演示的是一个叫做 apollonian 的迭代分形,用的是 raymarhing 的渲染技巧。

    代码在 https://github.com/neozhaoliang/pywonderland/tree/master/src/fractal3d 你只需要下载这个 repo (脚本需要 /src/glslhelpers 目录下的 glsl 封装辅助类),然后安装 pyglet 和 tkinter 后即可运行。

    希望大家喜欢!

    6 条回复    2019-06-24 13:53:35 +08:00
    xmoiduts
        1
    xmoiduts  
       2019-06-23 23:31:49 +08:00 via Android
    咦? python 也可以 glsl ?!刚经历了半个学期的 cpp 联动 glsl,欲仙欲死(上次碰 cpp 已经是三年前了)。
    klmun
        2
    klmun  
       2019-06-23 23:48:22 +08:00
    不行啊,有点密恐
    secondwtq
        3
    secondwtq  
       2019-06-24 00:36:14 +08:00
    V 站居然有玩 Demoscene 的,我很好奇楼主做的是什么高大上项目,能不能剧透一个


    @xmoiduts 你可以理解为 GLSL 是 GPU 的 C 语言,OpenGL 是 GPU 的系统调用 + 一个 gcc,不管你在 C++ 里面还是 Python 里面还是 JavaScript 里面调其实都相当于给 GPU 发 RPC 编译运行程序
    zemora
        4
    zemora  
    OP
       2019-06-24 08:10:27 +08:00
    @xmoiduts 绝大多数语言都可以作为 glsl 的封装,底层本质还是调用 opengl 的 api.
    @secondwtq 不是什么高大上项目~ 就是一个简单的分形渲染,和 shadertoy 类似。
    hmzt
        5
    hmzt  
       2019-06-24 13:46:21 +08:00
    发现 star 好久了,太懒一直没看
    zemora
        6
    zemora  
    OP
       2019-06-24 13:53:35 +08:00
    @hmzt 还是加了不少新东西的~ 所有的名为 main/example_*/run_* 之类的文件都可以直接运行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3232 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:22 · PVG 20:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.