【Android开发学习13】Android OpenGL ES 3D空间与glDrawArrays
2013-02-20 16:29
453 查看
1.四棱锥: 由4个三角形构成。
四方体: 由6个三角形构成。
难点:在构建3D空间的顶点坐标时,要让对象绕自身的轴旋转,必须让对象的中心坐标总是(0.0f,0.0f,0.0f),
并且三角形都是按逆时针次序绘制的。
2.3D空间的绘制:
GL_APICALL void GL_APIENTRY glDrawArrays
(GLenum mode, GLint first, GLsizei count);
参数说明:
mode,绘制方式,OpenGL2.0以后提供以下参数:GL_POINTS、GL_LINES、GL_LINE_LOOP、GL_LINE_STRIP、GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN。
first,从数组缓存中的哪一位开始绘制,一般为0。
count,数组中顶点的数量。
3.绘制顶点数组:
//绘制三角锥
for(int i=0; i<4; i++)
{
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i*3, 3);
}
//绘制四方体
for(int i=0; i<6; i++)
{
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i*4, 4);
}
[附]构建顶点数组:
四方体: 由6个三角形构成。
难点:在构建3D空间的顶点坐标时,要让对象绕自身的轴旋转,必须让对象的中心坐标总是(0.0f,0.0f,0.0f),
并且三角形都是按逆时针次序绘制的。
2.3D空间的绘制:
GL_APICALL void GL_APIENTRY glDrawArrays
(GLenum mode, GLint first, GLsizei count);
参数说明:
mode,绘制方式,OpenGL2.0以后提供以下参数:GL_POINTS、GL_LINES、GL_LINE_LOOP、GL_LINE_STRIP、GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN。
first,从数组缓存中的哪一位开始绘制,一般为0。
count,数组中顶点的数量。
3.绘制顶点数组:
//绘制三角锥
for(int i=0; i<4; i++)
{
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i*3, 3);
}
//绘制四方体
for(int i=0; i<6; i++)
{
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i*4, 4);
}
[附]构建顶点数组:
int one = 0x10000; // 四棱锥顶点数组: private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]{ 0,one,0, -one,-one,0, one,-one,one, 0,one,0, one,-one,one, one,-one,-one, 0,one,0, one,-one,-one, -one,-one,-one, 0,one,0, -one,-one,-one, -one,-one,one }); // 四方体顶点数组: private IntBuffer quaterBuffer = IntBuffer.wrap(new int[]{ one,one,-one, -one,one,-one, one,one,one, -one,one,one, one,-one,one, -one,-one,one, one,-one,-one, -one,-one,-one, one,one,one, -one,one,one, one,-one,one, -one,-one,one, one,-one,-one, -one,-one,-one, one,one,-one, -one,one,-one, -one,one,one, -one,one,-one, -one,-one,one, -one,-one,-one, one, one, -one, one, one, one, one, -one, -one, one, -one, one, });
相关文章推荐
- 【Android开发学习15】Android OpenGL ES 纹理映射之glDrawArrays
- 【Android开发学习18】Android OpenGL ES 光照glDrawArrays
- Android OpenGL(二) 学习《Android 3D 游戏开发技术宝典 -openGL ES 2.0》
- 【Android开发学习16】Android OpenGL ES 关于glDrawArrays和glDrawElements
- Android 3D游戏开发(基础篇)——Opengl ES游戏引擎实现(送源码)
- 【Android开发学习10】Android OpenGL ES 画多边形
- Android OpenGL ES 简明开发教程_3D坐标变换
- Android OpenGL ES 简明开发教程六: 真正的3D图形
- Android OpenGL ES 简明开发教程三:3D绘图基本概念
- Android开发 OpenGL ES绘制3D 图形实例详解
- Android OpenGL ES 简明开发教程_真正的3D图形
- Android OpenGL ES 简明开发教程四:3D 坐标变换
- Android OpenGL ES 简明开发教程六: 真正的3D图形
- Android OpenGL ES 简明开发教程六:真正的3D图形
- 【Android开发学习11】Android OpenGL ES 颜色
- 3D开发学习-初始openGL ES应用程序
- Android OpenGL ES 简明开发教程 03 <3D绘图基本概念>
- Android OpenGL ES 简明开发教程三:3D绘图基本概念
- Android OpenGL ES 简明开发教程三:3D绘图基本概念
- Android 3D游戏开发——Opengl ES游戏引擎实现