`
sunlong
  • 浏览: 85866 次
  • 性别: 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  
网上很多都是拷贝书上的例子或者转一些资源,真实的个人想法其实很少,希望楼主可以把真正的心得和体会拿出来分享,谢谢。

相关推荐

    最全的AndroidOpenGL开发文档

    最全的AndroidOpenGL开发文档

    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的框架,用于简化游戏开发过程,...

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

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

    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并将数据...

    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 图片Texture渲染render 演示demo

    在Android中,可以使用Bitmap类加载图片,并将其转换为OpenGL的纹理数据‌1。 ‌设置纹理参数‌:为纹理对象设置一些参数,例如过滤方式、边缘处理等。 ‌纹理映射‌是将2D纹理映射到3D物体上的过程。

    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的状态管理、变换矩阵和高级着色技术将大大扩展你的创作能力,使你能够构建出更加...

Global site tag (gtag.js) - Google Analytics