Crayon Physics Deluxe是最近推出的商业游戏.观看主链接上的视频,了解我在说什么.
它允许您绘制形状并让它们与适当的物理反应.目标是使用您构建的装置和形状将球移动到屏幕上的星形.
虽然游戏基本上是流行的Box2D物理引擎的包装器,但它确实有一个功能,我很好奇它是如何实现的.
它的绘图看起来非常像蜡笔.你可以看到蜡笔的质地,因为它绘制的厚度和暗度各不相同,就像真正的蜡笔画一样.
(来源:kloonigames.com)
(来源:kloonigames.com)
背景纹理在这里免费提供.
alt text http://img267.imageshack.us/img267/1488/crayonmh7.png
关闭蜡笔画 - 注意不同的黑暗
将使用什么样的算法以看起来像蜡笔的方式渲染这些线?这是一个简单的纹理应用随机厚度和黑暗还是还有更多的东西?
我记得(很久以前)读过一个算法的简短描述:
对于线条的一般形式,您将该线段在一个随机点处分成两部分,并将该点稍微远离其位置(该变化取决于该点到四肢的距离).递归/随机重复.这样,你的线条不是"完美的"(直线)
对于给定的片段,您可以通过扩展一个肢体或另一个肢体(或两者)来"略微"过度.这样,你没有完美的关节.如果我记得很清楚,最好是扩展原始肢体,但是如果你想明显地分割它们,你可以为子段做到这一点.
用图案/印章画出线条
还有(已经提到的)用不同的起始和结束不透明度绘制的可能性(模仿在绘图结束时释放笔的倾向)
您可以在线的开头和结尾使用不同尺寸的印章(也可以模仿在绘图结束时释放笔的倾向).为了达到同样的效果,您还可以绘制两次线条,其中一个边缘有一个小的变化(在这种情况下要小心alpha,因为线条将被绘制两次)
最后,对于给定的行,您可以多次执行先前的修改(即绘制两次,具有不同的变化):如果他们犯了一些错误,人们往往会重复一行.
问候
如果你将图像向上吹,你可以看到一个重复的图章模式......当它从a移动到b时,它可能会使用一个小的分类 - 甚至可能会旋转它们.
线路的摇摆不是那么难以做到的.划分成一堆随机区段,选择稍微偏离直接路线的位置并绘制样条线.
这是一篇论文,它使用大量数学来模拟使用摩擦模型在纸上沉积蜡.但我认为你最好的选择是使用重复模式,正如另一位读者所提到的那样,并根据压力改变不透明度.
对于不完美的线条绘制部分,我有一篇博客文章描述了如何使用贝塞尔曲线来完成它.