本文版权归 博客园 Clifford 所有,如有转载,请自觉于显式位置标明原创作者及出处,以示尊重!!
作者:Clifford
原文:http://www.cnblogs.com/flash3d/archive/2012/02/15/2353169.html
demo程序需要安装Flash Player11才能正常运行。
运行效果点击进入原文观看。
源文件:http://files.cnblogs.com/flash3d/radialBlur.rar
点击“open”按钮可以选择本地图片,水平滚动条可以调整模糊的量。
之前一直在纠结AGAL不能进行流程控制,致使很多需要循环计算的特效无法使用硬件加速。
今天用了一个笨方法通过as3循环拼接AGAL程序来模拟简单确定的循环过程。
一个循环执行十次,就要在程序中拼十行相同的代码,由于程序的最大长度限制,程序只能拼非常有限的数量。
这个方法相当撇脚,不知大大们是否有更好的方法,求点拨。
下面介绍径向模糊的基本算法。
一般模糊算法的基本思想是,目标图像(生成的图像)上的任何一点的颜色值都受源图像对应位置的点以及其附近的点的颜色值共同影响。比如高斯模糊就是将处理点附近的颜色平均值作为该点的颜色。而径向模糊的特点则是某个中心点颜色向外扩散,这说明从中心点指向外侧的一条直线上,远离中心点的点是不会影响比较靠近中心点的点。另外,由于颜色是向四处发散,则不同放射线上的颜色也不会相互影响。
那么,我们可以将径向模糊算法归结为,目标图像上的某点颜色值为源图像对应点向中心点方向上一定距离的像素平均值。如下图所示。
灰色点就是采样点,处理每个像素都要找到他对应的采样点,计算这些点的颜色平均值(分三个通道)则是我们要计算的点的颜色值。其中采样点的个数在程序中称为STEP(步数),点的间隔成为步长,步长不一定是距离,在程序中步长是scale值,所以采样点不是等距离的,离中心点越远采样点越稀疏,模糊起来更豪放o(╯□╰)o
这里我采用矩阵缩放的方式计算采样点进行采样。
通过矩阵,可以对一个点进行变换,如将所有绿色点的坐标变换到红色点的位置,这个变换是等比变换(scaleX == scaleY)。变换后的坐标点和原点正好是在中心点的同一条辐射线上。我们可以给定一个单位矩阵,每次对该矩阵的scale减小一个固定量,然后采样,反复执行一定次数,则可以采样到一系列同一辐射线上的点。矩阵计算在GPU中是很快的,当然,你也可以选择通过计算这个直线的dx(x微分),dy(y微分),不断累加来获取采样点坐标,不过看起来的效果不如用scale采样美观。
算法解析到这里,源码内有注释已提供下载,关于Stage3D技术的使用方法请参考上一篇博文。
分享到:
相关推荐
1. **显卡加速**:Stage3D利用了现代显卡的并行处理能力,将计算任务从CPU转移到GPU,从而显著提高帧率和图形质量。 2. **批次处理**:在Stage3D中,图形数据被组织成批次,每个批次包含一组具有相同渲染属性的对象...
Stage3D借鉴了现代GPU加速的图形处理概念,使得开发者能够充分利用硬件加速,创建出流畅、细腻的3D视觉体验。 压缩包内的文件主要包含不同章节的代码示例,例如: 1. Stage3D_Code_Chapter07:这一部分可能涵盖了第...
Stage3D是Adobe Flash Player 11和AIR 3引入的一项重大革新,它允许开发者利用硬件GPU(图形处理器单元)加速来渲染复杂的3D场景,从而极大提升了应用程序的性能和视觉效果。本文将深入探讨Stage3D的启用方法、环境...
Stage3D是Flash Player 11及更高版本中引入的新特性,它为ActionScript 3(AS3)提供了一个直接访问GPU硬件加速的接口,极大地提升了2D和3D图形的渲染性能。相比传统的Canvas和Sprite,Stage3D能实现接近原生的速度...
在IT行业中,Stage3D是Adobe Flash Player和Adobe AIR中的一个关键特性,它为开发者提供了高效、低级别的硬件加速图形渲染能力。Stage3D为2D和3D游戏、复杂视觉应用以及数据可视化等高性能图形处理提供了底层接口,...
Stage3D是ActionScript 3.0的一个重要组件,它提供了一个硬件加速的渲染层,允许开发者直接访问GPU的计算能力,从而提高了图形处理的速度和效率。通过Stage3D,开发者可以创建出与原生游戏平台相媲美的3D视觉效果,...
Stage3D是Adobe Flash Player和Adobe AIR中的一个低级API,它允许开发者利用显卡(GPU)的计算能力来加速2D和3D图形渲染,从而实现更复杂的视觉效果。这篇博文(链接已提供)可能详细介绍了如何利用Stage3D来实现...
Stage3D是AS3的一个重要组成部分,它为开发者提供了低级别的硬件加速图形渲染接口,直接与GPU交互,从而实现2D和3D图形的高性能渲染。Stage3D包括几个主要的API,如Context3D,用于管理GPU资源,以及Sprite3D和...
Stage3D是Adobe公司针对Flash平台推出的一种3D图形API,它允许开发者利用GPU硬件加速来创建高性能的2D和3D内容。在深入探讨Stage3D技术之前,有必要了解其产生的背景以及为何被选择作为Web3D技术的解决方案。 ### ...
### Starling基于Stage3D开发GPU加速的2D游戏 #### 概述 随着游戏行业的不断发展,对于游戏性能的要求也越来越高。特别是在2D游戏领域,为了实现更加流畅的画面效果和更高的分辨率,游戏开发者们开始寻求更为高效...
Stage3D是Flash Player 11及更高版本中的一项底层API,它允许开发者直接访问GPU资源,实现高效的硬件加速3D图形渲染。这一改进使得Flash能够支持复杂的3D游戏、应用程序和互动体验,与Unity和WebGL等其他3D技术相...
在计算机图形学的世界里,OpenGL和Stage3D都是实现硬件加速图形渲染的重要工具。这篇内容将深入探讨基于ActionScript 3(AS3)的Stage3D技术,这是一种在Flash平台上实现高效2D渲染的框架,其工作原理与OpenGL相似,...
AGAL,全称Adobe Graphics Assembly Language,是Stage3D中用于编程图形硬件的汇编语言。AGAL让开发者能够直接控制GPU,执行复杂的图形操作,如顶点和像素着色。虽然AGAL的学习曲线较陡,但它提供了对3D渲染流程的...
Stage3D是ActionScript 3.0的一个子集,旨在为2D和3D图形渲染提供低级别的硬件加速,极大地提高了处理复杂场景和交互式应用程序的能力。这份"Adobe Flash 11 Stage3D游戏开发指南-源代码"是开发者学习如何利用这一...
舞台3D(Stage3D)是Adobe开发的一种底层图形渲染技术,主要应用于Flash Player和Air平台上,为开发者提供了高效、低级别的硬件加速图形处理能力。它使得在浏览器或桌面应用中实现复杂的3D图形和游戏成为可能。在本...
Stage3D (代号Molehill) 是Adobe Flash Player 11和AIR 3引入的一项新技术,它允许开发者通过低级的API访问GPU硬件加速,从而实现高性能的2D和3D图形渲染。这一技术大大提升了Flash平台上的图形处理能力,使得开发者...