opengl矩阵移动

矩阵移动(目前原理不清楚)
glMatrixMode(GL_MODELVIEW); 设置当前操作的矩阵为“模型视图矩阵”
GL_PROJECTION是对投影矩阵操作,GL_MODELVIEW是对模型视景矩阵操作,GL_TEXTURE是对纹理矩阵进行随后的操作

translate函数 (位移函数)

translate()第一个参数传一个单位矩阵进来 第二个参数传一个要位移的向量进来 最终可以得到一个变换矩阵 最后用你自己的向量和这个变换矩阵相乘就可以得到最终的向量
比如 mat4 a; a = translate(a, vec3(1.0f, 1.0f, 0.0f)); vec = a * vec; 好像这样也行view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f));

rotate函数 (旋转函数)

rotate()第一个参数传一个单位矩阵进来 第二个参数传radians(90.0f) 这是一个将角度化为弧度制的函数 第三个参数传一个向量 就是你想绕哪个轴旋转
即其实这里的x,y,z值相当于一个布尔值,0.0表示假,而非零参数则表示真。
所以如果你想让当前的几何图形围绕着z轴旋转,那么x和y都设为0,而z设为非零值即可。
如果这里的x,y,z的值都设置为0.0,那么将围绕着x轴旋转
比如a = rotate(a, radians(90.0f), vec3(0.0, 0.0, 1.0));
如果设置的旋转值(x,y,z的值)为正数,那么旋转的方向是逆时针的,如果旋转值是负数,那么旋转的方向是顺时针的。

scale函数 (缩放函数)

a = scale(a, vec3(0.5, 0.5, 0.5));

glMatrixMode(GL_PROJECTION); 设置当前操作的矩阵为“投影视图矩阵”
glFrustum 函数可以将当前的可视空间设置为透视投影空间 将当前矩阵与一个透视矩阵相乘,把当前矩阵转变成透视矩阵
gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar) 函数 fovy的理解是 眼睛睁开的角度 当为0时就是闭上 180则视野很广(可能什么也看不见 因为看的范围太大 ) aspect 实际窗口的纵横比即x/y zNear表示近处裁面 zFar 表示远处的裁面
glLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz,) eye是眼睛在世界坐标系中的位置 center是眼睛看的那个点的坐标 up则表示我们头顶指向的方向
glViewport 来定义视口。其中前两个参数定义了视口的左下脚(0,0 表示最左下方),后两个 参数分别是宽度和高度。 也就是可以把图像只投影在一般屏幕的位置
正投影相当于在无限远处观察得到的结果,它只是一种理想状态。但对于计算机来说,使用正投影有可能 获得更好的运行速度(使用了glViewport()会变成正投影 不再是透视投影)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值