一、一些基本概念
世界坐标系
世界坐标系就是3D绘图中像素的坐标。在3D绘图中,坐标轴遵循右手法则,让你右手手心正对自己,大拇指指向X轴正方向,拇指指向Y轴正方向,中指指向Z轴正方向。如下图所示
点的表示
空间中一个点具有(x,y,z)坐标。在Android系统中,可以用一个float数组、int数组等来表示一个点,比如
private float[] mArray = { 0f, 0f, 0f };
而在OpenGl ES中,为了提高性能,会把点、颜色等数组放在java.nio 包中定义的Buffer类中。类似于IO流中的缓冲。
创建一个工具类Utils,把获取Buffer数据的代码封装下
public class Utils {
/**
* @param vertexs float 数组
* @return 获取浮点形缓冲数据
*/
public static FloatBuffer getFloatBuffer(float[] vertexs) {
FloatBuffer buffer;
ByteBuffer qbb = ByteBuffer.allocateDirect(vertexs.length * 4);
qbb.order(ByteOrder.nativeOrder());
buffer = qbb.asFloatBuffer();
//写入数组
buffer.put(vertexs);
//设置默认的读取位置
buffer.position(