我正在使用 OpenGL ES 1.x 为 Android 开发一个小应用程序。没有 glBegin-glEnd 功能,因此必须为要绘制的对象定义顶点(以及颜色和 texcoord)数组,然后使用矩阵运算来移动、缩放和旋转它们。这适用于大型物体,这里没有什么可抱怨的......
但是,如果想要绘制小的“临时”对象(例如,只是从 A 点到 B 点的一条线),事情就会变得有点烦人。因此,我创建了一些小的实用功能,例如:
DrawHelper.drawLine(起点、终点)
我注意到有两种可能的方法来做到这一点。我的问题是首选这些版本中的哪一个?由于我们正在处理如此简单的辅助函数,并且这两种方法都简单易懂,因此最好从一开始就将它们写得尽可能好,即使潜在的速度增益非常低。所以请不要“先进行基准测试并确定瓶颈”.. =)
方法一:
绘图助手具有包含点 (0,0,0) 和 (1,0,0) 的 FloatBuffer。我每次都使用适当的模型视图矩阵绘制这条线,将两个点转换到所需的位置。
方法二:
绘图助手有一个虚拟的 FloatBuffer,我每次都使用 FloatBuffer.put 来输入新点。
方法 1 显然 (?) 更适合较大的对象,例如圆形或其他几何形状。简单的直线或简单的三角形怎么样?