glOrtho,gluOrtho2D,glFrustum,glViewport解释说明
glOrtho
glOrtho函数生成矩阵与当前矩阵相乘
void glOrtho(
GLdoubleleft,
GLdoubleright,
GLdoublebottom,
GLdoubletop,
GLdoublezNear,
GLdoublezFar
);
参数
left, right
剪接面左右纵面坐标。
bottom, top
剪接面上下水平面坐标
zNear, zFar
剪接面近处和远处深度距离。他们的距离为负数,平面将落于视图的后面
说明
glOrtho函数描述投影矩阵 (左,下,近)和(左,上,近)参数分别表示近平面,即窗口下左和上右的角点。假定眼睛的位置为(0, 0, 0)。那么远平面距离参数表示远剪切面的位置。近平面和远平面参数可以是任何的正数或者负数。相应矩阵为:
其中:
当前矩阵乘以这个矩阵得到结果代替当前矩阵。如:如果当前矩阵为M,Ortho矩阵为O,那么M被M*O代替。
使用glPushMatrix和glPopMatrix 保存和恢复当前矩阵堆。使用glMatrixMode设置当前矩阵。
下面函数获取描述glOrtho的信息:
glGet withargument GL_MATRIX_MODE
glGet with argumentGL_MODELVIEW_MATRIX
glGet with argumentGL_PROJECTION_MATRIX
glGet with argumentGL_TEXTURE_MATRIX
gluOrtho2D
gluOrtho2D函数定义了一个二维正交投影矩阵
void gluOrtho2D(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top
);
参数
left, right
剪接面左右纵面坐标。
bottom, top
剪接面上下水平面坐标
说明
The gluOrtho2D 函数设置的二维正交投影范围,这是相当于调用了 near = 1 和far = 1的glOrtho
glFrustum
glFrustum函数,生成投影矩阵与当前矩阵相乘
void glFrustum(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble znear,
GLdouble zfar
);
参数
参数
left, right
剪接面左右纵面坐标。
bottom, top
剪接面上下水平面坐标
zNear, zFar
剪接面近处和远处深度距离。他们的距离为负数,平面将落于视图的后面
说明
glFrustum函数描述投影矩阵 (左,下,近)和(左,上,近)参数分别表示近平面,即窗口下左和上右的角点。假定眼睛的位置为(0, 0, 0)。那么远平面距离参数表示远剪切面的位置。近平面和远平面参数必须是正数。相应矩阵为:
glFrustum函数相乘当前矩阵得到的结果,代替当前矩阵。如果M是当前矩阵,F是frustum投影矩阵,那么glFrustum将使M = M·F。
使用glPushMatrix 和 glPopMatrix保存和恢复当前矩阵。
深度缓存精度受znear和zfar的影响。zfar和znear的比率越大,生成两个面的深度差别越大。如果:
roughly log (2) r bits of depth buffer precision arelost. Because r approaches infinity as znear approaches zero, youshould never set znear to zero.(这个地方没搞懂,请高人指点,哈哈哈哈)
关于glFrustum的相关信息通过下面函数获取:
glGet with argument GL_MATRIX_MODE
glGetwith argument GL_MODELVIEW_MATRIX
glGetwith argument GL_PROJECTION_MATRIX
glGetwith argument GL_TEXTURE_MATRIX
glViewport
glViewport函数设置视口
void glViewport(
GLintx,
GLinty,
GLsizei width,
GLsizei height
);
参数
x, y
视口矩形的左下角位置,像素为单位。默认为(0,0).
width, height
分别表示视口的宽度和高度。当OpenGL设备首先连接到窗口,width 和height为窗口尺寸。
说明
glViewport函数指明x和y有规范的设备坐标到窗口坐标的仿射变换。设(xnd,ynd)是规范的设备坐标。窗口坐标为(xw,yw),那么计算如下:
视口的宽度和高度是在执行过程中是不变的。这个范围可以调用glGet和参数GL_MAX_VIEWPORT_DIMS获得。
下面函数获取glViewport相关信息:
glGet with argument GL_VIEWPORT
glGetwith argument GL_MAX_VIEWPORT_DIMS
glOrtho,gluOrtho2D,glFrustum,glViewport解释说明相关推荐
- OpenGL中投影函数glOrtho()、glFrustum()以及gluPerspective()以及函数的用法
OpenGL中,如果想对模型进行操作,就要对这个模型的状态(当前的矩阵)乘上这个操作对应的一个矩阵. 如果乘以变换矩阵(平移, 缩放, 旋转), 那相乘之后, 模型的位置被变换; 如果乘以投影矩阵(将 ...
- glOrtho、glFrustum glPerspective
glOrtho :正交投影,摄像机可以位于裁剪体内,所以near和far可以取两个正值或者一正一负 glFrustum :透视投影,摄像机不可以位于裁剪体内,所以near和fa ...
- OpenGL中gluOrtho2D、glViewport、glutInitWindowSize区别与关系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/HouraisanF/article/d ...
- 【概念理解】gluOrtho2D和glViewport的作用窗口与显示的关系
窗口与显示主要与三个量有关:世界坐标,窗口大小和视口大小.围绕这些量共有4个函数: glutInitWindowPosition(int x, int y)//定义窗口位置glViewport(int ...
- 万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
作者 | 天元浪子 来源 | CSDN博文精选 [编者按]OpenGL(开放式图形库),用于渲染 2D.3D 矢量图形的跨语言.跨平台的应用程序编程接口,C.C++.Python.Java等语言都能支 ...
- 转贴: OpenGL开发库的组成
OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...
- [转]OpenGL库介绍
原帖地址:http://blog.csdn.net/yyyuhan/archive/2008/01/15/2045009.aspx 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采 ...
- OpenGL 库 简介
OpenGL 库 简介 OpenGL库函数的命名方式为:<库前缀><根命令><可选的参数个数><可选的参数类型>. 库前缀有gl.glu.aux.glu ...
- OpenGL开发库的详细介绍
OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...
最新文章
- [spring-boot] 多环境配置
- python中的 2%s何意_python中的%s%是什么意思
- 代换-置换网络(SP网络)
- 非寻常实习记Ⅱ:改变中的快乐成长
- 问题跟踪软件URTracker和Windows域的集成
- memsql 多节点部署
- libpython3.7m so静态库_libpython3.7m.dll
- 图像分割(二):高斯混合模型(GMM)方法
- 最新数据:微博Q1季度数据分析报告来了!
- Ubuntu 朗文不发音问题
- ETF操作实战记录:2022-2-24
- python web py入门-1-web.py简介和安装
- 怎么打包python环境_python环境搭建和打包
- 【编程语言】品诺试题
- 中国房价下跌序幕刚刚拉开
- 输入10个数字,然后逆序输出。
- Vue项目History模式404问题解决
- Top-Down!!!
- 要成为海贼王的HONOR
- 使用 Nextcloud 搭建私人云盘,并利用内网穿透实现公网远程访问
热门文章
- 【Latex学习】在生成pdf中加入书签/目录/提纲
- opencv膨胀腐蚀
- C/C++编程:linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)
- 最大公约数的四种方法
- 2月份隐私计算、联邦学习的市场概览
- python plot 图像大小_设置matplotlib图像的figsize和dpi
- 利用POI操作不同版本号word文档中的图片以及创建word文档
- java-php-python-ssm智慧书籍的网站计算机毕业设计
- Android课堂内容①
- 什么是浮动,如何应用浮动