您的位置:首页 > 移动开发 > Android开发

Android OpenGL(一)之基础使用总结

2013-05-09 14:43 465 查看
使用:用GLSurfaceView的setRenderer包含一个Renderer对象,后者需实现onDrawFrame,onSurfaceChanged,onSurfaceCreated。前者实现了android View那套机制,包括了key与touch事件。

基本元素

A 顶点,包含X,Y,Z三个浮点数据,通常用java.io的FloatBuffer存放,顶点顺序用ShortBuffer存放。

B 边

C 面,可以设置顺时针或逆时针为前面(FrontFace),也可以设置要忽略的是前面还是后面。

E 多边形 ,定义顶点渲染顺序indices。

渲染,用glDrawArrays与glDrawElements,后者自定义顶点顺序,前者安装buffer默认顺序。

七中绘制方式:

1 GL_POINTS 点

2 GL_LINE_STRIP 连续线段

3 GL_LINE_LOOP 封闭线段

4 GL_LINES 独立线段

5 GL_TRIANGLES 独立三角形

6 GL_TRIANGLE_STRIP 每三个相邻顶点组成一个三角形,构成多边形

7 GL_TRIANGLE_FAN 同上,但以第一个顶点为公共点

3D 坐标变换,以(0,0,0)点为参照。

平移变换:glTranslatef (float x, float y, float z)

旋转: glRotatef(float angle, float x, float y, float z),参数为旋转角度与旋转轴(原点到(x,y,z)的直线)。

缩放:glScalef (float x, float y, float z),

在栈中缓存与恢复矩阵

glLoadIdentity():恢复最初无变换矩阵

glPushMatrix():缓存当前矩阵

glPopMatrix():从栈中恢复

颜色

单色: glColor4f(float red, float green, float blue, float alpha)。0-1.0的浮点数

平滑颜色过渡:制定每个顶点的颜色,渲染自动平滑。gl.glColorPointer

纹理textures

A 创建删除绑定texture:glGenTextures(...),gl.glDeleteTextures(...),gl.glBindTexture(...)。

B texture需要放大或是缩小时OpenGL的模式:GL10.GL_NEAREST与GL10.GL_LINEAR。

C 渲染顺序坐标。与顶点顺序一一对应。

D 设置w,h是否重复:GL_REPEAT与GL_CLAMP_TO_EDGE。

总结:首先配置gl系统参数,然后根据顶点,顶点顺序,颜色,纹理,以及平移旋转缩放参数进行渲染。

参考文献:/article/1400894.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: