CN102663805A - 一种基于投影的视锥体裁剪的方法 - Google Patents
一种基于投影的视锥体裁剪的方法 Download PDFInfo
- Publication number
- CN102663805A CN102663805A CN2012101158668A CN201210115866A CN102663805A CN 102663805 A CN102663805 A CN 102663805A CN 2012101158668 A CN2012101158668 A CN 2012101158668A CN 201210115866 A CN201210115866 A CN 201210115866A CN 102663805 A CN102663805 A CN 102663805A
- Authority
- CN
- China
- Prior art keywords
- view frustums
- projection
- cutting
- face
- space
- 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.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种基于投影的视锥体裁剪的方法,包括:建立一个适合视锥体裁剪的计算坐标系,在这个计算坐标系下,选取V和W两个坐标平面,按照正投影的原理,将视锥体表达为两个等腰梯形,这两个梯形作为空间线段的裁剪边界;建立视图与空间的对应关系,由两个视图中梯形与直线段投影的位置关系求出空间直线段在视锥体内的显示部分。本发明依据画法及几何投影及2D/3D对应关系原理,采用数学的方式用计算机实施,将三维问题转化为二维问题,几何意义明显,方法直观,能有效解决奇异问题。
Description
技术领域
本发明属计算机图形技术领域,特别是涉及一种基于投影的视锥体裁剪的方法。
背景技术
视锥体,是指场景中摄像机的一个可见锥体范围。由于透视变换的缘故,计算机应用的视锥体是一个四棱台观测金字塔,由上底、下底、左、右、前、后共6个面围成(图1)。在视锥体内的景物可见,反之则不可见。
视锥体裁剪是3D显示系统的基础技术之一,对算法效率的要求较高。直接在三维空间求取直线与视锥体的交点,一般采用代数方法在3D空间进行,需要将直线与视锥体的6个面求交(最多6次),每次求交后需要做交点在6个面的四边形(2个矩形、4个梯形)包容性测试。
发明内容
本发明所要解决的技术问题是提供一种基于画法几何投影视图的视锥体裁剪方法,将3D计算降为2D计算。本发明在视锥体的计算坐标系下进行,选择两个坐标平面为投影平面,所得到的两个视锥体的投影均为等腰梯形。根据3D/2D对应关系,将视锥体裁剪简化为平面上直线(段)与梯形间的相交问题。
本发明解决其技术问题所采用的技术方案是:提供一种基于投影的视锥体裁剪的方法,建立一个适合视锥体计算的计算坐标系,在这个计算坐标系下,选取V和W两个坐标平面,按照正投影的原理,将视锥体表达为两个等腰梯形,这两个梯形作为空间线段的裁剪边界;建立视图与空间的对应关系,由两个视图中梯形与直线投影的对应关系求出空间直线在视锥体内部的显示部分,具体步骤如下:
(一)建立视锥体的裁剪环境:
(1a)以视锥体的两个对称平面及视锥体的底平面作为坐标平面,建立视锥体的计算坐标系;选取两个对称平面对应于三投影面体系的V面和W面,这两个平面的交线为z轴,则视锥体在这两个平面的正投影均为等腰梯形;
(1b)根据视锥体的参数求出平面上两个等腰梯形的参数,构建对所有直线适用的裁剪基础;
(二)对所有空间直线段P1P2进行视锥体裁剪:
(2a)将空间被裁减直线的端点P1、P2变换到这个新坐标系下;
(2b)在计算坐标系下,根据V和W面上的等腰梯形和空间P1P2的投影,即直线或点的对应关系,判断出空间直线段与视锥体各面的位置关系;如果有显示部分,则求出显示部分直线段的两个端点;
(2c)将显示部分直线段的两个端点逆变换回原始坐标系。
所述的步骤(一)中的两个等腰梯形的参数包括4×2个顶点的坐标,4×2条边的法线式直线方程,以此构建视锥体的裁剪平台。
所述的步骤(2b)中根据V面和W面上的梯形和空间P1P2的投影即直线或点的对应关系,判断出空间直线段与视锥体各面的位置关系的方法为:
(3a)将空间直线段延长至无限长的空间直线,根据两个投影面上的投影,判断出空间直线与视锥体的位置关系;如果与视锥体有交点,则求出裁剪点;
(3b)然后再求取与被裁剪直线段与裁剪点之间的交集部分,即为在视锥体内要显示的部分。
所述的步骤(3a)是根据正投影性质及视图的关联,视锥体在V面和W面上的正投影等腰梯形Tv与Tw,如果空间线段P1P2所在直线在V面上的投影与Tv梯形的边界有交点Iv,那么Iv所对应的空间点在W面上的投影必须在Tw梯形内或边上才有效(如图2中的实心点);只有Iv有效,才能在Tv上求出P1P2相应的裁剪点(如图2中的十字点);否则,在Tv上的交点无效(如图2中的空心点),必须在Tw上执行类似的操作。
有益效果
本发明提供了一种将视锥体裁剪降维到平面上梯形裁剪的方法。本发明依据画法几何投影及2D\3D对应关系原理,采用数学的方式实施,将三维问题转化为二维问题。几何意义明显,方法直观,能有效解决奇异问题。
在复杂度方面,与直接进行三维求交的方法相比,本发明的方法无包容性测试。梯形裁剪算法还可根据梯形的性质化简(例如梯形是等腰的、有2条边是水平的等等)。对大量线的裁剪,可以将之与计算坐标系的变换合并为一次变换。
附图说明
图1是本发明视锥体计算坐标系的示意图;
图2是本发明中被裁剪直线段所在直线裁剪视锥体裁剪点有效性判断原理图;
图3a-3h是本发明被裁剪直线段所在直线裁剪视锥体与投影对应关系的三视图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
如图1-3h所示,本发明利用画法几何的投影理论,将3D计算降为2D计算。视锥体在计算坐标系(图1)下的V投影面(z、x坐标平面)与W投影面(y、z坐标平面)是2个等腰梯形(图2),为方便,分别记为Tv与Tw。对直线段所在直线的投影分别与Tv与Tw作相交计算,计算结果与直线段端点取交集,得到直线段在视锥体内的部分,完成视锥体裁剪。
本发明的关键是投影与空间的关联原理:根据正投影性质及视图的关联,如果空间线段P1、P2所在直线在V面上的投影与Tv梯形的边界有交点Iv,那么Iv所对应的空间点在W面上的的投影必须在Tw梯形内或边上才有效,如图2中的实心点。只有Iv有效,才能在Tv上求出P1、P2相应的裁剪点,如图2中的十字点;否则,在Tv上的交点无效,如图2中的空心点,必须在Tw上执行类似的操作。
具体步骤分成两步:
第一步,建立视锥体的裁剪环境。这一步的工作对所有被裁剪线只执行一次。
1.以视锥体的两个对称平面及视锥体的底平面作为坐标平面,建立视锥体的计算坐标系(图1),所有对空间直线的裁剪将在这个计算坐标系下进行;
2.选取两个对称平面为对应于三投影面体系的V面和W面,这两个平面的交线为z轴。视锥体在V面和W面上的正投影均为等腰梯形,记为Tv与Tw(图2)。
3.求出Tv与Tw两个等腰梯形的参数,包括4×2个顶点的坐标,4×2条边的法线式直线方程,构建视锥体的裁剪平台。
第二步,对所有空间直线段P1P2进行视锥体裁剪。
1.将空间被裁减的直线P1P2变换到这个新坐标系。
2.在计算坐标系下,在Tv上对空间直线P1P2的投影作裁剪;
3.判断平面上裁剪点有效性判别原理:如果空间线段P1P2所在直线在V面上的投影与Tv梯形的边界有交点Iv,那么Iv所对应的空间点在W面上的的投影必须在Tw梯形内或边上才有效。只有Iv有效,才能在Tv上求出P1P2相应的裁剪点(Iv本身或靠近Iv的那个交点);否则,在Tv上的交点无效,必须在Tw上执行类似的操作。
4.如果被裁减的直线P1P2有显示部分Q1Q2,则取P1P2与Q1Q2的交集,完成空间直线段对视锥体的裁剪。
将显示部分直线段的两个端点逆变换回原始坐标系。
视锥体裁剪过程为:
[1]变换到计算坐标系。将空间线段P1(x1,y1,z1),P2(x2,y2,z2)变换到计算坐标系下;
[2]置初值。裁剪点计数n置0;Q1=P1,Q2=P2;
[3]在V面上求交点。将P1P2作为无穷直线在V面上的投影与视锥体投影梯形求交,
如果 无交点 {
如果P1P2垂直于zox平面(图2),转[4];
否则该直线段裁剪结束,无显示部分;
}
否则根据V面梯形上的交点Q1(x1,z1)与Q2(x2,z2)求出他们在直线P1P2上的y,得到Q1(x1,y1,z1)与Q2(x2,y2,z2),并对Qi(i=1,2)分别执行:在W平面上检测Qi是否在梯形内或边上,如果是,Qi为有效交点,n计数加1;
如果n=2,转[5];
[4]在W面上求交点。将P1P2作为无穷直线在W面上的投影与视锥体投影梯形求交,
如果无交点,该直线段裁剪结束,无显示部分;
否则根据W面梯形上的交点Q1(x1,z1)与Q2(x2,z2)求出他们在直线P1P2上的y,得到Q1(x1,y1,z1)与Q2(x2,y2,z2),并对Qi(i=1,2)分别执行:在V平面上检测Qi是否在梯形内或边上,如果是,Qi为有效交点,n计数加1;
如果n=0,该直线段裁剪结束,无显示部分;
求可见部分。取Q1Q2=Q1Q2∩P1P2,如果Q1Q2=0,该直线段裁剪结束,无显示部分;
[5]反变换。将Q1、Q2反变换到原始坐标系,该直线段裁剪结束,有显示部分。
Claims (4)
1.一种基于投影的视锥体裁剪的方法,其特征在于:建立一个适合视锥体裁剪的计算坐标系,在这个计算坐标系下,选取V和W两个坐标平面,按照正投影的原理,将视锥体表达为两个等腰梯形,这两个梯形作为空间线段的裁剪边界;建立视图与空间的对应关系,由两个视图中梯形与直线投影的分布关系求出空间直线在视锥体内部的显示部分,具体步骤如下:
(一)建立视锥体的裁剪环境:
(1a)以视锥体的两个对称平面及视锥体的底平面作为坐标平面,建立视锥体的计算坐标系;选取两个对称平面对应于三投影面体系的V面和W面,这两个平面的交线为Z轴,则视锥体在这两个平面的正投影均为等腰梯形Tv与Tw;
(1b)根据视锥体的参数求出平面上两个等腰梯形的参数,构建对所有直线适用的裁剪基础平台;
(二)对所有空间直线段P1P2进行视锥体裁剪:
(2a)将空间被裁减直线的端点P1、P2变换到这个新坐标系下,它们在V和W面上的投影分别为P1v、P2v、P1w与P2w;
(2b)在计算坐标系下,根据V和W面上的等腰梯形Tv与Tw与空间P1P2的投影P1vP2v、P1wP2w的分布关系,判断出空间直线段与视锥体各面的位置关系;如果有显示部分,则求出显示部分直线段的两个端点;
(2c)将显示部分直线段的两个端点逆变换回原始坐标系。
2.根据权利要求1所述的一种基于投影的视锥体裁剪的方法,其特征在于:所述的步骤
(一)中的两个等腰梯形的参数包括4×2个顶点的坐标,4×2条边的法线式直线方程,以此构建视锥体的裁剪平台。
3.根据权利要求1所述的一种基于投影的视锥体裁剪的方法,其特征在于:所述的步骤
(2b)中根据V面和W面上的梯形和空间P1P2的投影即直线或点的对应关系,判断出空间直线段与视锥体各面的位置关系的方法为:
(3a)将空间直线段延长至无限长的空间直线,根据两个投影面上的投影,判断出空间直线与视锥体的位置关系;如果与视锥体有交点,则求出裁剪点;
(3b)然后再求取被裁剪直线段与裁剪点之间的交集部分,即为在视锥体内要显示的部分。
4.根据权利要求3所述的一种基于投影的视锥体裁剪的方法,其特征在于:所述的步骤(3a)是根据正投影性质及视图的关联,视锥体在V面和W面上的正投影等腰梯形(Tv与Tw),如果空间线段P1P2所在直线在V面上的投影与Tv梯形的边界有交点Iv,那么Iv所对应的空间点在W面上的投影必须在Tw梯形内或边上才有效(摘要附图上的实心点);只有Iv有效,才能在Tv上求出P1P2相应的裁剪点(摘要附图上的十字点);否则,在Tv上的交点无效(摘要附图上的空心点),必须在Tw上执行类似的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210115866.8A CN102663805B (zh) | 2012-04-18 | 2012-04-18 | 一种基于投影的视锥体裁剪的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210115866.8A CN102663805B (zh) | 2012-04-18 | 2012-04-18 | 一种基于投影的视锥体裁剪的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663805A true CN102663805A (zh) | 2012-09-12 |
CN102663805B CN102663805B (zh) | 2014-05-28 |
Family
ID=46773282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210115866.8A Expired - Fee Related CN102663805B (zh) | 2012-04-18 | 2012-04-18 | 一种基于投影的视锥体裁剪的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663805B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914868A (zh) * | 2013-12-20 | 2014-07-09 | 柳州腾龙煤电科技股份有限公司 | 虚拟现实下的海量模型数据动态调度与实时异步加载方法 |
CN104036539A (zh) * | 2014-06-17 | 2014-09-10 | 北京航空航天大学 | 一种应用在大规模地形渲染中的视锥体投影裁剪方法 |
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN106101626A (zh) * | 2016-06-30 | 2016-11-09 | 中国航空无线电电子研究所 | 一种基于反透视变换的360度全景展开方法 |
WO2017088361A1 (zh) * | 2015-11-26 | 2017-06-01 | 乐视控股(北京)有限公司 | 一种基于虚拟现实设备的视锥体裁剪方法及装置 |
CN108053466A (zh) * | 2017-11-30 | 2018-05-18 | 东华大学 | 一种基于投影的盒子裁剪方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145245A (zh) * | 2007-10-17 | 2008-03-19 | 北京航空航天大学 | 一种基于非均匀空间划分的场景可见性裁剪方法 |
CN101419721A (zh) * | 2008-10-30 | 2009-04-29 | 上海大学 | 一种基于视域剔除的复杂室内场景快速绘制方法 |
US20100097377A1 (en) * | 2008-10-20 | 2010-04-22 | Jon Hasselgren | Graphics Processing Using Culling on Groups of Vertices |
CN102157008A (zh) * | 2011-04-12 | 2011-08-17 | 电子科技大学 | 一种大规模虚拟人群实时绘制方法 |
-
2012
- 2012-04-18 CN CN201210115866.8A patent/CN102663805B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145245A (zh) * | 2007-10-17 | 2008-03-19 | 北京航空航天大学 | 一种基于非均匀空间划分的场景可见性裁剪方法 |
US20100097377A1 (en) * | 2008-10-20 | 2010-04-22 | Jon Hasselgren | Graphics Processing Using Culling on Groups of Vertices |
CN101419721A (zh) * | 2008-10-30 | 2009-04-29 | 上海大学 | 一种基于视域剔除的复杂室内场景快速绘制方法 |
CN102157008A (zh) * | 2011-04-12 | 2011-08-17 | 电子科技大学 | 一种大规模虚拟人群实时绘制方法 |
Non-Patent Citations (1)
Title |
---|
吴慧欣: "一种视点相关的大规模地形快速实时生成算法", 《计算机应用研究》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN104715452B (zh) * | 2013-12-12 | 2017-12-15 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN103914868A (zh) * | 2013-12-20 | 2014-07-09 | 柳州腾龙煤电科技股份有限公司 | 虚拟现实下的海量模型数据动态调度与实时异步加载方法 |
CN103914868B (zh) * | 2013-12-20 | 2017-02-22 | 柳州腾龙煤电科技股份有限公司 | 虚拟现实下的海量模型数据动态调度与实时异步加载方法 |
CN104036539A (zh) * | 2014-06-17 | 2014-09-10 | 北京航空航天大学 | 一种应用在大规模地形渲染中的视锥体投影裁剪方法 |
CN104036539B (zh) * | 2014-06-17 | 2017-01-18 | 北京航空航天大学 | 一种应用在大规模地形渲染中的视锥体投影裁剪方法 |
WO2017088361A1 (zh) * | 2015-11-26 | 2017-06-01 | 乐视控股(北京)有限公司 | 一种基于虚拟现实设备的视锥体裁剪方法及装置 |
CN106101626A (zh) * | 2016-06-30 | 2016-11-09 | 中国航空无线电电子研究所 | 一种基于反透视变换的360度全景展开方法 |
CN108053466A (zh) * | 2017-11-30 | 2018-05-18 | 东华大学 | 一种基于投影的盒子裁剪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102663805B (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663805B (zh) | 一种基于投影的视锥体裁剪的方法 | |
CN106934111B (zh) | 一种基于地形数据的工程三维实体建模方法及其建模装置 | |
CN104183016B (zh) | 一种快速的2.5维建筑物模型的构建方法 | |
CN103544728B (zh) | 一种在实景地图中基于法向量的被探面过滤方法 | |
CN103500467A (zh) | 基于图像的三维模型构成方法 | |
CN106598988A (zh) | 一种数据处理方法和设备 | |
KR100657937B1 (ko) | 2차원 선형 데이터의 실시간 3차원 변환 방법 및 장치,그리고 이를 이용한 2차원 선형 데이터의 실시간 3차원시각화 방법 및 장치 | |
CN108326845A (zh) | 基于双目相机和激光雷达的机器人定位方法、装置及系统 | |
CN105046733A (zh) | 一种基于三维多纹理贴图方法 | |
CN102436676A (zh) | 一种智能视频监控的三维重建方法 | |
CN107102991A (zh) | 一种三维gis系统中的杆塔参数化建模方法 | |
CN102254347B (zh) | 电磁环境体数据三维可视化方法 | |
CN103914871B (zh) | 基于点云数据的交互式选取物体表面坐标点的方法 | |
CN103473766B (zh) | 一种基于视觉感知的二维形状特征点匹配方法 | |
CN102831632B (zh) | 镜像纹理生成方法、装置 | |
CN101877145A (zh) | 基于质量因子的复杂平表面网格预剖分方法 | |
CN104123748A (zh) | 基于屏幕空间中点光源实现实时动态阴影的方法 | |
CN103177474B (zh) | 三维模型的邻域点坐标确定方法及装置、构建方法及装置 | |
CN105427371B (zh) | 一种三维透视投影场景中保持图形对象等像素面积显示的方法 | |
CN101697235A (zh) | 一种透视图生成方法和装置 | |
CN103761012B (zh) | 一种适用于大尺寸红外触摸屏的快速算法 | |
CN105205206A (zh) | 一种复杂平面片交线段的求取方法 | |
CN104461577A (zh) | 一种基于html5图形绘制程序的流程图显示方法 | |
CN103544720B (zh) | 在平面房间图上快速绘制门窗的方法 | |
CN103677540A (zh) | 一种3d虚拟现实翻页实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140528 Termination date: 20170418 |
|
CF01 | Termination of patent right due to non-payment of annual fee |