#渲染 #图形 #生成 #艺术

dali

快速数字绘画渲染库

5个版本

0.3.0 2019年10月20日
0.2.3 2019年9月13日
0.2.2 2019年9月13日
0.2.1 2019年9月12日
0.2.0 2019年9月10日

#417 in 图形API

每月 32 次下载

Apache-2.0

1.5MB
817

达利 - 快速数字绘画渲染库

达利 是一个GPU渲染库,用于创建高质量的数字绘画。

达利旨在生成大型画布打印的输出,这意味着高DPI、高分辨率的输出。目前,高分辨率图像(8000x8000)渲染大约需要20秒,JPEG编码额外需要40-60秒。

example

入门指南

您可以使用以下命令运行示例: cargo run --release --example example

工作原理...

画布

画布 是一个目标图像,许多 将在其上渲染。
每一层绑定一个 颜色查找表,然后使用 点阵纹理 进行渲染。

颜色查找表

颜色查找表是每个点阵纹理用于颜色采样的目标图像。您的输出图像将类似于颜色查找表。

点阵纹理

点阵纹理生成 纹理。点阵纹理结合它们的灰度alpha掩码、可选的纹理和颜色查找表来渲染输出图像。虽然涉及多个参考帧和缩放因子。

点阵纹理可以是

  • 平移
  • 缩放
  • 绕中心旋转
  • (纹理)绕中心旋转
  • 通过缩放颜色查找表绕点阵中心变形

点阵纹理使用 颜色查找表 采样颜色。这种采样发生在画布坐标中,这是一个与点阵纹理不同的参考框架!关键的是,颜色查找表采样可以相对于画布坐标中的点阵中心进行缩放。这允许对颜色查找表图像进行连续的变形 - 从1.0作为直拷贝到0.0作为单色。

点阵纹理是可选的,但动态地增加了输出对比度。算法复杂,在stipple-texture-fs.glsl中描述。

通过许多交织的点阵纹理生成复杂的纹理,每个纹理渲染颜色查找表的缩放版本。

通过交织层生成复杂的颜色。

所有细节

渲染

达利使用 luminance-rs 作为图形后端。

大丽花使用OpenGL上下文进行渲染,使用一个片段着色器来覆盖 stipple 的转换坐标(见 stipple-fs.glsl)。有关所有几何计算,请参阅 stipple-vs.glsl,有关颜色计算,请参阅 stipple-fs.glsl

大丽花使用OpenGL混合,使用预乘alpha值以获得更好的混合质量。我发现预乘alpha混合已经足够好,无需在片段着色器中从目标缓冲区采样并混合。

大丽花在采样期间使用OpenGL提供的所有插值,因此高分辨率图像将非常平滑。

渲染完成后,大丽花通过将alpha设置为1来平展预乘alpha。这允许在 GLFW 预览、PNG 和 JPEG 输出之间保持视觉一致性。这还避免了预乘alpha可能出现的“除以零”问题。

许可证

大丽花采用Apache 2.0许可证。

状态

大丽花正在积极开发中,但尚未达到1.0版本。片段着色器可能会进行一些小的更改。

依赖关系

~14MB
~102K SLoC