CN102044084A - 三维图形的二维平面表现方法 - Google Patents
三维图形的二维平面表现方法 Download PDFInfo
- Publication number
- CN102044084A CN102044084A CN200910197553XA CN200910197553A CN102044084A CN 102044084 A CN102044084 A CN 102044084A CN 200910197553X A CN200910197553X A CN 200910197553XA CN 200910197553 A CN200910197553 A CN 200910197553A CN 102044084 A CN102044084 A CN 102044084A
- Authority
- CN
- China
- Prior art keywords
- model
- coordinate system
- dimensional
- transformation
- projection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明揭示了一种三维图形的二维平面表现方法,包括:视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定的坐标位置;模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定比例变换因子沿各个轴放大或者缩小所述模型;投影变换步骤,调用一个投影函数定义一个视景体,从所述视点处,基于视景体对所述模型进行三维裁剪变换;视口变换步骤,基于所述视景体,将视景体内投影的所述模型显示在二维的视口平面上。
Description
技术领域
本发明涉及三维绘图技术,尤其涉及三维图形的二维图形表现方法。
背景技术
3D是three-dimensional的缩写,就是三维图形。三维动画是近年来随着计算机软硬件技术的发展而产生的一新兴技术。三维动画软件是在计算机中首先建立一个虚拟的世界,在计算机里显示3d图形,就是说在平面里显示三维图形。它不像现实世界里,有真实的三维空间,有真实的距离空间。设计师在这个虚拟的三维世界中按照要表现的对象的形状尺寸建立模型以及场景,再根据要求设定模型的运动轨迹、虚拟摄影机的运动和其它动画参数,最后按要求为模型赋上特定的材质,并打上灯光。当这一切完成后就可以让计算机自动运算,生成最后的画面。计算机里只是看起来很像真实世界,因此在计算机显示的3d图形,就是让人眼看上就像真的一样。这主要是因为显示在计算机屏幕上时色彩灰度的不同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有关知识,三维物体边缘的凸出部分一般显高亮度色,而凹下去的部分由于受光线的遮挡而显暗色。
三维动画技术模拟真实物体的方式使其成为一个有用的工具。由于其精确性、真实性和无限的可操作性,目前被广泛应用于医学、教育、军事、娱乐等诸多领域。在影视广告制作方面,这项新技术能够给人耳目一新的感觉,因此受到了众多客户的欢迎。同时,它的发展也是永无止尽的,它将不断被运用到更多的领域中去。
在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必须以二维平面物体的形式表现出来。那么,如何来实现从三维到二维的变换是本发明关注的重点。
发明内容
本发明揭示了一种三维图形的二维平面表现方法,包括:
视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定的坐标位置;
模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定比例变换因子沿各个轴放大或者缩小模型;
投影变换步骤,调用一个投影函数定义一个视景体,从视点处,基于视景体对模型进行三维裁剪变换;
视口变换步骤,基于视景体,将视景体内投影的模型显示在二维的视口平面上。
根据一实施例,该投影变换步骤包括进行正射投影变换或者透视投影变换。
采用本发明的技术方案,能够将三位的物体以二维的方式显示,并且具有3D的效果。
附图说明
图1揭示了本发明的三维图形的二维平面表现方法的流程图。
具体实施方式
计算机本身只能处理数字,图形在计算机内也是以数字的形式进行加工和处理的。坐标建立了图形和数字之间的联系。为了使被显示的物体数字化,要在被显示的物体所在的空间中定义一个坐标系。这个坐标系的长度单位和坐标轴的方向要适合对被显示物体的描述,这个坐标系称为世界坐标系。计算机对数字化的显示物体作了加工处理后,要在图形显示器上显示,这就要在图形显示器屏幕上定义一个二维直角坐标系,这个坐标系称为屏幕坐标系。这个坐标系坐标轴的方向通常取成平行于屏幕的边缘,坐标原点取在左下角,长度单位常取成一个象素的长度,大小可以是整型数。为了使显示的物体能以合适的位置、大小和方向显示出来,必须要通过投影。投影的方法有两种,即正射投影和透视投影。有时为了突出图形的一部分,只把图形的某一部分显示出来,这时可以定义一个三维视景体(Viewing Volume)。正射投影时一般是一个长方体的视景体,透视投影时一般是一个棱台似的视景体。只有视景体内的物体能被投影在显示平面上,其他部分则不能。在屏幕窗口内可以定义一个矩形,称为视口(Viewport),视景体投影后的图形就在视口内显示。
参考图1所示,揭示了本发明的三维图形的二维平面表现方法,包括:
10.视点变换步骤,在一视点坐标系中进行,视点坐标系是遵循左手法则的坐标系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定的坐标位置。视点变换是在视点坐标系中进行的。视点坐标系于一般的物体所在的世界坐标系不同,它遵循左手法则,即左手大拇指指向Z正轴,与之垂直的四个手指指向X正轴,四指弯曲90度的方向是Y正轴。而世界坐标系遵循右手法则的。在一个实施例中,采用OpenGL实现3D绘图,则步骤10实现如下:矩阵初始化glLoadIdentity()后,调用glTranslatef()作视点变换。函数参数(x,y,z)表示视点或相机在视点坐标系中移动的位置,若z=-5.0,意思是将相机沿Z负轴移动5个单位。通常相机位置缺省值同场景中的物体一样,都在原点处,而且相机初始方向都指向Z负轴。
11.模型变换步骤,在一世界坐标系中进行,世界坐标系是遵循右手法则的坐标系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定比例变换因子沿各个轴放大或者缩小模型。模型变换是在世界坐标系中进行的。同样以OpenGL为例,在这个世界坐标系中,可以对物体实施平移glTranslatef()、旋转glRotatef()和放大缩小glScalef()。例子里只对物体进行比例变换,glScalef(sx,sy,sz)的三个参数分别是X、Y、Z轴向的比例变换因子。缺省时都为1.0,即物体没变化。程序中物体Y轴比例为2.0,其余都为1.0,就是说将立方体变成长方体。
12.投影变换步骤,调用一个投影函数定义一个视景体,从视点处,基于视景体对模型进行三维裁剪变换。投影变换类似于选择相机的镜头。在一个实施例中,以OpenGL为例,一般调用一个透视投影函数glFrustum(),在调用它之前先要用glMatrixMode()说明当前矩阵方式是投影GL_PROJECTION。这个投影函数一共有六个参数,由它们可以定义一个棱台似的视景体。即视景体内的部分可见,视景体外的部分不可见,这也就包含了三维裁剪变换。
投影变换是一种很关键的图形变换,以OpenGL为例,其中提供了两种投影方式,一种是正射投影,另一种是透视投影。不管是调用哪种投影函数,为了避免不必要的变换,其前面必须加上以下两句:
glMAtrixMode(GL_PROJECTION);
glLoadIdentity();
事实上,投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终图像只是视景体内的有关部分。
正射投影(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 gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)
该函数是一个特殊的正射投影函数,主要用于二维图像到二维屏幕上的投影。它的near和far缺省值分别为-1.0和1.0,所有二维物体的Z坐标都为0.0。因此它的裁剪面是一个左下角点为(left,bottom)、右上角点为(right,top)的矩形。
13.视口变换步骤,基于视景体,将视景体内投影的模型显示在二维的视口平面上。视口变换是指将经过几何变换、投影变换和裁剪变换后的物体显示于屏幕窗口内指定的区域内,这个区域通常为矩形,称为视口。在OpenGL中,相关函数是:
glViewport(GLint x,GLint y,GLsizei width,GLsizei height);
这个函数定义一个视口。函数参数(x,y)是视口在屏幕窗口坐标系中的左下角点坐标,参数width和height分别是视口的宽度和高度。缺省时,参数值即(0,0,winWidth,winHeight)指的是屏幕窗口的实际尺寸大小。所有这些值都是以象素为单位,全为整型数。在实际应用中,视口的长宽比率总是等于视景体裁剪面的长宽比率。如果两个比率不相等,那么投影后的图像显示于视口内时会发生变形。另外,屏幕窗口的改变一般不明显影响视口的大小。因此,在调用这个函数时,最好实时检测窗口尺寸,及时修正视口的大小,保证视口内的图像能随窗口的变化而变化,且不变形。
采用本发明的技术方案,能够将三位的物体以二维的方式显示,并且具有3D的效果。
Claims (2)
1.一种三维图形的二维平面表现方法,其特征在于,包括:
视点变换步骤,在一视点坐标系中进行,所述视点坐标系是遵循左手法则的坐标系,初始的视点位于视点坐标系的原点,初始方向指向Z负轴,变换视点包括将视点移动到给定的坐标位置;
模型变换步骤,在一世界坐标系中进行,所述世界坐标系是遵循右手法则的坐标系,初始的模型位于世界坐标系的原点,变换模型包括将模型移动到给定的坐标位置并根据给定比例变换因子沿各个轴放大或者缩小所述模型;
投影变换步骤,调用一个投影函数定义一个视景体,从所述视点处,基于所述视景体对所述模型进行三维裁剪变换;
视口变换步骤,基于所述视景体,将视景体内投影的所述模型显示在二维的视口平面上。
2.如权利要求1所述的三维图形的二维平面表现方法,其特征在于,所述投影变换步骤包括进行正射投影变换或者透视投影变换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910197553XA CN102044084A (zh) | 2009-10-22 | 2009-10-22 | 三维图形的二维平面表现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910197553XA CN102044084A (zh) | 2009-10-22 | 2009-10-22 | 三维图形的二维平面表现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102044084A true CN102044084A (zh) | 2011-05-04 |
Family
ID=43910195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910197553XA Pending CN102044084A (zh) | 2009-10-22 | 2009-10-22 | 三维图形的二维平面表现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102044084A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436669A (zh) * | 2011-10-13 | 2012-05-02 | 中国民用航空总局第二研究所 | 二维矢量地图绘制方法 |
CN103093502A (zh) * | 2012-12-21 | 2013-05-08 | 广州中大电讯科技有限公司 | 一种基于旋转三视图的三维模型信息获取方法 |
CN104050689A (zh) * | 2014-06-10 | 2014-09-17 | 黄淮学院 | 一种虚拟场景中可视物体的二维裁剪生成方法 |
CN105096245A (zh) * | 2014-04-21 | 2015-11-25 | 澜起科技(上海)有限公司 | 一种处理2d图像的方法和装置 |
CN105915885A (zh) * | 2016-03-02 | 2016-08-31 | 优势拓展(北京)科技有限公司 | 鱼眼图像的3d交互显示方法和系统 |
CN107230239A (zh) * | 2017-05-11 | 2017-10-03 | 广州视源电子科技股份有限公司 | 图形绘制方法、装置及设备 |
CN108564523A (zh) * | 2018-04-12 | 2018-09-21 | 长沙景美集成电路设计有限公司 | Gpu中一种任意视口变换的实现方法 |
CN109636874A (zh) * | 2018-12-17 | 2019-04-16 | 浙江科澜信息技术有限公司 | 一种三维模型透视投影方法、系统及相关装置 |
CN111327886A (zh) * | 2020-03-05 | 2020-06-23 | 胡嘉君 | 3d光场渲染方法及装置 |
CN111553970A (zh) * | 2020-05-19 | 2020-08-18 | 北京数字绿土科技有限公司 | 一种基于服务端的点云实时测量方法 |
US11360636B2 (en) | 2016-11-22 | 2022-06-14 | Koninklijke Philips N.V. | Dynamic dimension switch for 3D content based on viewport resizing |
-
2009
- 2009-10-22 CN CN200910197553XA patent/CN102044084A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436669A (zh) * | 2011-10-13 | 2012-05-02 | 中国民用航空总局第二研究所 | 二维矢量地图绘制方法 |
CN103093502A (zh) * | 2012-12-21 | 2013-05-08 | 广州中大电讯科技有限公司 | 一种基于旋转三视图的三维模型信息获取方法 |
CN105096245B (zh) * | 2014-04-21 | 2018-05-04 | 上海澜至半导体有限公司 | 一种处理2d图像的方法和装置 |
CN105096245A (zh) * | 2014-04-21 | 2015-11-25 | 澜起科技(上海)有限公司 | 一种处理2d图像的方法和装置 |
CN104050689A (zh) * | 2014-06-10 | 2014-09-17 | 黄淮学院 | 一种虚拟场景中可视物体的二维裁剪生成方法 |
CN105915885A (zh) * | 2016-03-02 | 2016-08-31 | 优势拓展(北京)科技有限公司 | 鱼眼图像的3d交互显示方法和系统 |
US11360636B2 (en) | 2016-11-22 | 2022-06-14 | Koninklijke Philips N.V. | Dynamic dimension switch for 3D content based on viewport resizing |
CN107230239A (zh) * | 2017-05-11 | 2017-10-03 | 广州视源电子科技股份有限公司 | 图形绘制方法、装置及设备 |
CN108564523A (zh) * | 2018-04-12 | 2018-09-21 | 长沙景美集成电路设计有限公司 | Gpu中一种任意视口变换的实现方法 |
CN109636874A (zh) * | 2018-12-17 | 2019-04-16 | 浙江科澜信息技术有限公司 | 一种三维模型透视投影方法、系统及相关装置 |
CN109636874B (zh) * | 2018-12-17 | 2023-05-26 | 浙江科澜信息技术有限公司 | 一种三维模型透视投影方法、系统及相关装置 |
CN111327886A (zh) * | 2020-03-05 | 2020-06-23 | 胡嘉君 | 3d光场渲染方法及装置 |
CN111553970A (zh) * | 2020-05-19 | 2020-08-18 | 北京数字绿土科技有限公司 | 一种基于服务端的点云实时测量方法 |
CN111553970B (zh) * | 2020-05-19 | 2024-02-20 | 北京数字绿土科技股份有限公司 | 一种基于服务端的点云实时测量方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102044084A (zh) | 三维图形的二维平面表现方法 | |
EP3057066B1 (en) | Generation of three-dimensional imagery from a two-dimensional image using a depth map | |
Agrawala et al. | Artistic multiprojection rendering | |
US6226003B1 (en) | Method for rendering silhouette and true edges of 3-D line drawings with occlusion | |
JP4199663B2 (ja) | ヒューマン−コンピュータインターフェイスにおける視覚画像による触覚調整 | |
CN112509151A (zh) | 一种教学场景中虚拟对象的真实感生成方法 | |
EP0451875A2 (en) | Image displaying system | |
CN108230435B (zh) | 采用立方图纹理的图形处理 | |
CN109887030A (zh) | 基于cad稀疏模板的无纹理金属零件图像位姿检测方法 | |
CN102163340A (zh) | 计算机系统中实现三维动态几何图形数据信息标注的方法 | |
US20170061036A1 (en) | Modeling a three-dimensional object having multiple materials | |
WO2013185516A1 (zh) | 一种三维曲线的动画展示方法和装置 | |
US9754398B1 (en) | Animation curve reduction for mobile application user interface objects | |
US20120229463A1 (en) | 3d image visual effect processing method | |
CN108804061A (zh) | 虚拟现实系统的虚拟场景显示方法 | |
CN103077546A (zh) | 二维图形的三维透视变换方法 | |
Nishino et al. | 3d object modeling using spatial and pictographic gestures | |
US20230410452A1 (en) | Method for inferring a 3d geometry onto a 2d sketch | |
US20180286130A1 (en) | Graphical image augmentation of physical objects | |
WO2006106512A3 (en) | Rendering 3d computer graphics using 2d computer graphics capabilities | |
US11074747B2 (en) | Computer-aided techniques for designing detailed three-dimensional objects | |
Sandnes | Sketching 3D immersed experiences rapidly by hand through 2D cross sections | |
Watanabe et al. | The deformable workspace: A membrane between real and virtual space | |
CN102693065A (zh) | 立体影像视觉效果处理方法 | |
CN104346825B (zh) | 一种非线性深度转化为线性深度的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110504 |