android 中opengl画正方体,其顶底坐标还有索引是怎么计算和定义的
1个回答
展开全部
opengl es画图形都是通过三角形来画的,当然还可以画直线和点
画图形的时候有两种方法:glDrawArrays( ) 和glDrawElements( )
比如画一个由2个三角形组成的正方形,左上角坐标是l,t,右下角坐标是r,b
使用glDrawArrays绘制时,画2个三角形,需要这样传:
(l,t),(r,t),(l,b)
(r,t),(r,b),(l,b)
也就是说传的顶点数据就是按照顺时针或者逆时针排好顺序的,两个三角形的6个顶点
而用glDrawElements画的话可以这样
float coord[4][2]={{l,t},{r,t},{r,b},{l,b}};
绘制时用索引指定顶点顺序:
0,1,3
1,2,3
也就是说glDrawArrays传输或指定的数据是最终的真实数据,在绘制时效能更好
而glDrawElements指定的是真实数据的调用索引,在内存/显存占用上更节省
画图形的时候有两种方法:glDrawArrays( ) 和glDrawElements( )
比如画一个由2个三角形组成的正方形,左上角坐标是l,t,右下角坐标是r,b
使用glDrawArrays绘制时,画2个三角形,需要这样传:
(l,t),(r,t),(l,b)
(r,t),(r,b),(l,b)
也就是说传的顶点数据就是按照顺时针或者逆时针排好顺序的,两个三角形的6个顶点
而用glDrawElements画的话可以这样
float coord[4][2]={{l,t},{r,t},{r,b},{l,b}};
绘制时用索引指定顶点顺序:
0,1,3
1,2,3
也就是说glDrawArrays传输或指定的数据是最终的真实数据,在绘制时效能更好
而glDrawElements指定的是真实数据的调用索引,在内存/显存占用上更节省
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询