Android---OpenGLES之添加动作

在屏幕上绘制对象是OpenGL的最基本功能,你可以使用其他的Android图形框架类,如Canvas和Drawable对象来完成这些功能。OpenGLES提供了一些用于在三维空间中移动和变换被绘制的对象的能力,以及其他的创建良好用户体验的独特方式。

创新互联建站,为您提供网站建设公司网站制作、网站营销推广、网站开发设计,对服务成都iso认证等多个行业拥有丰富的网站建设及推广经验。创新互联建站网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!

在本文中,你需要使用前面几篇博文中介绍的示例,给图形添加旋转动作。

旋转图形

使用OpenGL ES 2.0来旋转一个绘制对象是相对简单的。你要创建另外的变换矩阵(旋转矩阵),然后把它跟投影和摄像机变换矩阵组合到一起:

 
 
 
  1. privatefloat[]mRotationMatrix =newfloat[16];
  2.   public void onDrawFrame(GL10 gl) {
  3.   ...
  4.   // Create a rotationtransformation for the triangle
  5.   long time = SystemClock.uptimeMillis() % 4000L;
  6.   float angle = 0.090f * ((int) time);
  7.   Matrix.setRotateM(mRotationMatrix, 0, angle, 0, 0, -1.0f);
  8.   // Combine the rotationmatrix with the projection and camera view
  9.   Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mMVPMatrix, 0);
  10.   // Draw triangle
  11.   mTriangle.draw(mMVPMatrix);
  12.   }

 做了这些改变之后,如果你的三角形没有旋转,那么就要确认你是否完成了GLSurfaceView.RENDERMODE_WHEN_DIRTY设置。

启用连续的渲染

如果你一直跟随在学习本文的示例代码,那么要确保像下面代码那样,注释掉对渲染模式的设置,否则OpenGL只会旋转图形一次,然后等待来自GLSurfaceView容器的requestRender()方法的调用。

 
 
 
  1.   publicMyGLSurfaceView(Context context){
  2.   ...
  3.   // Render the view onlywhen there is a change in the drawing data
  4.   //setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);// comment out for
  5. auto-rotation
  6.   }

除非对象的变化跟任何用户交互无关,否则设置一个开关标记是一个好主意。

本文译自:http://developer.android.com/training/graphics/opengl/motion.html

网页标题:Android---OpenGLES之添加动作
分享链接:http://www.shufengxianlan.com/qtweb/news41/520191.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联