您的位置:首页 > 运维架构

关于OpenGL ES 2.0中 相机视觉,也就是Matrix.setLookAtM()参数的详细解说

2014-07-21 12:43 309 查看
关于OpenGL ES 2.0中 相机视觉
Matrix.setLookAtM()参数的详细解说
Matrix.setLookAtM(Triangle.mVMatrix, 0,
cx,cy,cz,//摄像机坐标
tx,ty,tz,//目标坐标
upx,upy,upz);//UP角度


1.由上述方法可知。。。定义相机的视角由9个参数决定,分为3大类

坐标系图





第一类 相机的坐标 cx,cy,cz
就是照相机在上图坐标系的位置

第二类 目标的位置 tx,ty,tz
就是图标在上图的位置(注意:9个数据是存在同一个空间坐标之中的)

第三类 相机的视觉向量 upx,upy,upz
也就是相机的方向。。。。。。这个需要大家理解一个知识。。叫做向量
向量。。就是有方向的量。。。。它有三个属性。。第一个就是起始点。。第二个方向。。
第三个就是量


就这里而言,起始点就是照相机,方向,,是由upx,upy,upz三个数据分别指向3个方向,,然后
合成所形成的方向


理解起来比较复杂。。那我们看图




总的来说,由三部分决定相机的视觉




相机的向量很容易理解。。。。例如。。。
1.相机就在Z轴上也就是,坐标0,0,3
2.目标就是远点,坐标0,0,0
3,现在向量upy=1.其他为0,,其实就表示着,相机对着XY所形成平面,正对着Y轴(注意。。这时候。。其实是没有X轴的。。。其实所存在的。。。只有YZ坐标系,看的时候,注意排除X轴,不然容易混乱)
同样的,如果UPX=1,UPY=0,upz=0,那么。。就排除Y轴,在Z轴上看X轴,,

二者所看到的图像方向是不一样的。
好吧。。。我们再用图说话



第一种情况、、、向量为0,1,0
你看到的应该是N
第二种情况、、、向量为1,0,0
你看到的应该是Z

说了这么多。。其实还是应该拿事物自己比划一下,这样才能加深理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: