`
lyunabc
  • 浏览: 551458 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Android OpenGL ES->GLSurfaceView

 
阅读更多

这个例子是使用OpenGL ES绘图最简单的例子,说明如何使用GLSerfaceView,前面的例子Android OpenGL ES 开发教程(6):GLSurfaceView 已经详细说明了,本篇不再具体描述。几何图形顶点定义参见Android OpenGL ES 开发教程(8):基本几何图形定义,颜色定义参见Android OpenGL ES 开发教程(20):颜色Color

本例对应的类文件为Cube.java ,CubeRenderer.java ,GLSurfaceViewActivity.java 。

Cube 类定义了一个立方体,要注意的是本例使用GL_FIXED,而非GL_FLOAT, GL_FIXED 表示16.16 定点浮点数,GL_FIXED 的0×10000 相当于GL_FLOAT 的1.0

对应的代码如下:

int one = 0x10000;
int vertices[] = {
 -one, -one, -one,
 one, -one, -one,
 one, one, -one,
 -one, one, -one,
 -one, -one, one,
 one, -one, one,
 one, one, one,
 -one, one, one,
};
 
int colors[] = {
 0, 0, 0, one,
 one, 0, 0, one,
 one, one, 0, one,
 0, one, 0, one,
 0, 0, one, one,
 one, 0, one, one,
 one, one, one, one,
 0, one, one, one,
};
 
byte indices[] = {
 0, 4, 5, 0, 5, 1,
 1, 5, 6, 1, 6, 2,
 2, 6, 7, 2, 7, 3,
 3, 7, 4, 3, 4, 0,
 4, 7, 6, 4, 6, 5,
 3, 0, 1, 3, 1, 2
};


CubeRenderer 通过坐标变换的方式绘制两个立方体,

gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(0, 0, -3.0f);
gl.glRotatef(mAngle, 0, 1, 0);
gl.glRotatef(mAngle*0.25f, 1, 0, 0);

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

mCube.draw(gl);

gl.glRotatef(mAngle*2.0f, 0, 1, 1);
gl.glTranslatef(0.5f, 0.5f, 0.5f);

mCube.draw(gl);

下图为当mAngle=45 度时显示结果:

分享到:
评论

相关推荐

    android-openGL-canvas-master.zip

    在“android-openGL-canvas-master.zip”这个项目中,开发者可能结合了这两者,创建了一个示例应用来展示如何在 Android 上使用 OpenGL ES(OpenGL 的嵌入式版本)与 Canvas 进行交互,以实现更高效的图形绘制和动画...

    Android OpenGL ES 绘制立方体 球体 圆柱 等几何形状

    OpenGL ES 是一种在嵌入式设备上广泛使用的图形库,特别是在Android系统中,它用于创建复杂的3D图形和动画。Android OpenGL ES 提供了一个接口,让开发者能够利用硬件加速的图形处理能力,来绘制出立方体、球体、...

    Android OpenGL ES 简明开发教程

    `GLSurfaceView`充当OpenGL ES与Android View层次结构之间的桥梁,它不仅适应于Android Activity的生命周期,还简化了Framebuffer像素格式的选择,以及创建和管理绘图线程,确保动画效果平滑流畅。此外,它还提供了...

    android-openGL特效-黑白-抖动-灵魂出窍

    在Android平台上,OpenGL ES(OpenGL for Embedded Systems)是一种广泛用于图形渲染的库,特别是在游戏和高级用户界面中。本主题将深入探讨如何使用OpenGL ES在Android应用中实现视频播放时的特殊视觉效果,如黑白...

    Android OpenGL ES 2.0学习书籍.rar

    最后,了解如何与硬件加速的OpenGLES API交互,以及熟悉GLSL语言(OpenGL Shading Language),是成为OpenGL ES 2.0专家的必经之路。通过编写高效、可读性强的着色器代码,可以创造出各种复杂的视觉效果,实现令人...

    AndroidOpenGL-3D-立方体多纹理贴图源码.zip

    本项目“AndroidOpenGL-3D-立方体多纹理贴图源码”是一个示例,展示了如何在Android设备上使用OpenGL ES进行3D渲染,特别是如何实现立方体的多纹理贴图。 在Android开发中,OpenGL ES(Embedded Systems的缩写)是...

    Android平台使用OpenGLES2.0显示YUV数据

    总结起来,这个项目涉及到Android Camera API的使用,YUV到RGB的数据转换,OpenGLES2.0纹理处理,以及`GLSurfaceView`的使用。通过实践和学习这些知识点,开发者可以实现高效、流畅的摄像头预览效果,并为后续的视频...

    android openGL ES 2.0画等边三角形,正方形

    android openGL ES 2.0画等边三角形,正方形

    Android OpenGL ES 绘制三维/空间坐标系透明

    OpenGL ES 是一种在嵌入式设备上广泛使用的图形库,特别是在Android系统中,它用于创建高性能的2D和3D图形。在这个主题中,我们主要关注如何在Android平台上使用OpenGL ES绘制一个透明的三维/空间坐标系。这个过程...

    Android点击屏幕坐标对应OpenGL ES坐标

    在Android开发中,当涉及到图形渲染时,OpenGL ES(OpenGL for Embedded Systems)是一个常见的选择,它为移动设备提供了强大的2D和3D图形处理能力。本文将深入探讨如何将Android屏幕坐标转换为OpenGL ES坐标,并在...

    Android Opengles 开发入门技术文档

    - Android 1.6 开始支持OpenGL ES 1.1,引入了GLSurfaceView、GLDebugHelper、GLException和GLUtils等类,为开发者提供了与OpenGL ES交互的基础框架。 - Android 2.2 引入了对OpenGL ES 2.0的支持,这是一个重要的...

    Android开发之OpenGL ES教程

    1. **连接OpenGL ES与视图系统**:`GLSurfaceView`自动处理将OpenGL ES渲染的结果显示到Android视图系统中。 2. **适配Activity生命周期**:当Activity的状态发生变化(如暂停、恢复)时,`GLSurfaceView`会自动处理...

    Android中opengl es要实现Obj格式的3D导入

    OpenGL ES在Android平台上的应用是实现3D图形渲染的关键技术,而Obj文件格式是一种常见的3D模型数据交换格式。在Android开发中,如果想要将Obj格式的3D模型导入到应用中,就需要对OpenGL ES有深入的理解,并且掌握...

    android opengl-ES 魔方 纹理贴图

    OpenGL-ES是Android平台上用于2D和3D图形渲染的重要库,它是OpenGL的轻量级版本,特别针对嵌入式设备如智能手机和平板电脑进行了优化。在这个项目中,"android opengl-ES 魔方 纹理贴图"的主题涉及到在Android设备上...

    OpenGL ES 纹理实例

    OpenGL ES(Embedded Systems)是OpenGL的一个精简版,专为嵌入式设备如智能手机、平板电脑等设计,用于处理2D、3D图形渲染。在移动设备上,OpenGL ES是应用开发中的重要部分,尤其在游戏和图形密集型应用中。本教程...

    Android OpenGL处理YUV数据(I420、NV12、NV21)

    在Android平台上,OpenGL被广泛用于高性能图形渲染,包括视频帧的处理。YUV是一种常见的颜色空间,常用于视频编码和解码,因为它比RGB格式更节省存储空间。本篇文章将详细探讨如何使用OpenGL处理YUV数据,特别是I420...

    android平台使用opengles2.0实现的翻书特效

    android平台利用opengles2.0技术实现的3D 翻书特效,带有完美阴影和光照技术;目前仅支持从右下角开始翻转,翻过一定角度松手后,自动翻转过去,否则的话,松手则还是翻回来;阴影是使用的阴影平面技术实现的,效果...

    android opengles2.0 jni

    OpenGL ES 2.0是Android平台上用于2D和3D图形渲染的重要库,它是OpenGL针对嵌入式设备的精简版本。JNI(Java Native Interface)则允许Java代码调用C/C++原生代码,为高性能计算和图形处理提供可能。在Android应用...

    【Android】使用GLSurfaceView+Canera预览+保存帧Bitmap

    `GLSurfaceView`是Android提供的一个用于渲染OpenGL ES图形的视图组件,而`Camera`则负责捕获设备的实时视频流。这个【Android】使用GLSurfaceView+Canera预览+保存帧Bitmap的项目,提供了一个完整的示例,让我们...

Global site tag (gtag.js) - Google Analytics