位置: 编程技术 - 正文
推荐整理分享4.3 投影变换(投影变换的使用方法),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:投影变换的三种方法,投影变换包括哪几种投影方式,投影变换原理,投影变换是什么,投影变换是什么,投影变换的使用方法,投影的变换,投影变换的使用方法,内容如对您有帮助,希望把文章链接给更多的朋友!
投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的有关部分。
投影也是使用矩阵来实现的。计算一个用于实现透视投影或者平行投影的矩阵,并把它与当前的投影矩阵(一般是单位矩阵)相乘。
OpenGL支持两种类型的投影变换,即透视投影和正投影。
一、透视投影 透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。
它的视景体类似于一个顶部和底部都被切除掉的棱椎,也就是棱台。
这个投影通常用于动画、视觉仿真以及其它许多具有真实性反映的方面。
此种情况下,需要用gluLookAt设定照相机位置、照相机方向(一般设置为(0,1,0))、以及视点位置。
1. void glFrustum(GLdouble left, GLdouble Right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
eft,right指明相对于垂直平面的左右坐标位置 bottom,top指明相对于水平剪切面的下上位置 nearVal,farVal指明相对于深度剪切面的远近的距离,两个必须为正数
2. void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear, GLdouble zFar);
fovy指定视景体的视野的角度,以度数为单位,y轴的上下方向。范围是[0.0, .0]。 aspect指定你的视景体的宽高比(x 平面上) zNear指定观察者到视景体的最近的裁剪面的距离(必须为正数) zFar与上面的参数相反,这个指定观察者到视景体的最远的裁剪面的距离(必须为正数)
二、平行投影 正射投影,又叫平行投影。这种投影的视景体是一个矩形的平行管道,也就是一个长方体,正射投影的最大一个特点是无论物体距离相机多远,投影后的物体大小尺寸不变。
它适用于2D图形,如文本、建筑绘图等。在它的应用场合,我们希望在屏幕上展示准确的物体大小和度量。
此种模式下,不需要设定照相机位置、方向以及视点的位置,也就是说不需要gluLookAt函数。
1. glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)
其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是(left,bottom,-near),右上角点是(right,top,-near);远裁剪平面也是一个矩形,左下角点空间坐标是(left,bottom,-far),右上角点是(right,top,-far)。 所有的near和far值同时为正或同时为负, 值不能相同。如果没有其他变换,正射投影的方向平行于Z轴,且视点朝向Z负轴。这意味着物体在视点前面时far和near都为负值,物体在视点后面时far和near都为正值。 只有在视景体里的物体才能显示出来。
2. void gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)
它是一个特殊的正射投影函数,主要用于二维图像到二维屏幕上的投影。它的near和far缺省值分别为-1.0和1.0,所有二维物体的Z坐标都为0.0。因此它的裁剪面是一个左下角点为(left,bottom)、右上角点为(right,top)的矩形。
shader之旅-7-平面阴影(planar shadow) 根据《real-timeshadow》这本书第二章中的推导,实现了最简单的阴影技术。planarshadow通过一个投影矩阵将被灯光照射的物体的顶点沿着光线方向投影到接
OpenGL三角形的双面不同颜色的绘制 对于一个三角形,我要给它正反面不同的颜色。然后通过旋转,看出它的效果。我只想到了2种方法,下面我来写一下这两种方法。第一种方法,通过角
5.2光源 在OpenGL中,仅仅支持有限数量的光源。使用GL_LIGHT0表示第0号光源,GL_LIGHT1表示第1号光源,依次类推.OpenGL至少会支持8个光源,即GL_LIGHT0到GL_LIGHT7。使用g
标签: 投影变换的使用方法
本文链接地址:https://www.jiuchutong.com/biancheng/369452.html 转载请保留说明!上一篇:OpenGL 矩阵变换(讲的太好了~!)(opengl 旋转矩阵)
下一篇:shader之旅-7-平面阴影(planar shadow)(shader cull)
友情链接: 武汉网站建设