http://www.cnblogs.com/shengdoushi/archive/2011/01/13/1934181.html#viewSource

http://www.douban.com/note/74862515/

http://blog.csdn.net/hecker385/article/details/6678621

创建一个OpenGLRenderer 实现 GLSurfaceView.Renderer接口:

  • onSurfaceCreated : 在这个方法中主要用来设置一些绘制时不常变化的参数,比如:背景色,是否打开 z-buffer等。
  • onDrawFrame: 定义实际的绘图操作。 一直在刷新调用。
  • onSurfaceChanged: 如果设备支持屏幕横向和纵向切换,这个方法将发生在横向<->纵向互换时。此时可以重新设置绘制的纵横比率。

GLSurfaceView 的渲染模式有两种,一种是连续不断的更新屏幕,另一种为on-demand ,setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY),只有在调用requestRender() 在更新屏幕。 缺省为RENDERMODE_CONTINUOUSLY 持续刷新屏幕。

通常一个纹理映射的步骤是:

  1. 创建纹理对象。就是获得一个新的纹理句柄 ID.
  2. 指定纹理。就是将数据赋值给 ID 的纹理对象,在这一步,图像数据正式加载到了 ID 的纹理对象中。
  3. 设定过滤器。定义了opengl现实图像的效果,如纹理放大时的马赛克消除。
  4. 绑定纹理对象。就是将 ID 的纹理作为下面操作的纹理。
  5. 纹理映射。将已绑定纹理的数据绘制到屏幕上去,在这一步,就能看到贴图的效果了。

其实最重要的是3步

1.定义点的3维坐标, 下面4个向量就定义了3维空间里的4个点,就是一个平面

-1.0f, -1.0f, 1.0f, //v0
1.0f, -1.0f, 1.0f, //v1
-1.0f, 1.0f, 1.0f, //v2
1.0f, 1.0f, 1.0f, //v3

2.定义贴图材质和坐标的映射, 就是图的4个角怎么对到上面的平面上,就是怎么贴
0.0f, 0.0f, //图的左下对应 v0点, 这里的只是表示4个角,不代表图的长度
0.0f, 1.0f, // 图的右下对应 v1
1.0f, 0.0f,
1.0f, 1.0f,

3上面已经把一个图和3维中的一个面做好了映射,下面就是画了。
opengl es里面贴图时只支持三角形的画法, 所以你要定义怎么画三角形的索引,就是上面的1里面的点画的顺序的数组
0,1,3, //画v0, v1, v3表示的三角形
0,3,2

最后画的代码:

gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); //绑定已经加载的材质
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); //设置3维点
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); //设置材质2维到3维的映射
gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_BYTE, indexBuffer);//根据3里面的索引来画贴好图的三角形

更多相关文章

  1. Android自定义对话框去掉白色边框
  2. android开源系列:CircleImageView自定义圆形控件的使用
  3. Android 自定义弹窗
  4. 优酷自定义菜单功能学习
  5. android 自定义属性实现 ImageView 透明度渐变效果
  6. Android 自定义拨打电话程序段
  7. Android中定义接口的用法
  8. Android:TextView自定义删除线
  9. Android 自定义Gif动画

随机推荐

  1. Android(安卓)intent消息通知机制
  2. Android(安卓)实现记住用户名和密码的功
  3. Android入门
  4. Google 发布 Android(安卓)Design 网站
  5. 半瓶水Android应用开发专栏――android基
  6. 重构博客园Android(安卓)App
  7. Android引路蜂地图开发示例:概述
  8. android 自定义带关闭按钮的dialog
  9. 定制android设备启动后进入的初始界面
  10. Android(安卓)-- Button(按钮)的几种监听