OpenGl 投影矩阵 相机位置 方法参数说明

//设置透视投影
Matrix.frustumM(mProjectMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
//设置相机位置
Matrix.setLookAtM(mViewMatrix, 0, 0, 0, 5f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

说明:相机位置 参照世界坐标系 eyeZ     平截面 以相机位置为原点
//物体默认为 x,y,z 世界坐标系右手规则  

  (0.0,5)

如下正方体 

final float cubePositions[] = {
        -1.0f,1.0f,1.0f,    //正面左上0
        -1.0f,-1.0f,1.0f,   //正面左下1
        1.0f,-1.0f,1.0f,    //正面右下2
        1.0f,1.0f,1.0f,     //正面右上3
        -1.0f,1.0f,-1.0f,    //反面左上4
        -1.0f,-1.0f,-1.0f,   //反面左下5
        1.0f,-1.0f,-1.0f,    //反面右下6
        1.0f,1.0f,-1.0f,     //反面右上7
};
final short index[]={
        6,7,4,6,4,5,    //后面
        6,3,7,6,2,3,    //右面
        6,5,1,6,1,2,    //下面
        0,3,2,0,2,1,    //正面
        0,1,5,0,5,4,    //左面
        0,7,3,0,4,7,    //上面
};

float color[] = {
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
};

Matrix.frustumM(mProjectMatrix, 0, -ratio, ratio, -1, 1, 3, 20);

//设置相机位置  正面 x 右偏 0.1 y上方 2.0
Matrix.setLookAtM(mViewMatrix, 0, 0.1f, 2.0f, 10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

//设置相机位置 正面 x 右偏 0.1 y上方 6.0

Matrix.setLookAtM(mViewMatrix, 0, 0.1f, 6.0f, 10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

从背面看

Matrix.setLookAtM(mViewMatrix, 0, 0.5f, 6.0f, -10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

 

Matrix.setLookAtM(mViewMatrix, 0, -0.5f, 6.0f, -10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值