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 次下载
1.5MB
817 行
达利 - 快速数字绘画渲染库
达利 是一个GPU渲染库,用于创建高质量的数字绘画。
达利旨在生成大型画布打印的输出,这意味着高DPI、高分辨率的输出。目前,高分辨率图像(8000x8000)渲染大约需要20秒,JPEG编码额外需要40-60秒。
入门指南
您可以使用以下命令运行示例: 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