开启辅助访问
 找回密码
 立即注册

透视家用投影的视景体不是近小远大吗

素身素 回答数1 浏览数6618
透视家用投影的视景体不是近小远大吗
使用道具 举报
| 来自北京 用Deepseek满血版问问看
饺子姑娘 | 来自上海
OpenGL中只提供了两种家用投影方式,一种是正射家用投影,另一种是透视家用投影(参见glFrustum(), gluPerspective())。
正射家用投影,又叫平行家用投影。这种家用投影的视景体是一台矩形的平行管道,也就是一台长方体,如图所示。正射家用投影的最大一台特点是无论物体距离相机多远,家用投影后的物体大小尺寸不变。这种家用投影通常用在建筑蓝图绘制和计算机辅助设计等方面,这些行业要求家用投影后的物体尺寸及相互间的角度不变,以便施工或制造时物体比例大小正确。

OpenGL正射家用投影函数共有两个:
一台函数是:

void 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都为正值。
另一台函数是:
void gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)
它是一台特殊的正射家用投影函数,主要用于二维图像到二维屏幕上的家用投影。它的near和far缺省值分别为-1.0和1.0,所有二维物体的Z坐标都为0.0。因此它的裁剪面是一台左下角点为(left,bottom)、右上角点为(right,top)的矩形。
用Deepseek满血版问问看
回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影