运动模糊
来源:互联网 发布:银行卡数据隔空采集器 编辑:程序博客网 时间:2024/04/29 12:54
运动模糊效果是指物体移动时,会拖带一个尾巴。通过颜色混合,可以实现这种效果。实现原理就是每隔一小段位移以某种alpha值重复绘制物体, 通过与前面画的物体进行颜色混合来实现模糊的效果。
混合因子选择如下:
S因子:GL_SRC_ALPHA
D因子:GL_ONE
实例代码如下:
public class MyRenderer implements Renderer {private Square square1 = null;private static final float M_PI = 3.14159265358979323846f;private static final float blur_detail = 24;private float x = -2.0f;public MyRenderer(Context ctx) {square1 = new Square(ctx, false);}@Overridepublic void onDrawFrame(GL10 gl) {gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);// Replace the current matrix with the identity matrixgl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();if (x > 2.0f)x = -2.0f;x += 0.05f;gl.glPushMatrix();float ball_alpha = 1 / blur_detail;gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);gl.glTranslatef(x, 0, 0);for (int i = 0; i < blur_detail; ++i) {gl.glTranslatef(0.5f / blur_detail, 0, -0.5f / blur_detail);/* comment the following line for quick but boring linear blur */ball_alpha = (float) (Math.sin((M_PI / blur_detail) * i) / blur_detail);gl.glColor4f(1, 1, 1, ball_alpha);square1.draw(gl);}gl.glPopMatrix();}@Overridepublic void onSurfaceChanged(GL10 gl, int width, int height) {float ratio = (float) width / height;gl.glMatrixMode(GL10.GL_PROJECTION);gl.glLoadIdentity();GLU.gluPerspective(gl, 45, ratio, 0.01f, 100);GLU.gluLookAt(gl, 0, 0, -5, 0, 0, 0, 0, 1, 0);gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();}@Overridepublic void onSurfaceCreated(GL10 gl, EGLConfig config) {// TODO Auto-generated method stubgl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);// Enable Smooth Shading, default not really needed.gl.glShadeModel(GL10.GL_SMOOTH);gl.glEnable(GL10.GL_BLEND);gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);}}
- 运动模糊
- 运动模糊
- 运动模糊
- 运动模糊的实现
- 运动模糊(Montion blur)
- 运动模糊 motion blur
- 运动模糊消除
- 运动模糊图像,模糊图像,锐化图像
- 运动模糊实现(VC++)
- 什么是运动模糊(Motion Blur)
- 游戏运动模糊技术讲解
- PS运动模糊+径向模糊+高斯模糊
- 简单的运动模糊效果实现
- 使用累加缓存实现运动模糊
- OpenCV实现运动模糊图像的模拟
- 高质量单幅图片运动去模糊
- Motion Deblurring图像运动去模糊代码
- motion offset(color accumulation)运动模糊特效
- java八大基本数据类型
- session_cache_limiter(private,must-revalidate)表单页面回跳
- linux设备驱动归纳总结(六):3.中断下半部之tasklet
- About seq_file operations
- linux设备驱动归纳总结(六):3.中断下半部之工作队列
- 运动模糊
- vs2005 配置winpcap
- 恢复input之前的值(意思是,修改了input,但不用form的reset方法,单个恢复input修改前的值)
- 点击获取google地图的经伟度数字.
- linux设备驱动归纳总结(七):1.时间管理与内核延时
- Tomcat部署的几个小问题
- C语言实现的多态
- java线程(一)
- 上传图片用到的(js,action)-Hired My way 项目