【Android开发学习13】Android OpenGL ES 3D空间与glDrawArrays

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);
}


[附]构建顶点数组:

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,
});





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值