5 个不稳定版本
0.2.0 | 2019 年 8 月 2 日 |
---|---|
0.1.0 | 2019 年 7 月 7 日 |
0.0.3 | 2018 年 12 月 10 日 |
0.0.2 | 2018 年 12 月 8 日 |
0.0.1 | 2018 年 11 月 26 日 |
#1052 in 图形 API
每月 27 次下载
63KB
450 行
Barg
图形用户界面工具包 & 3D 图形渲染器。
命名
名称是 "bar"(如 "foo bar baz qux" 中的 "bar")和 "g"(如 "graphics" 中的 "g")的组合。叫起来也很有趣,因为 "BARG!!!" 听起来像 "ARGH!!!!"。
未来想法
像 Vulkan、Metal 和 OpenGL 这样的 API 在处理某些事物(如抗锯齿(通常通过多采样 "解决"))和如何制作完美的球体(实际上并不可能)方面存在困难。
这个渲染器将会有很多基于 CPU 的函数调用,所以不需要 GPU - 但如果你安装了 vulkan,将使用计算着色器来加快速度。为了 更快,将使用 SIMD!希望 SIMD + CPU 渲染的 Vulkan 计算能够与正常 GPU 渲染一样快(或者至少接近)。
支持 3D 曲线不仅可以使某些事物(尤其是生物,如植物和人)看起来更好,还可以减少绘制具有曲线的模型所需的内存中存储的顶点数量。
另一个将得到改进的因素是颜色混合,以及如何进行混合以及使其看起来准确。对于混合效果,将根据线性 sRGB 对 HSV 进行插值。
更多未来想法
渲染是逐面进行的。因此,一个立方体将有 6 次绘制调用(每个面一次),但当然至少有 3 个面将被裁剪。球体需要 4 次绘制调用/ 4 个面,这些面将是 3D 面而不是立方体。
将按逆序进行 Alpha 混合。无论最近的面是哪个,都会首先绘制。Alpha 值将存储在我们要渲染的表面上。如果是 255,则像素将被裁剪。如果是其他值,则面将在当前渲染缓冲区中的面之后混合。
功能
- 渲染 2D 图形
- 渲染文本
待办事项
- 渲染 3D 图形
- 渲染 GUI 元素/小部件
Cala
此 crate 是 cala 项目的组成部分。
链接
依赖关系
约 5MB
~73K SLoC