CN112927334B - 一种基于gpu的三维模型快速体素化方法 - Google Patents
一种基于gpu的三维模型快速体素化方法 Download PDFInfo
- Publication number
- CN112927334B CN112927334B CN202110197354.XA CN202110197354A CN112927334B CN 112927334 B CN112927334 B CN 112927334B CN 202110197354 A CN202110197354 A CN 202110197354A CN 112927334 B CN112927334 B CN 112927334B
- Authority
- CN
- China
- Prior art keywords
- voxel
- model
- rasterization
- processor
- information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于GPU的三维模型快速体素化方法,基于多Pass的GPU处理过程以获取正确的体素边界模型,并基于二维图像“水漫填充”实现三维体素边界模型内部实体化,能够快速并准确的得到全体素模型,具有较高的应用推广价值。
Description
技术领域
本发明涉及三维模型数据处理领域,特别是一种基于GPU的三维模型快速体素化方法。
背景技术
三维模型体素化是指将三维表面模型转换成最接近改模型的体素集合,三维模型体素化有基于CPU和基于GPU两种方式,基于CPU的体素化方式能得到正确的体素模型,但效率较低。基于GPU的体素化方式效率高,但现有处理方式不能得到正确的体素模型。
现有技术(https://yangwc.com/2019/06/11/Voxelization/)中阐述的方法,最终体素化结果会出现裂缝和孔洞,甚至会出现错误的体素。
发明内容
本发明的发明目的在于:针对现有技术最终体素化结果存在的裂缝和孔洞的问题,提供一种基于GPU的三维模型快速体素化方法。
为了实现上述目的,本发明采用的技术方案为:
一种基于GPU的三维模型快速体素化方法,包括:
S1:遍历三维模型所有三角形获取模型的AABB包围盒;
S2:设置体素大小,基于体素单元大小扩展模型的AABB包围盒的坐标,得到最外层体素不属于模型区域的初始体素区域;
S3:基于S2扩展后的AABB包围盒,分三次以前、后、上三个方向的视图与投影矩阵构建OpenGL光栅化过程,得到三个视图的光栅化体素信息;
S4:将三个视图的光栅化体素信息并集后,求解得到模型边界体素信息;
S5:以模型边界体素信息的体素空间坐标最大值点为种子采用前、后、上、下、左、右六个方向递归填充模型的非边界体素区域;那么,
模型全体素数据=初始体素区域-非边界体素区域。
优选的,所述步骤S1包括:
遍历三维模型所有三角形,获取模型AABB包围盒boxMin,boxMax。
优选的,所述步骤S2包括:
设置体素单元的大小,基于体素单元大小扩展模型包围盒坐标,基于扩展的包围盒与体素单元大小定义初始体素区域,基于初始体素区域设置并初始化OpenGL SSBO缓冲。
优选的,所述步骤S3包括:
基于S2中包围盒定义计算上、前、右三个方向的视图与正交投影矩阵信息;
关闭openGL背面剔除、深度测试和多重采样,分三次以前、后、上三个方向的视图与投影矩阵构建OpenGL光栅化过程,计算光栅化像元对应模型表面的体素坐标并将该体素坐标对应标记值加一。
一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上任一项所述的方法。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
一种基于GPU的三维模型快速体素化方法,基于多Pass的GPU处理过程以获取正确的体素边界模型,并基于二维图像“水漫填充”实现三维体素边界模型内部实体化,能够快速并准确的得到全体素模型,具有较高的应用推广价值。
附图说明
图1是本发明方法的流程图。
图2为前、后、上三个方向正交投影矩阵构建过程示意图。
图3为顶点与片元着色器示意图。
图4为获取模型边界体素的流程图。
图5为三维“水漫填充”算法及获取全体素方法流程图。
图6为本发明提供的电子设备的结构示意图。
具体实施方式
下面结合附图,对本发明作详细的说明。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示:本发明阐述的基于GPU的三维模型体素化主要有以下步骤:
S1:遍历三维模型所有三角形获取模型AABB包围盒boxMin,boxMax;
S2:如图2所示,设置体素单元的大小voxelStep,基于体素单元大小扩展模型包围盒坐标(boxMax+=voxelStep*2.0;boxMin-=voxelStep*2.0)以确保初始体素区域最外层体素不属于模型区域,用以保证S5中“水漫填充”算法能基于种子体素(非模型区域的任意体素)实现非模型区域体素填充。基于扩展的包围盒与体素单元大小定义初始体素区域,即voxelXNum=(boxMax.x-boxMin.x)/voxelStep.x;voxelYNum=(boxMax.y-boxMin.y)/voxelStep.y;voxelZNum=(boxMax.z-boxMin.z)/voxelStep.z;totalVoxelNum=voxelXNum*voxelYNum*voxelZNum并基于totalVoxelNum设置并初始化OpenGL SSBO(GL_SHADER_STORAGE_BUFFER)用以在片元着色器中存储片元处模型坐标计算出的体素单元信息;
S3:如图2所示,基于S2中包围盒定义计算上、前、右三个方向的视图与正交投影矩阵信息。如图3、图4所示,关闭openGL背面剔除、深度测试和多重采样,分三次以前、后、上三个方向的视图与投影矩阵构建OpenGL光栅化过程,在FS中通过out_FragPos、u_VoxelStep、u_BoxMin、u_VoxelResolution计算光栅化像元对应模型表面的体素坐标并将该体素坐标对应标记值加一;
S4:如图4所示,S3中已基于前、上、后三个方向的获得对应视图光栅化体素信息(由于是采用正交投影矩阵,故而前与后、上与下、右与左,三对方向构建的视图光栅化体素信息是相同的),为确保最终模型边界体素无孔洞和裂缝,需将上述三次Pass的光栅化体素求解其并集;
S5:如图5所示,将二维图像“水漫填充”算法扩展到三维体素空间,并以体素空间坐标最大值点(numX-1,numY-1,numZ-1)为种子采用前、后、上、下、左、右六个方向递归填充模型非边界体素区域(S2中已基于体素单元扩展了体素空间大小,确保了体素空间最外侧体素一定是非模型边界体素)。最后将原始体素空间与上述水漫填充所得非模型边界体素做差集,即可得到最终的模型全体素数据。
实施例2
如图6所示,根据本发明示例性实施例的电子设备(例如具备程序执行功能的计算机服务器),其包括至少一个处理器,电源,以及与所述至少一个处理器通信连接的存储器和输入输出接口;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一实施例所公开的方法;所述输入输出接口可以包括显示器、键盘、鼠标、以及USB接口,用于输入输出数据;电源用于为电子设备提供电能。
本领域技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
当本发明上述集成的单元以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1. 一种基于GPU的三维模型快速体素化方法,其特征在于,包括S1:遍历三维模型所有三角形获取模型的AABB包围盒boxMin,boxMax;S2:设置体素单元的大小,基于体素单元大小扩展模型包围盒坐标,基于扩展的包围盒与体素单元大小定义初始体素区域,基于初始体素区域设置并初始化OpenGL SSBO缓冲;S3:基于所述步骤S2中包围盒定义计算上、前、右三个方向的视图与正交投影矩阵信息;关闭openGL背面剔除、深度测试和多重采样,分三次以前、后、上三个方向的视图与投影矩阵构建OpenGL光栅化过程,计算光栅化像元对应模型表面的体素坐标并将该体素坐标对应标记值加一,得到三个视图的光栅化体素信息;S4:将三个视图的光栅化体素信息并集后,求解得到模型边界体素信息;S5:以模型边界体素信息的体素空间坐标最大值点为种子采用前、后、上、下、左、右六个方向递归填充模型的非边界体素区域;那么,所述模型全体素数据为初始体素区域与非边界体素区域的差集。
2.一种电子设备,其特征在于,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110197354.XA CN112927334B (zh) | 2021-02-22 | 2021-02-22 | 一种基于gpu的三维模型快速体素化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110197354.XA CN112927334B (zh) | 2021-02-22 | 2021-02-22 | 一种基于gpu的三维模型快速体素化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112927334A CN112927334A (zh) | 2021-06-08 |
CN112927334B true CN112927334B (zh) | 2023-06-16 |
Family
ID=76170110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110197354.XA Active CN112927334B (zh) | 2021-02-22 | 2021-02-22 | 一种基于gpu的三维模型快速体素化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112927334B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116862816B (zh) * | 2023-07-28 | 2024-01-26 | 杭州雅智医疗技术有限公司 | 一种基于三维形态学的模型膨胀方法、装置及应用 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630418A (zh) * | 2009-08-06 | 2010-01-20 | 白晓亮 | 三维模型的测量和重建一体化方法及其系统 |
CN102055996A (zh) * | 2011-02-23 | 2011-05-11 | 南京航空航天大学 | 基于空间逐层扫描的真三维立体显示系统及其显示方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11201507679RA (en) * | 2013-03-15 | 2015-10-29 | Univ Carnegie Mellon | A supervised autonomous robotic system for complex surface inspection and processing |
CN103236079B (zh) * | 2013-04-19 | 2015-07-22 | 浙江理工大学 | 一种基于三维模型体素化的内部球改进构造方法 |
US10403037B1 (en) * | 2016-03-21 | 2019-09-03 | URC Ventures, Inc. | Verifying object measurements determined from mobile device images |
CN110009727B (zh) * | 2019-03-08 | 2023-04-18 | 深圳大学 | 一种具有结构语义的室内三维模型自动重构方法及系统 |
CN111243094B (zh) * | 2020-01-09 | 2021-09-28 | 南京理工大学 | 一种基于点灯法的三维模型精确体素化方法 |
-
2021
- 2021-02-22 CN CN202110197354.XA patent/CN112927334B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630418A (zh) * | 2009-08-06 | 2010-01-20 | 白晓亮 | 三维模型的测量和重建一体化方法及其系统 |
CN102055996A (zh) * | 2011-02-23 | 2011-05-11 | 南京航空航天大学 | 基于空间逐层扫描的真三维立体显示系统及其显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112927334A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zach | Fast and high quality fusion of depth maps | |
US10535187B2 (en) | Voxelization techniques | |
KR102650215B1 (ko) | 영상 처리 방법 및 장치 | |
EP3679496B1 (en) | Method and device for infrastructure design using 3d reality data | |
CN107464286B (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
US10482629B2 (en) | System, method and computer program product for automatic optimization of 3D textured models for network transfer and real-time rendering | |
US8400447B1 (en) | Space partitioning trees using planes selected from a discrete set of orientations | |
US20110157157A1 (en) | System and method for displaying a three-dimensional object | |
CN112927334B (zh) | 一种基于gpu的三维模型快速体素化方法 | |
Liu et al. | Creating simplified 3D models with high quality textures | |
US11955246B2 (en) | Unified anisotropic volume and surface mesh storage | |
CN113129420B (zh) | 一种基于深度缓冲加速的光线追踪渲染方法 | |
EP4287134A1 (en) | Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions | |
US20230326129A1 (en) | Method and apparatus for storing visibility data of three-dimensional model, device, and storage medium | |
Belyaev et al. | Adaptive algorithm for accelerating direct isosurface rendering on GPU | |
CN112215959A (zh) | 一种利用图片切割的三维模型贴图系统 | |
US11954802B2 (en) | Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions | |
CN114037811B (zh) | 基于有向距离场的3d温场图渲染方法、装置、介质和设备 | |
Romanyuk et al. | Ways to improve performance of anisotropic texture filtering | |
US20230394767A1 (en) | Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions | |
WO2023184139A1 (en) | Methods and systems for rendering three-dimensional scenes | |
WO2023179091A1 (zh) | 三维模型渲染方法、装置、设备、存储介质及程序产品 | |
Lundqvist et al. | Parallax Voxel Ray Marcher | |
Grant | 3D Sandpiles and Efficient Computation of the Circular Sandpile | |
Lysykh et al. | The realistic rendering of scenes defined by the cloud of points |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |