如何使用 Metal 绘制弧线?

Posted

技术标签:

【中文标题】如何使用 Metal 绘制弧线?【英文标题】:How do I draw arcs using Metal? 【发布时间】:2015-01-26 01:01:04 【问题描述】:

我浏览了一些关于 ios Metal API 的教程,他们提到 Metal 中的所有内容都是三角形。在这种情况下,如果我想绘制弧线,我是否必须导入核心图形并使用它,或者是否有使用 Metal 的方法?

谢谢。

【问题讨论】:

您需要创建数百甚至数千个三角形并将它们组合在一起,如下所示:i.stack.imgur.com/iai86.png。这就是 GPU 硬件在低层次上的工作方式——三角形是它们能够绘制的唯一形状。 “一切”都不准确。显然,例如,曾经绘制的每个纹理都没有描绘出三角形。另外,请定义“画”。 我的意思是你想在屏幕上渲染/显示的任何东西都必须分解成三角形。 【参考方案1】:

GPU(有一些罕见的例外)专门处理三角形。正方形只是两个相互对接的三角形。圆只是一组排列成扇形的小三角形。每个形状都由许多适当图案的小三角形组成。

Metal 以低级方式与 GPU 进行通信,因此现在您的工作就是根据三角形组来表达形状。

【讨论】:

以上是关于如何使用 Metal 绘制弧线?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QPropertyAnimation 和 QPainter 绘制弧线

如何使用 Metal API 或 Accelerate Framework 绘制裁剪的位图?

使用 Metal 绘制位图

怎么用函数画出弧线?

如何在 Metal 中组合使用不同着色器的渲染命令编码器

在 Metal 中绘制点