- 使用:用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系统参数,然后根据顶点,顶点顺序,颜色,纹理,以及平移旋转缩放参数进行渲染。
- 参考文献:http://blog.csdn.net/mapdigit/article/details/7526556
Android OpenGL(一)之基础使用总结
最新推荐文章于 2024-05-01 23:41:17 发布