回 帖 发 新 帖 刷新版面

主题:OpenGL投影变换问题???(牛仔请进!)

[size=3][size=2]三维空间中的一点(X,Y,Z)经过模型视图变换和投影变换(采用透视投影)得到的是什么?
也就是说(u,v,w,1)[b]T[/b]=PM(X,Y,Z,1)[b]T[/b],
注:(u,v,w,1)[b]T[/b]表示(u,v,w,1)的转置,(X,Y,Z,1)[b]T[/b]表示(X,Y,Z,1)的转置。
M是OpenGL中的模型视图矩阵,P是OpenGL中的投影矩阵,
那么u,v,w分别表示什么?各自的取值范围是多少?


另外,什么事Projection Plane?OpenGL中如何指定Projection Plane呢?

谢谢您的解答![/size][/size]

回复列表 (共1个回复)

沙发

(u,v,w,1)T=PM(X,Y,Z,1)T
实际的意思就是你指定的坐标(X,Y,Z,1)通过两个矩阵的变换,得到一个新的坐标(u,v,w,1)。其中X, Y, Z, u, v, w的取值都是任意的实数。
(X,Y,Z,1)是在整个世界中的绝对坐标值(通过glVertex3f之类的函数指定的坐标值),称为“世界坐标”。(u,v,w,1)称为“视觉坐标”,一般可以简单的理解为“在观察者看来,物体所在的坐标值”。

Projection Plane,投影平面。它是通过模型视图变换、投影变换这两个变换矩阵计算得到的,因此不需要单独去指定。这个“投影平面”的具体定义我也不是太清楚,好像就是一个与观察方向相垂直的平面。网上搜索,有人说这个平面基本上就是近剪裁平面,暂时也没有发现这个说法有什么问题。对于正投影,跟透视投影有些不同,但都是有“投影平面”的概念的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册