我需要一种算法来渲染柔和的画笔笔触
时间:2020-03-05 18:59:34 来源:igfitidea点击:
我有一系列鼠标点,笔触宽度和柔软度。我可以绘制柔和的圆圈和柔和的线条。我应该使用哪种算法绘制点数组?我希望交叉线看起来也很漂亮,而且端点也不错。
解决方案
回答
我认为也许我们正在寻找样条算法。
这是样条教程,我们可能会发现有帮助:
[http://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/index.html]
大多数有关图形编程的书籍也涵盖了该主题。
干杯。
回答
我绝对会为此选择Bezier,尤其是我将实现分段立方Bezier,它确实易于实现和掌握,并且被3D Studio max和Photoshop广泛使用。
这是一个很好的来源:
http://local.wasp.uwa.edu.au/~pbourke/surfaces_curves/bezier/cubicbezier.html
假设我们在两个点之间有一个顺序,要设置四个控制点,我们应该执行以下操作:
我定义点P [i]和点P [i + 1]之间的切线
- T1 =(P [i + 1]-P [i-1])
- T2 =(P [i + 2]-P [i])
要创建两点之间的分段,请执行以下操作:
- 控制点Q1:P [i]
- 控制点Q2:沿Q1切线的点=> Q1 + 0.3T1
- 控制点Q3:沿着与Q4相切的点=> Q4-0.3T2
- 控制点Q4:P [i + 1]
我选择0.3T的原因是任意的,以使其具有足够的"强度",但又不过分,可以使用更详尽的方法来解决加速问题(C2连续性)。
享受
回答
我想出了一个非常柔软的渐变圆,反复画出一个笔画,并使用乘法进行混合。
回答
从Gooch&Gooch的"非真实感渲染"开始,我们可能会发现Pham的作品很有用,请参阅PDF解释算法。
Tateosian有一篇不错的概述文章,其中用漂亮的图片更详细地解释了其他技术。仅靠贝塞尔曲线绘制并不能产生想要的效果(取决于想要获得的效果)。但是,我当然会从Paul的工作开始,看看用软笔画一下是否足够好。
有人警告,这个领域有很多专利。