学
opengl
的基本上都会搜到
nehe
写的教程,很多地方都是这个教程的改写。我从两个星期前开始自学
opengl
,到目前总算略懂一二。因为最终想要用在
android
上面,所以我打算把
nehe
的教程移植到
android
平台上面讲解。同时也想与那些和我一起想在
android
上做游戏的朋友分享。本文章是菜鸟级别的,如果有误请指正。
本篇对应
nehe
的第一篇:
OPENGL
窗口
本文假设大家会建立
android
应用程序了,也会大概使用
activity
,所以这些就不介绍了。
android
下面和
opengl
窗口相关的涉及到一个类
GLSurfaceView
,此类作用就是用来显示
Opengl
渲染。以下语句创建一个
GLSurfaceView
实例。
private GLSurfaceView mView;
mView = new GLSurfaceView(this);
以下设置真正的用来渲染的对象,这个对象负责真正的
opengl
工作。
MyRender
这个类稍后介绍。
mView.setRenderer(new MyRender());
接着设置渲染模式,有两种选择,一个是根据需要来渲染
(RENDERMODE_WHEN_DIRTY)
,另一个是不停地渲染。默认是
RENDERMODE_CONTINUOUSLY
。
mView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
接着
setContentView
。
setContentView(mView);
Activity
生命周期
当
activity
暂停或者恢复时必须要通知
GLSurfaceView
。
GLSurfaceView
需要相应地调用
onPause()
和
onResume()
方法。这些方法允许
GLSurfaceView
暂停或恢复渲染线程,也能够让
GLSurfaceView
释放和重建
OpenGL
显示。以下是相关代码
@Override
protected void onPause() {
super.onPause();
mView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mView.onResume();
}
下面创建
MyRender类
public class MyRender implements Renderer {
public MyRender(){
}
/**
* 显示当前帧的时候调用此方法
*/
@Override
public void onDrawFrame(GL10 gl) {
}
/**
* 当窗口大小发生改变时调用此方法
* 此方法在窗口第一次建立的时候也会被调用
*/
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
}
/**
* 当窗口创建或者重建的时候调用此方法
*/
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}
}
如何全屏?
在
Activity
的
onCreate()
方法适当位置加入以下代码
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
其中
getWindow()
获取当前
Activity
的窗口,取得窗口后设置全屏的标识。接着用
FEATURE_NO_TITLE
关掉屏幕顶端的标题。
接下来,大家就可以在模拟器中运行了,当然本程序中除了黑乎乎的平面,啥也没有。我知道本文等于啥都没说,下一篇会正式开始讲解
Opengl
。
参考文档:
android-sdk-windows/docs/reference/android/opengl/GLSurfaceView.html
分享到:
相关推荐
### Android OpenGL ES 开发教程详解 #### 概述与历史沿革 OpenGL ES(OpenGL for Embedded Systems)作为OpenGL API的子集,专为移动设备、PDA和游戏主机等嵌入式系统设计,旨在简化3D图形应用的开发流程。自2003...
本项目"android opengl 开发的小游戏"就是一个基于OpenGL ES开发的赛车游戏,名为"Countryside Racing",让我们来深入探讨一下这个项目可能涉及的关键技术和知识点。 1. **OpenGL ES基础**: - **顶点坐标系统**:...
这个“Android OpenGL开发示例”旨在为开发者提供一个深入理解并实践Android平台上的OpenGL ES开发的资源。下面我们将详细探讨这个主题。 首先,OpenGL ES是OpenGL的一个子集,专为嵌入式设备如智能手机和平板电脑...
Android 下OpenGL 开发示例,包括材质,sdk0.5下构建
这是用androidOpenGL 实现的3D 动画 导入工程即可运行。
在Android平台上,OpenGL ES(Embedded Systems的缩写)被广泛应用于游戏开发,因为它提供了强大的硬件加速功能,可以创建出复杂的视觉效果。Android OpenGL 游戏引擎是基于OpenGL ES的框架,用于简化游戏开发过程,...
Android OpenGL ES 简明开发真正的3D图 Android平台提供的OpenGL ES API主要定义在包android.opengl ,javax.microedition.khronos.egl ,javax.microedition.khronos.opengles ,java.nio 等几个包中
Android OpenGL 3D开发,示例程序,简单实用
OpenGL ES2.0学习”这本书将引导读者全面掌握OpenGL ES 2.0在Android平台上的应用,从基础概念到高级技巧,涵盖3D图形编程的各个方面,对于想要进入移动游戏开发领域的开发者来说是一本宝贵的资源。
在Android平台上,OpenGL ES(Embedded Systems的缩写)被广泛应用于游戏开发、3D渲染和其他图形密集型应用。Android OpenGL教程是开发者学习如何在Android设备上使用OpenGL ES进行图形编程的重要资源。 本教程系列...
,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控、纹理和基本原理,包括如何成功地初始化OpenGL并将数据...
《OpenGL ES应用开发实践指南:Android卷》分为两部分,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控...
OpenGL ES 是一种在嵌入式设备上广泛使用的图形库,特别是在Android系统中,它用于创建高性能的2D和3D图形。在这个主题中,我们主要关注如何在Android平台上使用OpenGL ES绘制一个透明的三维/空间坐标系。这个过程...
OpenGL的发展历程较为丰富,它是由SGI公司开发的IRIS GL图形库演变而来的,于1992年7月推出了第一个正式版本1.0。在之后的年份中,OpenGL不断迭代升级,引入了更多功能,例如在OpenGL 1.1版本中引入了纹理特性等。...
在Android平台上,OpenGL ES是一种广泛使用的图形库,用于在移动设备上实现高性能的2D和3D图形渲染。本文将深入探讨如何使用OpenGL ES来绘制圆点,并介绍一种方法来优化圆点边缘的锯齿问题,提升视觉效果。 首先,...
1. **SurfaceView**: Android提供了一个特殊的View类,叫做GLSurfaceView,用于显示OpenGL渲染的内容。开发者需要继承GLSurfaceView并实现它的Render接口,以便在onDrawFrame()方法中进行渲染操作。 2. **Renderer*...
掌握OpenGL ES对于开发高质量的Android图形应用至关重要。虽然初学者可以从基本的几何图元和简单的颜色模型开始,但深入理解OpenGL的状态管理、变换矩阵和高级着色技术将大大扩展你的创作能力,使你能够构建出更加...
这个实例源码提供了一个学习和理解Android平台上OpenGL ES应用开发的良好参考资料。 一、OpenGL ES基础 1. **顶点坐标**:OpenGL处理图形的基本单元是顶点,通过定义一组顶点来构建几何形状。 2. **着色器**:...