#shadertoy #shaders #creative-coding #painting #art #fragment-shader

已删除 otium

高分辨率数字绘画的着色器游乐场

1.0.3 2021年1月4日
1.0.1 2020年12月31日

#8#shadertoy

自定义许可

150KB
3K SLoC

Otium

数字绘画的着色器游乐场。

动机

像许多人一样,我喜欢用着色器进行创意编程。像Shadertoy这样的网站非常适合原型设计和向他人学习。然而,Shadertoy的可用性可能会因地理位置而大不相同,网站有时在某些浏览器上会崩溃。性能通常很糟糕,复杂的着色器经常使我的浏览器崩溃。此外,一旦我完成了一项工作,我通常想将其保存到文件并打印出来进行展示。据我所知,社区创建的工具目前缺乏导出适合编辑和打印工作流程的高分辨率图像的能力。截图只能做到这样。

此外,像许多人一样,我也想在2020年大流行造成的所有空闲时间里学习一项新技能。我开始尝试使用Rust,并迅速爱上了这门语言。

用法

Otium的设计旨在让任何使用过Shadertoy的人都能轻松上手。带上你的片段着色器,其余的由它来完成。

有大量的配置选项可供选择。使用 otium --help 查看列表。

创建数字绘画

当渲染用于写入磁盘的绘画时,Otium使用高质量的16位纹理,并将数据写入未压缩的16位TIFF文件。

文档

详细的文档可在docs.rs上找到。

构建Otium

内部,Otium使用shaderc包,该包又使用C++库。这需要安装CMakePythonNinja

安装所有依赖项后,只需使用Cargo进行构建。我建议以发布模式构建以获得更好的性能。

依赖项

~74MB
~1.5M SLoC