这个例子是使用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 ES(OpenGL 的嵌入式版本)与 Canvas 进行交互,以实现更高效的图形绘制和动画...
OpenGL ES 是一种在嵌入式设备上广泛使用的图形库,特别是在Android系统中,它用于创建复杂的3D图形和动画。Android OpenGL ES 提供了一个接口,让开发者能够利用硬件加速的图形处理能力,来绘制出立方体、球体、...
`GLSurfaceView`充当OpenGL ES与Android View层次结构之间的桥梁,它不仅适应于Android Activity的生命周期,还简化了Framebuffer像素格式的选择,以及创建和管理绘图线程,确保动画效果平滑流畅。此外,它还提供了...
在Android平台上,OpenGL ES(OpenGL for Embedded Systems)是一种广泛用于图形渲染的库,特别是在游戏和高级用户界面中。本主题将深入探讨如何使用OpenGL ES在Android应用中实现视频播放时的特殊视觉效果,如黑白...
最后,了解如何与硬件加速的OpenGLES API交互,以及熟悉GLSL语言(OpenGL Shading Language),是成为OpenGL ES 2.0专家的必经之路。通过编写高效、可读性强的着色器代码,可以创造出各种复杂的视觉效果,实现令人...
本项目“AndroidOpenGL-3D-立方体多纹理贴图源码”是一个示例,展示了如何在Android设备上使用OpenGL ES进行3D渲染,特别是如何实现立方体的多纹理贴图。 在Android开发中,OpenGL ES(Embedded Systems的缩写)是...
总结起来,这个项目涉及到Android Camera API的使用,YUV到RGB的数据转换,OpenGLES2.0纹理处理,以及`GLSurfaceView`的使用。通过实践和学习这些知识点,开发者可以实现高效、流畅的摄像头预览效果,并为后续的视频...
android openGL ES 2.0画等边三角形,正方形
OpenGL ES 是一种在嵌入式设备上广泛使用的图形库,特别是在Android系统中,它用于创建高性能的2D和3D图形。在这个主题中,我们主要关注如何在Android平台上使用OpenGL ES绘制一个透明的三维/空间坐标系。这个过程...
在Android开发中,当涉及到图形渲染时,OpenGL ES(OpenGL for Embedded Systems)是一个常见的选择,它为移动设备提供了强大的2D和3D图形处理能力。本文将深入探讨如何将Android屏幕坐标转换为OpenGL ES坐标,并在...
- Android 1.6 开始支持OpenGL ES 1.1,引入了GLSurfaceView、GLDebugHelper、GLException和GLUtils等类,为开发者提供了与OpenGL ES交互的基础框架。 - Android 2.2 引入了对OpenGL ES 2.0的支持,这是一个重要的...
1. **连接OpenGL ES与视图系统**:`GLSurfaceView`自动处理将OpenGL ES渲染的结果显示到Android视图系统中。 2. **适配Activity生命周期**:当Activity的状态发生变化(如暂停、恢复)时,`GLSurfaceView`会自动处理...
OpenGL ES在Android平台上的应用是实现3D图形渲染的关键技术,而Obj文件格式是一种常见的3D模型数据交换格式。在Android开发中,如果想要将Obj格式的3D模型导入到应用中,就需要对OpenGL ES有深入的理解,并且掌握...
OpenGL-ES是Android平台上用于2D和3D图形渲染的重要库,它是OpenGL的轻量级版本,特别针对嵌入式设备如智能手机和平板电脑进行了优化。在这个项目中,"android opengl-ES 魔方 纹理贴图"的主题涉及到在Android设备上...
OpenGL ES(Embedded Systems)是OpenGL的一个精简版,专为嵌入式设备如智能手机、平板电脑等设计,用于处理2D、3D图形渲染。在移动设备上,OpenGL ES是应用开发中的重要部分,尤其在游戏和图形密集型应用中。本教程...
在Android平台上,OpenGL被广泛用于高性能图形渲染,包括视频帧的处理。YUV是一种常见的颜色空间,常用于视频编码和解码,因为它比RGB格式更节省存储空间。本篇文章将详细探讨如何使用OpenGL处理YUV数据,特别是I420...
android平台利用opengles2.0技术实现的3D 翻书特效,带有完美阴影和光照技术;目前仅支持从右下角开始翻转,翻过一定角度松手后,自动翻转过去,否则的话,松手则还是翻回来;阴影是使用的阴影平面技术实现的,效果...
OpenGL ES 2.0是Android平台上用于2D和3D图形渲染的重要库,它是OpenGL针对嵌入式设备的精简版本。JNI(Java Native Interface)则允许Java代码调用C/C++原生代码,为高性能计算和图形处理提供可能。在Android应用...
`GLSurfaceView`是Android提供的一个用于渲染OpenGL ES图形的视图组件,而`Camera`则负责捕获设备的实时视频流。这个【Android】使用GLSurfaceView+Canera预览+保存帧Bitmap的项目,提供了一个完整的示例,让我们...