【问题标题】:Drawing Lines in WPF-Forms with crayon-shader?用蜡笔着色器在 WPF-Forms 中画线?
【发布时间】:2014-04-10 02:36:49
【问题描述】:

我们在大学有一个项目,我们必须创建可由用户控制的分形(使用 kinect)。我们仍处于评估一些想法的早期阶段(尽管我们已经有了一些工作原型)。我们现在的想法是使用黑板图像作为背景并在其上绘制分形。为了使这看起来更自然,我们想在我们绘制的线条上使用一些蜡笔效果。

我们的互联网研究产生了两个主要想法来实现这一目标:

  1. 为线条的每个鼠标位置绘制类似 Photoshop 的画笔的图像。
  2. 在绘图功能上使用着色器。

第一个确实适用于早期测试,但看起来很糟糕。我想后者将是最好的方法,但互联网上的信息似乎缺乏关于这个主题的信息。至少我没有找到任何真正有帮助的东西。问题是: 有没有人关于如何实现这种效果的链接或一般提示,或者在 C#/WPF 中是不可能的。可能有更好的方法吗?以及如何将创建的着色器应用于绘制线方法/画笔?

提前致谢和亲切的问候

迈克尔

【问题讨论】:

  • 小注:您可能会在 gamedev.stackexchange.com 处询问有关着色器的更多帮助
  • 查看我的编辑,我添加了一些内容。

标签: c# wpf shader paint


【解决方案1】:

编辑

@Bradley Uffner 的好建议! (不幸的是他删除了他的答案)

这里有一个关于如何实现这种效果的教程:

http://alastaira.wordpress.com/2013/11/01/hand-drawn-shaders-and-creating-tonal-art-maps/

我最近发现的另一件事可能会让您感兴趣:

http://blogs.msdn.com/b/hemipteran/archive/2014/03/26/generating-noise-for-applications.aspx

我没看清楚你的问题的标题,Windows 窗体根本不支持着色器。

更具体地了解蜡笔着色器的含义

关于在 WPF 中使用着色器,您不能在行级别应用它们,而是在 Control 级别应用它们。

这是 WPF 中表示着色器的类:

http://msdn.microsoft.com/en-us/library/system.windows.media.effects.effect(v=vs.110).aspx

我的建议

  • 使用Image 并将其Source 属性设置为使用WriteableBitmap
  • 使用优秀的WriteableBitmapEx库轻松绘制,基本上是WPF中的WriteableBitmap,但有许多用于绘制线条、圆形、矩形等的扩展方法...
  • 然后将着色器应用于ImageEffect 属性

用于开发着色器

使用Shazzam,它允许您在一个很酷的界面中为WPF开发一个HLSL着色器,立即预览它,它会生成Effect类准备粘贴到您的项目中。

DOSBox SVN-Daum 中可能会有一些有趣的着色器供您使用

这是一个卡通着色器的例子:

显然会有相当多的工作,因为将着色器复制粘贴到 Shazzam 不会立即起作用,但您会知道实现效果背后的数学原理。

如果您对答案感到满意,请将答案标记为已接受:D 如果不编辑您的问题并添加更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 2011-10-25
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多