【问题标题】:Simulating brush strokes for painting application模拟绘画应用的笔触
【发布时间】:2020-06-09 02:40:57
【问题描述】:

我正在尝试编写一个应用程序,该应用程序可用于使用模拟笔触创建看起来像绘画的图片。有没有模拟笔触的简单方法的好资源?例如,给定用户拖动鼠标经过的鼠标位置列表、画笔宽度和画笔纹理,我如何确定要在画布上绘制什么?

我尝试在鼠标移动的方向上调整画笔纹理的角度,并沿着路径轻拍几张画笔纹理图像,但看起来不太好。我想我错过了笔刷纹理应该在角落收缩和增长的东西。

任何简单的链接将不胜感激。我发现了关于模拟的复杂学术论文,例如油画颜料,但我只想使用一个基本算法,如果可能的话,它会产生好的结果。

【问题讨论】:

  • 除了坐标列表,还能得到时间戳吗?这可能会让你在用户绘制缓慢或犹豫不决的地方变暗。
  • 要正确真实地模拟画笔行为,您至少需要知道以下信息:坐标列表、压力、速度和笔/画笔角度。普通鼠标只能采集坐标列表和速度数据;你需要一个 wacom 数位板来收集压力和角度。您可能想看看“Inkscape”是如何使用其画笔工具的,它对于仅使用鼠标的绘图效果非常好。

标签: c opengl graphics paint


【解决方案1】:

有大量关于非写实渲染的文献。主要书籍有 “Non-Photorealistic Computer Graphics”,作者:Strothotte & Schlechtweg 和 “Non-photorealistic Rendering”,来自 Gooch & Gooch。他们讨论笔触。 有几篇论文涉及模拟笔触。 参见例如“Simulating Artistic Brushstrokes Using Interval Splines”。

【讨论】:

【解决方案2】:

这是 1989 年的经典作品 - Dynadraw,作者 Paul Haeberli。它使用一个简单的动态模型来平滑地填充原始鼠标位置。

虽然笔触是以多边形的形式递增绘制的,但您应该能够使用动态过滤器生成的点来放置画笔纹理的副本。

【讨论】:

  • 谢谢,这看起来很有趣!我很好奇是否有专门针对笔画的类似算法。
  • @DrRobot,我不确定你的意思。 Dynadraw 专门用于笔画的,不是吗?
  • 糟糕,我还以为是笔类工具的模拟... :-/ 谢谢。
  • @DrRobot,很公平,就像笔一样。但正如我所说,应该很容易转换为画笔状。
  • stackoverflow bat 信号工作正常。 “Iris”是当时由 Silicon Graphics (SGI) 出售的图形工作站。例如,请参阅en.wikipedia.org/wiki/SGI_IRIS
【解决方案3】:

我能想到的方法是计算线中每个点的画笔强度,并在其上叠加许多均匀的纹理。每个纹理都有一个 alpha 值,对应于画笔在该位置向下推画布的“力度”。计算画笔向下推力的功能可能必须与输入相关。

如果您使用 Photoshop 或 GIMP 之类的工具,并观察它是如何实现画笔工具的,那么模拟接近它的东西应该很容易。

【讨论】:

  • 我真的复制了 gimp 目前的功能,而 gimp 似乎根本无法很好地进行绘画模拟。我已经设置了不透明度和间距,并且笔划的角度跟随鼠标。像在 gimp 中一样,由于笔刷形状没有改变,所以转弯看起来不正确。
【解决方案4】:

不完全符合您的要求,但我发现使用线条平滑的应用程序(如 iPad 上的 Adob​​e Ideas 或 Mac 上的 Doozla)可以制作更逼真和赏心悦目的笔触,就像您不使用的那样不能完美地跟踪鼠标移动而产生不自然的“锯齿”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多