CN112927352A - 基于压平多边形的三维场景局部区域动态压平方法及装置 - Google Patents
基于压平多边形的三维场景局部区域动态压平方法及装置 Download PDFInfo
- Publication number
- CN112927352A CN112927352A CN202110200278.3A CN202110200278A CN112927352A CN 112927352 A CN112927352 A CN 112927352A CN 202110200278 A CN202110200278 A CN 202110200278A CN 112927352 A CN112927352 A CN 112927352A
- Authority
- CN
- China
- Prior art keywords
- flattening
- polygon
- flattened
- camera
- matrix
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims abstract description 58
- 238000006073 displacement reaction Methods 0.000 claims abstract description 4
- 238000009877 rendering Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于压平多边形的三维场景局部区域动态压平方法及装置,在用户坐标系中定义压平多边形确定压平区;根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;使用压平相机生成压平多边形深度图;将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。本发明对压平区的限制性较低,不局限于水平面,可以为任意斜面,并且可以根据用户需要,采用不精确共面的空间多边形来定义压平区。
Description
技术领域
本发明属于空间信息领域,具体涉及一种基于压平多边形的三维场景局部区域动态压平方法及装置。
背景技术
三维模型是三维可视化的重要数据基础,其精确性与三维场景的可视化效果密切相关,精细模型能提高三维可视化的质量,而低质量模型的存在则有碍观感甚至影响应用效果。精细模型一般采用人工建模或lidar建模,但由于生产成本较高,一般只针对重点目标采用精细建模方法。倾斜摄影是全要素三维建模方法,生产成本低,生产速度快,可以实现大场景包含几何结构和纹理的批量三维重建,但是受目前技术的限制,对树木、电杆等细小零散目标的建模效果差,容易导致大量低质量模型的产生。
可以采用专业修模软件移除低质量模型,以改善可视化的效果。移除操作本质上是对原有模型的二次建模,需要重新采集数据(如纹理图像)才能实现对移除区域的三维重建。目前一些修模软件如MeshMixer,wish3D等则提供了模型的局部压平功能,无需重新采集数据,直接将低质量模型(如树木)压平到地面,间接实现移除低质量模型的要求。但该方法存在以下问题:(1)压平需要专业用户操作,也需要专业的修模软件支持,除了增加额外的工作量,对于普通用户来说基本不可行。(2)修模软件压平本质上是对三维模型的物理破坏,将反映模型质量高低的“1-N”问题变成体现模型有无的“0-1”问题,导致虚拟场景和实际场景新的不一致,由于其操作不可逆,在部分应用中是不可接受的。
发明内容
发明目的:本发明提出一种基于压平多边形的三维场景局部区域动态压平方法及装置,对压平区的限制性较低,不局限于水平面,可以为任意斜面,且具有较强的交互性,可便捷的查看实际压平效果并进行动态调整。
技术方案:本发明提出一种基于压平多边形的三维场景局部区域动态压平方法,具体包括以下步骤:
(1)在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区;
(2)根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;
(3)使用压平相机生成压平多边形深度图;
(4)将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;
(5)在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。
进一步地,所述步骤(2)包括以下步骤:
(21)计算压平多边形包围盒:所述的压平多边形包围盒是包含压平多边形所有顶点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值,修正bTop=max(bTop,bBottom+f),其中f为任意大于0的值;
(22)设置压平相机观察矩阵:通过压平多边形包围盒的上下底面中心确定直线L,选择L上任一高于包围盒的空间点,作为观察坐标系原点O,定义观察坐标系的X、Y和Z轴分别与用户坐标系的X、Y和Z轴方向一致,建立观察坐标系,根据观察坐标系设置压平相机观察矩阵;
(23)设置压平相机投影矩阵:将压平多边形包围盒设置为压平相机的观察空间,然后根据正交投影类型和压平相机的观察空间设置压平相机的投影矩阵;
(24)设置压平相机视口矩阵:设置压平相机的视口宽度W和高度H,其中W和H均大于0;根据视口宽度和高度设置压平相机的视口矩阵。
进一步地,所述步骤(3)包括以下步骤:
(31)将压平多边形分解为三角网;
(32)输出压平多边形深度图:关闭颜色缓存,开启深度缓存,将分解得到的三角网输入到GPU中,生成压平多边形深度图。
进一步地,所述步骤(5)包括以下步骤:
(51)在顶点着色器中,根据压平相机的观察矩阵、投影矩阵,将用户坐标系中的顶点坐标V0(x0,y0,z0)变换到压平相机纹理空间,设变换后的坐标为V1(x1,y1,z1);
(52)若x1和y1都在[0,1]的范围内,用坐标(x1,y1)采样压平多边形深度图,获得深度值z2,如果z2<1.0,则根据压平相机的观察矩阵、投影矩阵将坐标(x1,y1,z2)逆变换到用户坐标系,得到坐标(x3,y3,z3):若z3<z0,则该顶点需要压平,修改V0的z值为z3;否则,保持VO不变;
(53)用V0参加正常的渲染流程。
基于相同的发明构思,本发明还提供一种基于压平多边形的三维场景局部区域动态压平装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于压平多边形的三维场景局部区域动态压平方法。
有益效果:与现有技术相比,本发明的有益效果:与传统的需要修改模型文件的压平方式相比,本发明无需修改三维模型,且具有较强的交互性,可便捷的查看实际压平效果并进行动态调整;同时本发明对压平区的限制性较低,不局限于水平面,可以为任意斜面,并且可以根据用户需要,采用不精确共面的空间多边形来定义压平区。
附图说明
图1为本发明的流程图;
图2为电杆未压平前的可视化效果图;
图3为交互式定义压平多边形图;
图4为压平相机设置示意图;
图5为电杆压平后的可视化效果图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明提供一种基于压平包围球的三维场景局部区域动态压平方法,如图1所示,具体包括以下步骤:
步骤1:在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区。
图2为电杆未压平前的可视化效果图,如图3所示,用屏幕取点方式获得压平多边形顶点的屏幕坐标,要求压平多边形紧密贴合待压平目标的压平区。压平区即模型要压平到底部的基准面,一般与地面一致,压平多边形是用户定义的近似压平区的空间多边形,然后借助于渲染相机视点下的视口矩阵、投影矩阵和视图矩阵,将屏幕坐标变换到用户坐标系。在3D渲染引擎库OpenGL中,可以使用gluUnProject函数实现。
步骤2:根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵。
(2.1)计算压平多边形包围盒:如图4所示,压平多边形包围盒是包含压平多边形所有顶点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值,为避免上下底面共面导致包围盒失效,修正bTop=max(bTop,bBottom+f),其中f为调节因子,为任意大于0的值。由于压平多边形接近水平,若调节因子f=1,最终的bTop=bBottom+1。
(2.2)设置压平相机观察矩阵:如图4所示,通过压平多边形包围盒的上下底面中心确定直线L,选择L上任一高于包围盒的空间点,作为观察坐标系原点O,定义观察坐标系的X、Y和Z轴分别与用户坐标系的X、Y和Z轴方向一致,建立观察坐标系,根据观察坐标系设置压平相机观察矩阵。在3D渲染引擎库OpenGL中,可以使用gluLookAt函数根据观察坐标系信息自动设置观察矩阵。
(2.3)设置压平相机投影矩阵:将压平多边形包围盒设置为压平相机的观察空间,然后根据正交投影类型和压平相机的观察空间设置压平相机的投影矩阵。在3D渲染引擎库OpenGL中,可以使用gluOtho函数根据观察空间自动设置正交投影矩阵。
(2.4)设置压平相机视口矩阵:设置压平相机的视口宽度W和高度H,要求W和H均大于0,可直接以窗口的实际宽高为值;根据视口宽度和高度设置压平相机的视口矩阵。在3D渲染引擎库OpenGL中,可以使用glViewport函数自动设置视口矩阵。
步骤3:使用压平相机生成压平多边形深度图。
将压平多边形分解为三角网;输出压平多边形深度图:关闭颜色缓存,开启深度缓存,将分解得到的三角网输入到GPU中,基于FBO技术生成压平多边形深度图。
步骤4:将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线。
步骤5:在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。
(5.1)正常渲染三维场景,在顶点着色器中,根据压平相机视图矩阵Mview、投影矩阵Mproject和视口矩阵Mviewport将顶点坐标V0(x0,y0,z0)转换到压平相机的纹理空间,此处可设置总变换矩阵M=Mview*Mproject*Mviewport,使用M矩阵对V0进行变换并归一化,得到变换后的坐标V1(x1,y1,z1)。
(5.2)若x1和y1都在[0,1]的范围内,用坐标(x1,y1)采样压平多边形深度图,获得深度值z2,如果z2<1.0,则表明该点在XY平面的投影被压平多边形覆盖,用M矩阵的逆阵对坐标(x1,y1,z2)变换,获得变换后的z坐标z3(x3,y3,z3):若z3<z0,则该顶点需要压平,修改V0的z值为z3;否则,该顶点无需压平,保持VO不变。
(5.3)用V0参加正常的渲染流程。最终效果如图5所示。
本发明还提供一种基于压平多边形的三维场景局部区域动态压平装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于压平多边形的三维场景局部区域动态压平方法。
Claims (5)
1.一种基于压平多边形的三维场景局部区域动态压平方法,其特征在于,包括以下步骤:
(1)在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区;
(2)根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;
(3)使用压平相机生成压平多边形深度图;
(4)将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;
(5)在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。
2.根据权利要求1所述的基于压平多边形的三维场景局部区域动态压平方法,其特征在于,所述步骤(2)包括以下步骤:
(21)计算压平多边形包围盒:所述的压平多边形包围盒是包含压平多边形所有顶点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值,修正bTop=max(bTop,bBottom+f),其中f为任意大于0的值;
(22)设置压平相机观察矩阵:通过压平多边形包围盒的上下底面中心确定直线L,选择L上任一高于包围盒的空间点,作为观察坐标系原点O,定义观察坐标系的X、Y和Z轴分别与用户坐标系的X、Y和Z轴方向一致,建立观察坐标系,根据观察坐标系设置压平相机观察矩阵;
(23)设置压平相机投影矩阵:将压平多边形包围盒设置为压平相机的观察空间,然后根据正交投影类型和压平相机的观察空间设置压平相机的投影矩阵;
(24)设置压平相机视口矩阵:设置压平相机的视口宽度W和高度H,其中W和H均大于0;根据视口宽度和高度设置压平相机的视口矩阵。
3.根据权利要求1所述的基于压平多边形的三维场景局部区域动态压平方法,其特征在于,所述步骤(3)包括以下步骤:
(31)将压平多边形分解为三角网;
(32)输出压平多边形深度图:关闭颜色缓存,开启深度缓存,将分解得到的三角网输入到GPU中,生成压平多边形深度图。
4.根据权利要求1所述的基于压平多边形的三维场景局部区域动态压平方法,其特征在于,所述步骤(5)包括以下步骤:
(51)在顶点着色器中,根据压平相机的观察矩阵、投影矩阵,将用户坐标系中的顶点坐标V0(x0,y0,z0)变换到压平相机纹理空间,设变换后的坐标为V1(x1,y1,z1);
(52)若x1和y1都在[0,1]的范围内,用坐标(x1,y1)采样压平多边形深度图,获得深度值z2,如果z2<1.0,则根据压平相机的观察矩阵、投影矩阵将坐标(x1,y1,z2)逆变换到用户坐标系,得到坐标(x3,y3,z3):若z3<z0,则该顶点需要压平,修改V0的z值为z3;否则,保持VO不变;
(53)用V0参加正常的渲染流程。
5.一种基于压平多边形的三维场景局部区域动态压平装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-4任一项所述的基于压平多边形的三维场景局部区域动态压平方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110200278.3A CN112927352A (zh) | 2021-02-23 | 2021-02-23 | 基于压平多边形的三维场景局部区域动态压平方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110200278.3A CN112927352A (zh) | 2021-02-23 | 2021-02-23 | 基于压平多边形的三维场景局部区域动态压平方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112927352A true CN112927352A (zh) | 2021-06-08 |
Family
ID=76170313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110200278.3A Pending CN112927352A (zh) | 2021-02-23 | 2021-02-23 | 基于压平多边形的三维场景局部区域动态压平方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112927352A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372246A (zh) * | 2023-10-08 | 2024-01-09 | 北京市测绘设计研究院 | 一种基于滤波算法的倾斜摄影三维模型局部压平方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463948A (zh) * | 2014-09-22 | 2015-03-25 | 北京大学 | 三维虚拟现实***与地理信息***的无缝可视化方法 |
CN107845136A (zh) * | 2017-09-19 | 2018-03-27 | 浙江科澜信息技术有限公司 | 一种三维场景的地形压平方法 |
-
2021
- 2021-02-23 CN CN202110200278.3A patent/CN112927352A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463948A (zh) * | 2014-09-22 | 2015-03-25 | 北京大学 | 三维虚拟现实***与地理信息***的无缝可视化方法 |
CN107845136A (zh) * | 2017-09-19 | 2018-03-27 | 浙江科澜信息技术有限公司 | 一种三维场景的地形压平方法 |
Non-Patent Citations (1)
Title |
---|
谢美亭: "基于AutoCAD的插件式倾斜摄影实景数据处理***设计与实现", CNKI优秀硕士学位论文全文库, no. 01, 15 January 2021 (2021-01-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372246A (zh) * | 2023-10-08 | 2024-01-09 | 北京市测绘设计研究院 | 一种基于滤波算法的倾斜摄影三维模型局部压平方法 |
CN117372246B (zh) * | 2023-10-08 | 2024-03-22 | 北京市测绘设计研究院 | 一种基于滤波算法的倾斜摄影三维模型局部压平方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108648269B (zh) | 三维建筑物模型的单体化方法和*** | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
Wang et al. | View-dependent displacement mapping | |
CN111340928B (zh) | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 | |
US7212207B2 (en) | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing | |
CN102332179B (zh) | 三维模型数据化简、渐进传输方法及装置 | |
CN108257204B (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及*** | |
CN113034656B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US7843463B1 (en) | System and method for bump mapping setup | |
US20080012853A1 (en) | Generating mesh from implicit surface | |
CN107610225B (zh) | 一种倾斜摄影实景三维模型单体化方法 | |
CN113034657B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US6791544B1 (en) | Shadow rendering system and method | |
EP3211601B1 (en) | Rendering the global illumination of a 3d scene | |
Xu et al. | Stylized rendering of 3D scanned real world environments | |
KR20080018404A (ko) | 게임 제작을 위한 배경 제작 프로그램을 저장한 컴퓨터에서읽을 수 있는 기록매체 | |
Merlo et al. | 3D model visualization enhancements in real-time game engines | |
CN111563948A (zh) | 基于gpu进行资源动态处理和缓存的虚拟地形渲染方法 | |
CN112927352A (zh) | 基于压平多边形的三维场景局部区域动态压平方法及装置 | |
CN116664752B (zh) | 基于图案化光照实现全景显示的方法、***及存储介质 | |
CN116385619B (zh) | 对象模型渲染方法、装置、计算机设备和存储介质 | |
KR101118597B1 (ko) | 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템 | |
CN112927351A (zh) | 基于压平包围球的三维场景局部区域动态压平方法及装置 | |
CN113269819B (zh) | 一种面向视频投射场景的遮挡物动态隐藏方法及装置 | |
CN112837430A (zh) | 基于压平视锥体的三维场景局部区域动态压平方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |