关于android 中visibilityTest函数的使用(modeview和projection矩阵的获取)
2011-05-25 21:37
423 查看
献给和我一样迷茫地摸索在android开发的人。。
public static int VisibiliytTest (float[] ws, int wsOffset, float[] positions, int positionsOffset, char[] indices, int indicesOffset, int indexCount)
该函数主要用于测试三维空间中的某个三角形网格是否能被显示在屏幕上。
float []ws: 是三维空间到屏幕空间的转换矩阵。
一般的计算方法是用modelview matrix 乘 projection matrix。
文档上给出了两种方法取这两个矩阵,但是个人试过没成功。其实Api里面给出了第三种方法,就是使用MatrixStack类和MatrixTrackingGL类。用Api里的MatrixGrabber里面的方法常常会出现转型错误。
使用:
取出后用mModeview矩阵乘mProjection矩阵,就可以得到转换矩阵。
wsOffset : 矩阵偏移(?),标记ws数组的开始端。一般填0。
positions :点的集合。
positionsOffset :点的偏移,记录点集合里面的开始端,一般填0。
indices : 索引,是char类型的,所以一般用前要进行类型转换。
indicesOffset:索引的偏移,同上。
indexCount:使用的索引数,一般是3的倍数,如果不是3的倍数,则多余的一个或两个索引点将被忽略。(怎么感觉像是在抄文档。。。算了,重点在上面 n^o^lo)
public static int VisibiliytTest (float[] ws, int wsOffset, float[] positions, int positionsOffset, char[] indices, int indicesOffset, int indexCount)
该函数主要用于测试三维空间中的某个三角形网格是否能被显示在屏幕上。
float []ws: 是三维空间到屏幕空间的转换矩阵。
一般的计算方法是用modelview matrix 乘 projection matrix。
文档上给出了两种方法取这两个矩阵,但是个人试过没成功。其实Api里面给出了第三种方法,就是使用MatrixStack类和MatrixTrackingGL类。用Api里的MatrixGrabber里面的方法常常会出现转型错误。
使用:
mModelView = new float[16]; mProjection = new float[16]; gl=new MatrixTrackingGL(gl); MatrixTrackingGL gl2 = (MatrixTrackingGL) gl; //这两句放最开端,因为之后的glOrtho、GLULookAt等都要使用gl2这个对象而不是gl。 gl2.glMatrixMode(GL10.GL_MODELVIEW); gl2.getMatrix(mModeView, 0); gl2.glMatrixMode(GL10.GL_PROJECTION); gl2.getMatrix(mProjection, 0);
取出后用mModeview矩阵乘mProjection矩阵,就可以得到转换矩阵。
wsOffset : 矩阵偏移(?),标记ws数组的开始端。一般填0。
positions :点的集合。
positionsOffset :点的偏移,记录点集合里面的开始端,一般填0。
indices : 索引,是char类型的,所以一般用前要进行类型转换。
indicesOffset:索引的偏移,同上。
indexCount:使用的索引数,一般是3的倍数,如果不是3的倍数,则多余的一个或两个索引点将被忽略。(怎么感觉像是在抄文档。。。算了,重点在上面 n^o^lo)
相关文章推荐
- Delphi For Android 使用Posix函数获取网络信息(MAC, IP...)
- android 线程中的ui问题 Handler的基本使用 关于获取动态时间在ui的问题
- 关于Android开发中使用System.exit(0)的问题(如写返回键响应时用到双击退出函数的时候)
- Android关于ListView中使用EditText获取输入数据和刷新ListView数据的解决方案
- Android中使用AlertDialog,使用函数setButton()出现的关于“new OnClickListener"错误
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
- 关于Android使用proguard进行代码混淆
- 在Android中使用反射获取并修改private static final成员
- 关于使用setInterval()函数制作滚动越来越快的问题
- 仿91助手的PC与android手机通讯(5) --- 使用adb获取手机信息
- Android中关于Volley的使用(一)加载图片
- 关于Android中的另类同步问题 ----在有Handler的情况下去使用线程同步,waitDone
- Android获取应用程序信息——PackageManager的基本使用
- Android中的隐藏API和Internal包的使用之获取应用电量排行
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- android关于获取隐藏类的心得
- 获取Android系统memory的使用情况的脚本
- Android中关于日期时间与时区的使用总结