用于绘制应用程序的多重采样

时间:2013-08-28 13:29:45

标签: ios opengl-es-2.0

我正在创建一个绘图iOS应用程序,并且需要平滑用户绘制的线条。 我正常使用多重采样。

每次用户移动手指时,代码都是这样的:

  1. 创建点以生成一条线,然后将这些点绘制到采样缓冲区。
  2. 解析采样缓冲区。
  3. 结果缓冲区将绘制到画布上。
  4. 问题是当用户有一个大画布(例如:2048x2048)时,解析过程需要相当长的时间才会导致绘图滞后/波动。无论是否需要解析像素,解析过程都将解析缓冲区中的所有像素。

    我看到了像Procreate这样的绘图应用程序,即使是大画布也能顺利绘制并且没有任何延迟。

    所以,有可能,我只是不知道该怎么做。

    有人有解决方案吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

万一有人和我有同样的问题,我找到了一个不错的解决方案:

  1. 创建一个较小的采样FBO,仅用于绘制从最后一点到当前点的线。我使用256x256缓冲区。
  2. 从最后一点绘制到当前点时,请使用此采样缓冲区然后解析。
  3. 将此采样缓冲区绘制到当前图层。
  4. 结果不错,没有滞后。唯一的问题是设置适当的变换,矩阵等是非常困难的。