一,Android中使用opengl-es
使用GlSurfaceView类,它是一个特殊的view,有初始化EGL Context和Surface, 并创建一个独立的线程用于处理GL相关的操作(Render);
二,使用Shader
1,核心是创建shader文件
2,创建shader对象
类似于obj中间文件
3,创建Program对象
类似于最终的可执行文件
三,顶点属性赋值方法
1,指定常量
2,使用顶点数组
a, 可以将顶点的属性都放在同一个内存块中
推荐,因为存取内存更有效率
b, 将顶点属性的值分开存放
3,可以使用gl函数在2者之间进行切换
glEnableVertexAttribArray()
4,顶点赋值函数glVertexAttribPointer,其中stride代表每个顶点之间的距离,offset代表一个顶点中每个属性之间的距离;
四,Vertex Buffer
使用Buffer可以提升效率,因为vertex Array其实是存放在内存中,它只有在执行draw的时候才上传到显卡中,这就是说每渲染一个三角形都要重新上传顶点数据;
主要有2中类型的buffer:
1, array buffer
2,element array buffer