三维图形的二维平面表现方法

文档序号:6582040阅读:1606来源:国知局
专利名称:三维图形的二维平面表现方法
技术领域
本发明涉及三维绘图技术,尤其涉及三维图形的二维图形表现方法。
背景技术
3D是three-dimensional的缩写,就是三维图形。三维动画是近年来随着计算机 软硬件技术的发展而产生的一新兴技术。三维动画软件是在计算机中首先建立一个虚拟的 世界,在计算机里显示3d图形,就是说在平面里显示三维图形。它不像现实世界里,有真实 的三维空间,有真实的距离空间。设计师在这个虚拟的三维世界中按照要表现的对象的形 状尺寸建立模型以及场景,再根据要求设定模型的运动轨迹、虚拟摄影机的运动和其它动 画参数,最后按要求为模型赋上特定的材质,并打上灯光。当这一切完成后就可以让计算机 自动运算,生成最后的画面。计算机里只是看起来很像真实世界,因此在计算机显示的3d 图形,就是让人眼看上就像真的一样。这主要是因为显示在计算机屏幕上时色彩灰度的不 同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有 关知识,三维物体边缘的凸出部分一般显高亮度色,而凹下去的部分由于受光线的遮挡而 显暗色。三维动画技术模拟真实物体的方式使其成为一个有用的工具。由于其精确性、真 实性和无限的可操作性,目前被广泛应用于医学、教育、军事、娱乐等诸多领域。在影视广告 制作方面,这项新技术能够给人耳目一新的感觉,因此受到了众多客户的欢迎。同时,它的 发展也是永无止尽的,它将不断被运用到更多的领域中去。在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必 须以二维平面物体的形式表现出来。那么,如何来实现从三维到二维的变换是本发明关注 的重点。

发明内容
本发明揭示了一种三维图形的二维平面表现方法,包括视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标系,初 始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定 的坐标位置;模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标系,初 始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定 比例变换因子沿各个轴放大或者缩小模型;投影变换步骤,调用一个投影函数定义一个视景体,从视点处,基于视景体对模型 进行三维裁剪变换;视口变换步骤,基于视景体,将视景体内投影的模型显示在二维的视口平面上。根据一实施例,该投影变换步骤包括进行正射投影变换或者透视投影变换。采用本发明的技术方案,能够将三位的物体以二维的方式显示,并且具有3D的效^ ο


图1揭示了本发明的三维图形的二维平面表现方法的流程图。
具体实施例方式计算机本身只能处理数字,图形在计算机内也是以数字的形式进行加工和处理 的。坐标建立了图形和数字之间的联系。为了使被显示的物体数字化,要在被显示的物体 所在的空间中定义一个坐标系。这个坐标系的长度单位和坐标轴的方向要适合对被显示物 体的描述,这个坐标系称为世界坐标系。计算机对数字化的显示物体作了加工处理后,要在 图形显示器上显示,这就要在图形显示器屏幕上定义一个二维直角坐标系,这个坐标系称 为屏幕坐标系。这个坐标系坐标轴的方向通常取成平行于屏幕的边缘,坐标原点取在左下 角,长度单位常取成一个象素的长度,大小可以是整型数。为了使显示的物体能以合适的位 置、大小和方向显示出来,必须要通过投影。投影的方法有两种,即正射投影和透视投影。有 时为了突出图形的一部分,只把图形的某一部分显示出来,这时可以定义一个三维视景体 (Viewing Volume)。正射投影时一般是一个长方体的视景体,透视投影时一般是一个棱台 似的视景体。只有视景体内的物体能被投影在显示平面上,其他部分则不能。在屏幕窗口 内可以定义一个矩形,称为视口(Viewport),视景体投影后的图形就在视口内显示。参考图1所示,揭示了本发明的三维图形的二维平面表现方法,包括10.视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标 系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到 给定的坐标位置。视点变换是在视点坐标系中进行的。视点坐标系于一般的物体所在的 世界坐标系不同,它遵循左手法则,即左手大拇指指向Z正轴,与之垂直的四个手指指向X 正轴,四指弯曲90度的方向是Y正轴。而世界坐标系遵循右手法则的。在一个实施例中, 采用OpenGL实现3D绘图,则步骤10实现如下矩阵初始化glLoadldentity ()后,调用 glTranslatefO作视点变换。函数参数(x,y,ζ)表示视点或相机在视点坐标系中移动的 位置,若ζ = -5. 0,意思是将相机沿Z负轴移动5个单位。通常相机位置缺省值同场景中的 物体一样,都在原点处,而且相机初始方向都指向Z负轴。11.模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标 系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根 据给定比例变换因子沿各个轴放大或者缩小模型。模型变换是在世界坐标系中进行的。 同样以OpenGL为例,在这个世界坐标系中,可以对物体实施平移glTranslatef ()、旋转 glRotatefO和放大缩小glkalef ()。例子里只对物体进行比例变换,glScalef(sx, sy, sz)的三个参数分别是X、Y、Z轴向的比例变换因子。缺省时都为1.0,即物体没变化。程序 中物体Y轴比例为2. 0,其余都为1. 0,就是说将立方体变成长方体。12.投影变换步骤,调用一个投影函数定义一个视景体,从视点处,基于视景体对 模型进行三维裁剪变换。投影变换类似于选择相机的镜头。在一个实施例中,以OpenGL为 例,一般调用一个透视投影函数glFrustumO,在调用它之前先要用glMatrixMode ()说明 当前矩阵方式是投影GL_PR0JECTI0N。这个投影函数一共有六个参数,由它们可以定义一个棱台似的视景体。即视景体内的部分可见,视景体外的部分不可见,这也就包含了三维裁剪变换。投影变换是一种很关键的图形变换,以OpenGL为例,其中提供了两种投影方式, 一种是正射投影,另一种是透视投影。不管是调用哪种投影函数,为了避免不必要的变换, 其前面必须加上以下两句glMAtrixMode(GL_PR0JECTI0N);glLoadldentityO ;事实上,投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉, 最终图像只是视景体内的有关部分。正射投影(Orthographic Projection),又叫平行投影。这种投影的视景体是一个 矩形的平行管道,也就是一个长方体。正射投影的最大一个特点是无论物体距离相机多远, 投影后的物体大小尺寸不变。这种投影通常用在建筑蓝图绘制和计算机辅助设计等方面, 这些行业要求投影后的物体尺寸及相互间的角度不变,以便施工或制造时物体比例大小正确。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 glu0rtho2D(GLdouble left, GLdouble right,GLdouble bottom,GLdouble top)该函数是一个特殊的正射投影函数,主要用于二维图像到二维屏幕上的投影。它 的near和far缺省值分别为-1. O和1. 0,所有二维物体的Z坐标都为0. O。因此它的裁剪 面是一个左下角点为(left,bottom)、右上角点为(right,top)的矩形。13.视口变换步骤,基于视景体,将视景体内投影的模型显示在二维的视口平面 上。视口变换是指将经过几何变换、投影变换和裁剪变换后的物体显示于屏幕窗口内指定 的区域内,这个区域通常为矩形,称为视口。在OpenGL中,相关函数是glViewport(GLint χ, GLint y, GLsizei width, GLsizei height);这个函数定义一个视口。函数参数(x,y)是视口在屏幕窗口坐标系中的左下角点 坐标,参数width和height分别是视口的宽度和高度。缺省时,参数值即(0,0,winWidth, winHeight)指的是屏幕窗口的实际尺寸大小。所有这些值都是以象素为单位,全为整型数。 在实际应用中,视口的长宽比率总是等于视景体裁剪面的长宽比率。如果两个比率不相等, 那么投影后的图像显示于视口内时会发生变形。另外,屏幕窗口的改变一般不明显影响视口的大小。因此,在调用这个函数时,最好实时检测窗口尺寸,及时修正视口的大小,保证视 口内的图像能随窗口的变化而变化,且不变形。 采用本发明的技术方案,能够将三位的物体以二维的方式显示,并且具有3D的效果。
权利要求
1.一种三维图形的二维平面表现方法,其特征在于,包括视点变换步骤,在一视点坐标系中进行,所述视点坐标系是遵循左手法则的坐标系,初 始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定 的坐标位置;模型变换步骤,在一世界坐标系中进行,所述世界坐标系是遵循右手法则的坐标系,初 始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定 比例变换因子沿各个轴放大或者缩小所述模型;投影变换步骤,调用一个投影函数定义一个视景体,从所述视点处,基于所述视景体对 所述模型进行三维裁剪变换;视口变换步骤,基于所述视景体,将视景体内投影的所述模型显示在二维的视口平面上。
2.如权利要求1所述的三维图形的二维平面表现方法,其特征在于,所述投影变换步 骤包括进行正射投影变换或者透视投影变换。
全文摘要
本发明揭示了一种三维图形的二维平面表现方法,包括视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定的坐标位置;模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定比例变换因子沿各个轴放大或者缩小所述模型;投影变换步骤,调用一个投影函数定义一个视景体,从所述视点处,基于视景体对所述模型进行三维裁剪变换;视口变换步骤,基于所述视景体,将视景体内投影的所述模型显示在二维的视口平面上。
文档编号G06T13/00GK102044084SQ20091019755
公开日2011年5月4日 申请日期2009年10月22日 优先权日2009年10月22日
发明者吴钰娇 申请人:上海杉达学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1