APP下载

单视点生成体视图的方法研究

2010-07-07王晨升刘晓杰

图学学报 2010年4期
关键词:投影图视点视图

王 飞, 王晨升, 刘晓杰

(1.北京邮电大学,北京 100876;

2.长春大学机械工程学院,吉林 长春 130022)

与传统的单视点透视投影图不同,物体体视图的绘制需要同时创建相当于观察者左右眼所看到的透视投影图。通过左右眼透视投影图的差异—两眼视差,进而在观察者头脑中形成立体映像。手工绘制体视图无疑是很困难的[1],因此多以CAD软件为工具进行绘制。常用的三维CAD软件只支持单视点透视投影图的绘制,不能直接用于体视图的创建。

AutoCAD是一款具有悠久历史的 CAD软件,拥有众多的用户,并且还在不断进步,目前已经推出了AutoCAD 2009版本。AutoCAD的二维绘图功能具有目前的三维CAD软件所不能比拟的优势,而且其三维功能也越来越强大。尽管被认为基于过时了的设计观念,以AutoCAD软件进行三维设计的用户也不多,但AutoCAD具有的灵活的创建物体透视图的功能却为体视图绘制创造了条件。一个可能的办法是用AutoCAD定义透视图的命令 Dview设置参数分两次创建对应于左右眼的透视图[2]。考虑到Dview的相机参数、目标、距离和点间相互关联,不能锁定,无法为三维模型在创建右视点的透视图后,再准确地创建对应于左视点的透视图,因此需要采用AutoCAD软件的二次开发技术来为AutoCAD补充创建体视图的功能。

在用AutoCAD进行三维建模的基础上,一般有两种方法进行二次开发为模型创建体视图,一是专门设置两个视点(即左、右视点)形成体视图[3];另一种是只为 AutoCAD补充错切功能[4],并利用Dview命令来生成体视图,即利用单视点透视原理来创建体视图。显然后一种方法比较方便,作者研究的就是这一种。

1 体视投影的原理

体视图是分别将观察者的两眼各看作一个视点,生成具有一定视差的两幅透视图,称为体视图对。对应于左眼的透视图称为左投影,对应于右眼的透视图称为右投影。在观察体视图时,如能保证左眼只能看到左投影,右眼只能看到右投影,则可使体视图对在观察者头脑中融合成一个三维图形,形成立体映像。当投影面为平面时,按投影面位置可分为H面(水平面)体视图(图1)和 V面(正立面)体视图(图2)两种。在观察H面体视图时,体视图对从水平面上跃然而起,立在空间;在观察V面体视图时,根据物体相对画面的位置可以伸向画面的远方或观察者与画面之间,从而形成强烈的深度感。一般在计算机屏幕上形成的多是V面体视图。对观察者来说,当物体在画面前面,则形成的立体映像伸出屏幕,如物体在画面后面,则形成的体视映像在屏幕后方。前者称为交叉视,后者称为同侧视。

图1 H面体视图

图2 V面体视图

2 体视投影的变换矩阵

当投影面为VP面时,体视观察空间是以左视点SL、右视点SR为锥顶,棱线过窗口VB角点的两个半无限四棱锥的公共部分。为便于裁剪,在前后各设置一个平面(FP和 BP),经过观察方向变换[4]成为如图3所示的形状。

根据透视投影的变换矩阵可导出体视投影变换矩阵。以视点坐标系(右手系)原点O(在体视学中叫做中央眼)为视点的透视变换矩阵为

图3 体视观察空间

式中 d为视距。如图2所示,设左视点为 SL(-B/2,0,0),右视点为 SR(B/2,0,0),SLSR称为眼基线,SLSR平行于画面,SLSR=B,B称为目距,约为65mm。则左、右视点的体视变换矩阵分别为

设空间一点的坐标为(x,y,z),则其左、右投影分别为

显然,左、右视点y和z坐标分别相等,所不同的只是x坐标,而

其中 kB称为图对间隔位似系数,如图2所示。上式说明,左、右投影间距不是一个常数,而是与物体各顶点的z坐标有关。 由图2还可以看出,这时z坐标应小于0。

3 由右视点得到左投影

人们的习惯眼一般是右眼,下面讨论由右视点得到左投影的方法。假设

显然,Tx为错切和平移的变换矩阵。设经过Tx变换的坐标分别用x′,y ′,z′表示,则

以上的推导过程表明,为了用右视点得到左投影,先让物体C沿x轴关于z错切Bz/d使物体产生错切变形得C1,再将C1沿x轴平移B,最后以右视点为视点对 C1进行透视变换,即可得到C的左投影,如图4所示。显然,这种方法可以由单视点计算得到多视点体视图。

图4 由右视点获得左投影的方法

4 射影几何的证明

讨论的解析过程和体视结构符合空间三透射定理[5]。由图4看出,C的左投影与C构成透射对应 TL,中心为左视点 SL,轴平面为 V;因C1是C沿x轴错切和平移得到的,故轴平面也是V,其中心为x轴的非固有点S∞,因此 C与 C1构成透视仿射对应P。右视点SR也取在x轴上,根据空间三透射定理,左投影与 C1也构成透射对应TR,轴平面也为V。综上所述,SL与SR、S∞三中心共线,P、TL和TR具有公共的轴平面V,这就在几何上证明了由右视点得到物体左投影方法的正确性。

5 验 证

在AutoCAD中,对上述结论进行了验证。由于 AutoCAD软件没有错切功能,利用三维CAD软件的开发工具,为软件增加了错切功能[3]。具体步骤如下:先在模型空间建立一个三维模型,然后对模型的副本进行错切和平移,如图5所示;最后启动Dview命令,分别设置目标点和视点—相机(B/2,0,0)、观察方向(Camara)、视距d(Distance),就得到了模型的体视投影图,如图6所示。通过用补色眼镜观察,立体效果良好。这样就使得创建体视图的方法几乎和透视图一样容易。

图5 错切和平移后的模型

需要指出的是:有的软件不能对视点进行设置(如Autodesk Inventor等),那么仅用上述方法就不能生成体视图,需要用二次开发工具对视点进行设置,采用上述的第一种方法。

6 结 论

体视映像在计算机立体视觉、虚拟现实等领域中有广阔的应用前景。本文提出的基于第一视点(右视点)通过错切、平移等仿射变换得到计算体视像第二个投影(左投影)的方法,简单、易行,并已经在AutoCAD软件中得到了实现和验证,效果良好。

本文所提出的算法形成的体视图的立体景深取决于左右投影的水平视差,根据式(4)和式(5)可得任意两点A、B的水平视差

由上式看出,d值越大,左右投影的水平视差越大,所形成立体映像的景深就越大;反之,立体景深就越小。需要注意的是当d值小于一定的阈值时,有可能导致融像失败。

对于三维CAD软件系统,本文所提出的算法依然适用,此时只需按本文计算公式中的要求设置第二视点(左视点),并获取左投影即可。

[1]董国耀. 透视和体视[M]. 北京: 北京理工大学出版社, 1992. 218-220.

[2]张培忠, 王 慧. 利用AutoCAD软件绘制体视图的方法[J]. 山东建材学院学报, 1998, 12(3): 271-274.

[3]王 飞, 董国耀. 标准图形系统中体视变换矩阵的推导[J]. 北京邮电大学学报, 1995, 18(1): 16-24.

[4]于春晖, 王 飞. 为三维软件增加错切功能[J]. 计算机与现代化, 2005, 122(10): 51-54.

[5]叶玉驹, 简召全. 高等画法几何[M]. 北京: 国防工业出版社, 1990. 95.

猜你喜欢

投影图视点视图
基于分裂状态的规范伪括号多项式计算方法
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
视点
图解荒料率测试投影图及制作方法
虚拟链环的Kauffman尖括号多项式的Maple计算
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点