`
sunlong
  • 浏览: 85554 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Android Opengl开发一

阅读更多

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

2
0
分享到:
评论
3 楼 smilecatflowers 2011-08-12  
这样的心得,虽然简单确是一目了然。。
2 楼 habzyhs 2011-01-27  
就需要这样的心得,其他看了还是要自己总结半天阿~~

等待楼主下篇~~~
1 楼 Soul4 2011-01-15  
网上很多都是拷贝书上的例子或者转一些资源,真实的个人想法其实很少,希望楼主可以把真正的心得和体会拿出来分享,谢谢。

相关推荐

    Android OpenGL ES 简明开发教程

    ### Android OpenGL ES 开发教程详解 #### 概述与历史沿革 OpenGL ES(OpenGL for Embedded Systems)作为OpenGL API的子集,专为移动设备、PDA和游戏主机等嵌入式系统设计,旨在简化3D图形应用的开发流程。自2003...

    android opengl 开发的小游戏

    本项目"android opengl 开发的小游戏"就是一个基于OpenGL ES开发的赛车游戏,名为"Countryside Racing",让我们来深入探讨一下这个项目可能涉及的关键技术和知识点。 1. **OpenGL ES基础**: - **顶点坐标系统**:...

    AndroidOpenGL开发示例

    这个“Android OpenGL开发示例”旨在为开发者提供一个深入理解并实践Android平台上的OpenGL ES开发的资源。下面我们将详细探讨这个主题。 首先,OpenGL ES是OpenGL的一个子集,专为嵌入式设备如智能手机和平板电脑...

    Android 下OpenGL 开发示例

    Android 下OpenGL 开发示例,包括材质,sdk0.5下构建

    androidOpenGL实现3d动画

    这是用androidOpenGL 实现的3D 动画 导入工程即可运行。

    Android OpenGL 游戏引擎

    在Android平台上,OpenGL ES(Embedded Systems的缩写)被广泛应用于游戏开发,因为它提供了强大的硬件加速功能,可以创建出复杂的视觉效果。Android OpenGL 游戏引擎是基于OpenGL ES的框架,用于简化游戏开发过程,...

    Android OpenGL ES 简明开发教程相关源码真正的3D图形

    Android OpenGL ES 简明开发真正的3D图 Android平台提供的OpenGL ES API主要定义在包android.opengl ,javax.microedition.khronos.egl ,javax.microedition.khronos.opengles ,java.nio 等几个包中

    Android OpenGL 示例程序

    Android OpenGL 3D开发,示例程序,简单实用

    Android OpenGL ES 2.0学习书籍.rar

    OpenGL ES2.0学习”这本书将引导读者全面掌握OpenGL ES 2.0在Android平台上的应用,从基础概念到高级技巧,涵盖3D图形编程的各个方面,对于想要进入移动游戏开发领域的开发者来说是一本宝贵的资源。

    Android OpenGL 教程(1-5)

    在Android平台上,OpenGL ES(Embedded Systems的缩写)被广泛应用于游戏开发、3D渲染和其他图形密集型应用。Android OpenGL教程是开发者学习如何在Android设备上使用OpenGL ES进行图形编程的重要资源。 本教程系列...

    OpenGL ES应用开发实践指南(Android卷).pdf

    ,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控、纹理和基本原理,包括如何成功地初始化OpenGL并将数据...

    OpenGL ES应用开发实践指南 Android卷

     《OpenGL ES应用开发实践指南:Android卷》分为两部分,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控...

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

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

    Android OpenGL的入门资料PDF

    OpenGL的发展历程较为丰富,它是由SGI公司开发的IRIS GL图形库演变而来的,于1992年7月推出了第一个正式版本1.0。在之后的年份中,OpenGL不断迭代升级,引入了更多功能,例如在OpenGL 1.1版本中引入了纹理特性等。...

    Android OpenGl ES绘制圆点与优化圆点锯齿

    在Android平台上,OpenGL ES是一种广泛使用的图形库,用于在移动设备上实现高性能的2D和3D图形渲染。本文将深入探讨如何使用OpenGL ES来绘制圆点,并介绍一种方法来优化圆点边缘的锯齿问题,提升视觉效果。 首先,...

    Android OpenGL的一个简单的例子.zip

    1. **SurfaceView**: Android提供了一个特殊的View类,叫做GLSurfaceView,用于显示OpenGL渲染的内容。开发者需要继承GLSurfaceView并实现它的Render接口,以便在onDrawFrame()方法中进行渲染操作。 2. **Renderer*...

    android opengl原理分析

    掌握OpenGL ES对于开发高质量的Android图形应用至关重要。虽然初学者可以从基本的几何图元和简单的颜色模型开始,但深入理解OpenGL的状态管理、变换矩阵和高级着色技术将大大扩展你的创作能力,使你能够构建出更加...

    Android opengl 实例源码

    这个实例源码提供了一个学习和理解Android平台上OpenGL ES应用开发的良好参考资料。 一、OpenGL ES基础 1. **顶点坐标**:OpenGL处理图形的基本单元是顶点,通过定义一组顶点来构建几何形状。 2. **着色器**:...

Global site tag (gtag.js) - Google Analytics