3个版本

0.1.2 2023年7月24日
0.1.1 2022年7月9日
0.1.0 2021年4月18日

#258图形API

MIT许可证

195KB
3.5K SLoC

actions Docs crates.io

Contrast Renderer

Contrast是一个基于web-gpu的2D渲染器,用Rust编写。它可以渲染平面矢量图形,并且可以轻松集成到其他前向渲染代码中。填充使用隐式曲线且分辨率无关,而描边使用参数曲线并通过多边形细分进行近似。这样你可以在任何平坦平面上拥有非内聚、内聚和空间的GUI元素

  • 作为3D场景顶部的经典2D菜单叠加。
  • 作为相对于相机移动但被3D场景遮挡的HUD
  • 作为墙上的标记或3D场景中悬浮的全息

要开始,请查看展示示例

功能路线图

✓ Supported and implemented
◯ Rudimentary support
✗ Planned support, not implemented
  • 渲染
    • 抗锯齿 ◯
      • MSAA ✓
    • 实例化 ✓
    • 可自定义(用户定义)
      • 着色器 ✓
      • 混合 ✓
      • 深度测试 ✓
      • 背面剔除 ✓
    • 可嵌套裁剪 ✓
    • 可嵌套透明层(组不透明度)✓
  • 填充
    • 路径
      • 多边形 ✓
      • 贝塞尔曲线
        • 积分(正常)
          • 二次曲线 ✓
          • 三次曲线 ✓
        • 有理数(加权)
          • 二次曲线 ✓
          • 三次曲线 ✓
    • 填充规则 ✓
  • 描边
    • 路径
      • 多边形 ✓
      • 贝塞尔曲线
        • 近似
          • 均匀参数间隔 ✓
          • 均匀切线角度 ✓
          • 均匀弧长 ✗
        • 积分(正常)
          • 二次曲线 ✓
          • 三次曲线 ✓
        • 有理数(加权)
          • 二次曲线 ✓
          • 三次曲线 ✓
    • 描边宽度 ✓
    • 描边偏移 ◯
    • 闭合/开放 ✓
    • 线连接
      • (裁剪)斜接 ✓
      • 斜面 ✓
      • 圆形 ✓
    • 线帽(方形、圆形、外、内、右、左、斜角)✓
    • 虚线
      • 相位平移 ✓
      • 重复间隔 ✓
      • 动态调整(用于动画)✓
  • 路径构造函数
    • 多边形 ✓
    • 贝塞尔曲线
      • 积分(正常)
        • 二次曲线 ✓
        • 三次曲线 ✓
      • 有理数(加权)
        • 二次曲线 ✓
        • 三次曲线 ✓
    • 矩形 ✓
    • 圆角矩形 ✓
    • 椭圆形 ✓
    • 圆形 ✓
    • 椭圆弧 ✓
    • [可选] 字体(TTF)
      • 字形 ✓
      • 文本 ◯
  • 图形用户界面 ✗

依赖项

库的依赖项

示例的依赖项

依赖项

~6–41MB
~568K SLoC