博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenGL 自制API 4
阅读量:7040 次
发布时间:2019-06-28

本文共 875 字,大约阅读时间需要 2 分钟。

1、  由于模型和视图的变换都通过矩阵运算来实现,在进行变换前,应先设置当前操作的矩阵为“模型视图矩阵”。设置的方法是以GL_MODELVIEW为参数调用glMatrixMode函数,像这样:

    glMatrixMode(GL_MODELVIEW);

2、通常,我们需要在进行变换前把当前矩阵设置为单位矩阵。这也只需要一行代码:

    glLoadIdentity();

3、glTranslate*,把当前矩阵和一个表示移动物体的矩阵相乘。三个参数分别表示了在三个坐标上的位移值。

4、glRotate*,把当前矩阵和一个表示旋转物体的矩阵相乘。物体将绕着(0,0,0)到(x,y,z)的直线以逆时针旋转,参数angle表示旋转的角度。

5、glScale*,把当前矩阵和一个表示缩放物体的矩阵相乘。x,y,z分别表示在该方向上的缩放比例。

6、gluLookAt ,如果要改变观察点的位置,除了配合使用glRotate*和glTranslate*函数以外,还可以使用这个函数:gluLookAt。它的参数比较多,前三个参数表示了观察点的位置,中间三个参数表示了观察目标的位置,最后三个参数代表从(0,0,0)到(x,y,z)的直线,它表示了观察者认为的“上”方向。

7、投影变换就是定义一个可视空间,可视空间以外的物体不会被绘制到屏幕上。(注意,从现在起,坐标可以不再是-1.0到1.0了!)

    OpenGL支持两种类型的投影变换,即透视投影和正投影。投影也是使用矩阵来实现的。如果需要操作投影矩阵,需要以GL_PROJECTION为参数调用glMatrixMode函数。
    glMatrixMode(GL_PROJECTION);
    通常,我们需要在进行变换前把当前矩阵设置为单位矩阵。
    glLoadIdentity();

8、使用glViewport来定义视口。其中前两个参数定义了视口的左下脚(0,0表示最左下方),后两个参数分别是宽度和高度。

转载于:https://www.cnblogs.com/biubiubiubiu/p/4333432.html

你可能感兴趣的文章
nfs failed, reason given by server: Permission denied的离奇解决
查看>>
2018 1.21测试
查看>>
DFS与BFS对比
查看>>
dedeCMS php语法在模版中的应用
查看>>
sublime 安装ctag 实现函数跳转
查看>>
sshd问题:A protocol error occurred. Change of username or service not allowed
查看>>
jQuery开发者眼中的AngularJS
查看>>
【DAY9】 关于多线程熊吃蜜Demo1的作业实验
查看>>
Python实现多属性排序
查看>>
nginx 访问日志分析
查看>>
RabbitMQ之消息确认机制(事务+Confirm)
查看>>
给出一个数组,计算数组中少了哪个数据的实现
查看>>
USB-232卡 配置
查看>>
C#窗体程序皮肤设置
查看>>
T-SQL.字符串函数
查看>>
mysql慢查询
查看>>
offices文件打开乱码问题如何处理
查看>>
抓屏程序
查看>>
many-to-many出现的问题
查看>>
第5章 配置邮箱服务
查看>>