AS3鱼眼效果

时间:2013-03-16 15:41:48

标签: actionscript-3 flash

我无法理解DisplacementMapFilter的工作原理。基本上,我试图通过鱼眼/遮蔽的组合来创造一个旋转的行星。

另外,我如何通过时间表进行此操作?我不太熟悉其中的编码,但这更像是一个动画项目而不是其他任何东西,所以课程是不可能的。很抱歉缺少代码 - 我只是卡住了。

1 个答案:

答案 0 :(得分:1)

如上面的评论中所述,这可能只解决了问题的一半;

使用正确的工具生成置换贴图图像并不困难。我假设你正在使用Photoshop,GIMP,Fireworks或类似的东西。

最好使用此方法处理128x128或更小的图像。有些编辑器拥有更专业的工具,可以让你处理几乎任何尺寸的图像,但这是一个不需要特殊工具的通用过程。您可以随时扩大最终结果,但质量将开始下降。

  • 从渐变填充开始。它应该从左边的纯黑色到右边的深红色(特别是128,0,0)。从顶部的黑色到底部的深绿色(特别是0,128,0)添加垂直填充,并将它们与LIGHTEN或ADD滤镜组合。您现在应该有一个黑色,红色,绿色和黄色角的图像。展平它。

  • 将此图像复制到另一个图层/无论您的编辑器选择哪个术语。应用你想要的任何位移滤镜(可能是鱼眼,也许是手工涂抹,可能是透视变换,任何东西)

  • 在两者之间添加第三层。使用深黄色(128,128,0)进行泛光填充,并将其设置为添加/添加混合模式。将顶层设置为SUBTRACT / SUBTRACTION混合模式。

就是这样。你应该得到一个大部分黄色的图像,它将作为置换图。

更新

要在示例程序(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filters/DisplacementMapFilter.html#includeExamplesSummary)中使用此功能,请将createBitmapData函数替换为:

private function createBitmapData():BitmapData {
    return myBitmapObject.bitmapData;
}

其中myBitmapObject是位移Bitmap的实例名称(我认为)。有更简洁的方法来设置它,但这是最简单的。