CN116363280A - 一种三维模型生成方法、装置及设备 - Google Patents
一种三维模型生成方法、装置及设备 Download PDFInfo
- Publication number
- CN116363280A CN116363280A CN202111615184.9A CN202111615184A CN116363280A CN 116363280 A CN116363280 A CN 116363280A CN 202111615184 A CN202111615184 A CN 202111615184A CN 116363280 A CN116363280 A CN 116363280A
- Authority
- CN
- China
- Prior art keywords
- wall body
- thickness
- anchor points
- determining
- wall
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种三维模型生成方法、装置及设备,通过获取房间的二维图像信息,所述二维图像信息包括房间中各墙体的位置、厚度、高度;根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。本申请提供的方法可以解决将三维模型导入到WEB 3D可视化系统的实际过程中对楼层的建模周期长,对模型修改较为繁琐且成本较高的问题。
Description
技术领域
本发明涉及可视化技术领域,具体涉及一种三维模型生成方法、装置及设备。
背景技术
通常WEB 3D可视化的项目中需要对项目的建筑、楼层、房间进行3D建模,模型通常使用一个或多个文件来表示(如obj、fbx、glb等),文件中包含了模型的顶点信息构成了模型的基础形状、模型的贴图信息和材质信息构成了模型的外观样式,每种模型文件都有自己的文件格式规范,但是解析到系统中运行时其内容格式都是相同的。
如图1所示为将3D模型导入到WEB 3D可视化系统的过程,所述过程对楼层的建模周期长,对模型修改也较为繁琐且成本较高,模型的材质定制化不兼容也会导致后期维护较为困难。
发明内容
本申请实施例提供了一种三维模型生成方法,以解决将3D模型导入到WEB 3D可视化系统的实际过程中对楼层的建模周期长,对模型修改也较为繁琐且成本较高,模型的材质定制化不兼容的问题。
第一方面,本申请实施例提供了一种三维模型生成方法,所述方法包括:获取房间的二维图像信息,所述二维图像信息包括房间中各墙体的位置、厚度、高度;
根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;
对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
在一种可能的实施方式中,对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形,包括:
对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置;
确定同一锚点位置不存在绘线的交点时,绘制经过所述锚点并与两侧绘线相交的直线,确定所述直线与两侧绘线的交点为墙体的顶角位置;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形。
在一种可能的实施方式中,对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线,包括:
对于存在连接关系的两个锚点,以所述两个锚点的连线为中线,根据所述墙体的厚度,在所述中线的两侧分别绘制相互平行的线段R1和线段R2,所述线段R1和线段R2的同一侧端点与对应的一个锚点共线,所述共线所在的直线与线段R1和线段R2垂直;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点位置存在两个不同方向相交的线段时,确定两个线段相交的交点的位置为墙体内侧的顶角位置;
确定同一锚点位置存在两个不同方向未相交的线段时,将所述未相交的线段延长,确定延长后相交的交点的位置为墙体外侧的顶角位置。
在一种可能的实施方式中,确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置之前,还包括:
对于存在连接关系的两个锚点、及与所述两个锚点连线平行的线段R1和线段R2的端点,以预设时针顺序连接生成多边形路径;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点所在的两个多边形路径存在两个不同方向相交的线段时,确定相交的第一交点,将所述两个多边形路径中另两个线段延长得到第二交点;
对于各多边形路径,将第一交点所在的线段R1/R2对应的端点替换为交点,将另一平行线段R2/R1同一端的端点替换为第二交点;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形,包括:
根据替换后第一交点、第二交点的位置及未被替换的多边形路径的端点,重新绘制多边形路径,得到各墙体的带厚度的投影图形。
在一种可能的实施方式中,将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型,包括:
将各墙体带厚度的投影图形,添加到利用图形创建函数创建的图形对象中;
利用图形拉伸函数对所述图形对象中的投影图形沿投影方向对各墙体的高度进行调整,得到各墙体带厚度的投影图形的三维模型;
根据房间对应各锚点的位置及各锚点与各墙体的映射关系,将各墙体带厚度的投影图形的三维模型进行组合,得到该房间对应的三维模型。
在一种可能的实施方式中,所述二维图像信息还包括门框的位置、宽度信息,确定所述墙体的带厚度的投影图形后,还包括:
将门框的位置在所述各墙体的带厚度的投影图形中进行标注,得到标注门框位置的所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整后,还包括:
根据标注的门框位置,对调整后的墙体中生成立体门框。
在一种可能的实施方式中,所述得到各墙体带厚度的投影图形的三维模型后,包括:
接收对所述各墙体带厚度的投影图形的三维模型设置材质的指示信息;
根据所述指示信息,利用材质设置函数对各墙体进行设置。
在一种可能的实施方式中,所述确定所述墙体的带厚度的投影图形后,包括:
接收对所述墙体的带厚度的投影图形进行编辑的指示信息;
根据所述指示信息,利用2D配置工具对所述墙体的带厚度的投影图形进行编辑,所述2D配置工具为通过编程语言实现的逻辑指令。
第二方面,本申请实施例提供了一种三维模型生成装置,所述装置包括:
获取信息模块,获取房间的二维图像信息,用于所述二维图像信息包括房间中各墙体的位置、厚度、高度;
获取锚点模块,用于根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;
确定投影图形模块,用于对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;
生成三维模型模块,用于将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
第三方面,本申请实施例提供了一种三维模型生成设备,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行三维模型生成方法中任何一项方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行三维模型生成方法中任何一项方法。
本申请实施例提供了一种三维模型生成方法、装置及设备,根据二维图像信息获取的房间中各墙体位置所标注的锚点、存在连接关系的锚点以及墙体的厚度,将二维图像转换为三维模型,解决了将三维模型导入到WEB 3D可视化系统的实际过程中对楼层的建模周期长,对模型修改也较为繁琐且成本较高,模型的材质定制化不兼容的问题。
附图说明
图1为根据本发明示例性实施例示例的一种传统三维模型可视化的文件加载流程示意图;
图2为根据本发明示例性实施例示例的一种三维模型生成方法可视化的文件加载流程示意图;
图3为根据本发明示例性实施例示例的一种三维模型生成方法流程示意图;
图4为根据本发明示例性实施例示例的一种各墙体不带厚度的投影图形;
图5为根据本发明示例性实施例示例的一种各墙体带厚度的投影图形;
图6为根据本发明示例性实施例示例的一种确定墙体内/外侧顶点位置示意图;
图7为根据本发明示例性实施例示例的一种利用2D配置工具编辑各墙体带厚度的投影图形的示意图;
图8a为根据本发明示例性实施例示例的一种房间三维模型示意图;
图8b为根据本发明示例性实施例示例的房间三维模型示意图;
图8c为根据本发明示例性实施例示例的房间三维模型示意图;
图9为根据本发明示例性实施例示例的一种三维模型生成装置示意图;
图10为根据本发明示例性实施例示例的一种三维模型生成设备示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本申请实施例中出现的专业术语进行介绍:
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript为基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
Three.js:WebGL是基于OpenGL设计的面向web的图形标准,提供了一系列JavaScript API,通过这些API进行图形渲染将得以利用图形硬件从而获得较高性能。而Three.js是通过对WebGL接口的封装与简化而形成的一个易用的图形库,WebGL门槛相对较高,需要相对较多的数学知识(线性代数、解析几何)。因此,想要短时间上手WebGL还是挺有难度的。Three.js对WebGL提供的接口进行了非常好的封装,简化了很多细节,大大降低了学习成本。并且,几乎没有损失WebGL的灵活性。
本申请提供的三维模型生成方法应用于3D环境中,包括但不限于WEB 3D可视化系统。本申请实施例提出的三维模型生成方法可视化的文件加载流程与传统方法不同,如图2所示,在3D环境中,通过获取的二维图像信息生成三维模型,还可以利用本申请实施例提供的2D配置工具根据用户的需求对二维图像的信息进行修改,利用修改后的二维图像生成三维模型。
以房间的三维模型生成为例,目前房间的三维模型生成方法建模周期长、对模型修改成本高而且需要操作者了解建模软件,基于此,本申请实施例提供了一种三维模型生成方法,如图3所示,该方法包括:
S301:获取房间的二维图像信息,所述二维图像信息包括房间中各墙体的位置、厚度、高度。
二维图像通过制图软件进行绘制,绘制图像所需的房间墙体的位置和墙体厚度等信息可以为根据用户的需求进行设计,也可以对实际房间的墙体的位置、厚度、高度进行测量,根据测量得到的房间各墙体的位置、厚度、高度信息进行绘制,然后将绘制的CAD图像导出为.png格式的二维图像。
S302:根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点。
以S301得到的二维图像作为底图,手动标注图中房间各墙体位置对应的锚点,手动连接图中存在连接关系的两个锚点,得到如图4所示的各墙体不带厚度的投影图形。墙体通过位于墙体端处的两个锚点来定位,例如图4中墙体AF由锚点A和锚点F定位;墙体AB由锚点A和锚点B定位;墙体BC由锚点B和锚点C定位;墙体BE由锚点B和锚点E定位;墙体BD由锚点B和锚点D定位。
S303:对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形。
在利用制图软件绘制二维图像的过程中,也同样对房间各墙体的厚度进行设置,将所述二维图像放到Canvas 2D后,读取房间各墙体的厚度信息,其中各墙体的厚度可以不同。
由于考虑到可能出现的对透明的3D对象进行渲染的问题,因此在生成墙体的带厚度的投影图形的过程中,需要对每一面墙体生成单独的投影图形。在本申请实施例中,将房间各墙体按照一定的顺序依次生成带厚度的投影图形,并非对所有墙体一次性生成带厚度的投影图形,所述顺序可以根据用户的需求进行设置。
S304:将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
将根据S303获得的各墙体带厚度的投影图形以二维图像为标准进行组合得到房间的平面图像,如图5所示,其中墙体AB和墙体AF之间存在细小间隙,以白线ab为基准进行组合。在对各墙体的高度进行调整的过程中,需要对每一面墙体分别进行高度的调整得到各墙体对应的三维模型,将各墙体对应的三维模型按照固定的方式进行组合,例如:墙体AF对应的三维模型与墙体AB对应的三维模型相连接。
在一种可能的实施方式中,可以根据项目需求仅对某一墙体进行高度的调整,或者将不同的墙体调整为不同的高度。
本申请实施例提供了一种三维模型生成方法,根据二维图像信息获取的房间中各墙体位置所标注的锚点、存在连接关系的锚点以及墙体的厚度,将二维图像转换为三维模型。利用本申请实施例提供的方法,能够解决将三维模型导入到WEB 3D可视化系统的实际过程中对楼层的建模周期长、对模型修改繁琐且成本高的问题。
确定所述墙体的带厚度的投影图形具体可以通过如下步骤:
1、对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线。
对于存在连接关系的两个锚点,以所述两个锚点的连线为中线,根据所述墙体的厚度,在所述中线的两侧分别绘制相互平行的线段R1和线段R2,所述线段R1和线段R2的同一侧端点与对应的一个锚点共线,所述共线所在的直线与线段R1和线段R2垂直。
如图6所示,以锚点A和锚点B的连线为中线分别在A、B两个锚点的连线AB两侧作与AB平行的线段R1(AB1-AB2)和线段R2(AB3-AB4),例如墙厚20厘米,则线段R1和线段R2分别距离连线AB10厘米。线段R1的端点AB1、线段R2的AB4与锚点A共线,线段R1的端点AB2、线段R2的AB3与锚点B共线,其中共线所在直线AB4-A-AB1和AB3-B-AB2均与AB两侧绘制的线段R1和线段R2垂直。
2、确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置。
在一种可能的实施方式中,确定同一锚点位置存在两个不同方向相交的线段时,确定两个线段相交的交点的位置为墙体内侧的顶角位置;
确定同一锚点位置存在两个不同方向未相交的线段时,将所述未相交的线段延长,确定延长后相交的交点的位置为墙体外侧的顶角位置。
如图6所示,对于锚点A,存在两个不同方向的相交线段:AB下侧的R1和AF右侧的R2相交于X点,确定X点的位置为墙体中AB锚点A对应的内侧顶角的位置;
对于锚点A,存在两个不同方向的未相交线段:AB上侧的R2和AF左侧的R1相交于Z点,确定Z点的位置为墙体AB中锚点A对应的外侧顶角的位置。
3、确定同一锚点位置不存在绘线的交点时,绘制经过所述锚点并与两侧绘线相交的直线,确定所述直线与两侧绘线的交点为墙体的顶角位置。
如图6所示,点F的位置不存在绘线的交点,则绘直经过AF2-F-AF3的直线,所述点AF2、A、AF3共线且共线所在直线与AF两侧绘制的线段R1和线段R2垂直,直线AF2-F-AF3与AF两侧绘线AF1-AF2和AF4-AF3的交点AF3为墙体AF中锚点F对应的内侧顶角的位置,点AF2为墙体AF中锚点F对应的外侧顶角的位置。
4、对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形。
以图6中墙体AB为例,当确定墙体AF对应的锚点A和锚点F以及锚点A内侧墙角位置X、外侧墙角位置Z,锚点F对应的内侧墙角位置AF3、外侧墙角位置AF2,以顺时针顺序连接A-X-AF3-F-AF2-Z-A,得到锚点A和锚点B对应墙体AB的带厚度的投影图形。
在一种可能的实施方式中,在确定所述交点的位置为墙体外侧或内侧的顶角位置之前,还包括:
对于存在连接关系的两个锚点、及与所述两个锚点连线平行的线段R1和线段R2的端点,以预设时针顺序连接生成多边形路径;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点所在的两个多边形路径存在两个不同方向相交的线段时,确定相交的第一交点,将所述两个多边形路径中另两个线段延长得到第二交点;
对于各多边形路径,将第一交点所在的线段R1/R2对应的端点替换为交点,将另一平行线段R2/R1同一端的端点替换为第二交点;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形,包括:
根据替换后第一交点、第二交点的位置及未被替换的多边形路径的端点,重新绘制多边形路径,得到各墙体的带厚度的投影图形。
如图6所示,根据存在连接关系的锚点A和锚点F,以及AF两侧相互平行的线段R1的端点AF1、AF2和线段R2的端点AF3、AF4,以顺时针的顺序依次连接A-AF4-AF3-F-AF2-AF1-A,得到墙体AF对应的多边形路径;根据存在连接关系的锚点A和锚点B,以及AB两侧相互平行的线段R1的端点AB1、AB2和线段R2的端点AB3、AB4,以顺时针的顺序依次连接A-AB4-AB3-B-AB2-AB1-A,得到墙体AB对应的多边形路径。锚点A对应的多边形路径A-AF4-AF3-F-AF2-AF1-A和A-AB4-AB3-B-AB2-AB1-A,线段AF3-AF4与线段AB1-AB2相交于第一交点X,线段AF2-AF1的延长线于AB3-AB4的延长线相交于第二交点Z。将第一交点X代替锚点A对应的多边形路径A-AF4-AF3-F-AF2-AF1-A中的AF4;将第二交点Z代替锚点A对应的多边形路径A-AF4-AF3-F-AF2-AF1-A中的AF1,将A-X-AF3-F-AF2-AF1-Z-A按照顺时针顺序依次连接,得到墙体AF对应的带厚度的投影图形。
需要注意的是,连接顺序可以为顺时针顺序也可以为逆时针顺序,墙体AB对应的带厚度的投影图形确定锚点B对应的内、外侧墙角的位置才能确定,与锚点B存在连接关系的有锚点C、锚点D和锚点E,因此需要综合考虑BC、BD、BE两侧绘线的交点。
确定各墙体的带厚度的投影图形后,将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型,包括:
将各墙体带厚度的投影图形,添加到利用图形创建函数创建的图形对象中;
利用图形拉伸函数对所述图形对象中的投影图形沿投影方向对各墙体的高度进行调整,得到各墙体带厚度的投影图形的三维模型;
根据房间对应各锚点的位置及各锚点与各墙体的映射关系,将各墙体带厚度的投影图形的三维模型进行组合,得到该房间对应的三维模型。
在一种可能的实施方式中,可以通过THREE.js框架的图像创建函数THREE.Shape和图像拉伸函数THREE.ExtrudeGeometry实现二维图像的三维模型生成,Three.js框架对WebGL提供的接口进行了非常好的封装,简化了很多细节,大大降低了学习成本。并且,几乎没有损失WebGL的灵活性。
具体的,首先利用THREE.Shape创建一个空的图像列表;然后将各墙体带厚度的投影图形分别添加到该图像列表中,并分别对各墙体带厚度的投影图形沿着投影方向进行高度的调整,得到各墙体带厚度投影图形的三维模型;在分别对各墙体带厚度的投影图形沿着投影方向进行高度的调整后,可以接收对所述各墙体带厚度的投影图形的三维模型设置材质的指示信息;并根据所述指示信息,利用材质设置函数THREE.Mesh对各墙体进行设置;最后,将各墙体带厚度的投影图形的三维模型根据房间对应各锚点的位置及各锚点与各墙体的映射关系进行组合,得到该房间对应的三维模型。
在一种可能的实施方式中,所述二维图像信息还包括门框的位置、宽度信息,确定所述墙体的带厚度的投影图形后,还包括:
将门框的位置在所述各墙体的带厚度的投影图形中进行标注,得到标注门框位置的所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整后,还包括:
根据标注的门框位置,对调整后的墙体中生成立体门框。
在二维图像信息中只包括门框的位置信息和宽度信息,并不包括门框距墙体上边界的距离和该门框距地面的距离信息,所述门框距墙体上边界的距离和该门框距地面的距离为可配置项。
如图7所示为利用本申请实施例提供的2D配置工具对所述墙体的带厚度的投影图形进行编辑的示意图,此过程为在确定所述墙体的带厚度的投影图形后,接收对所述墙体的带厚度的投影图形进行编辑的指示信息;根据所述指示信息,利用2D配置工具对所述墙体的带厚度的投影图形进行编辑,所述2D配置工具为通过编程语言实现的逻辑指令。
图中白色矩形为门框,黑色圆点为锚点,白色框线为墙体,当需要对某一墙体进行编辑时,可以选中该墙体,图中黑色边框为选中的墙体,以属性框的形式展示在用户界面上,用户可以根据自身的需求对该墙体的位置、长短和厚度等信息进行编辑。
在一种可能的实施方式中,在确定所述墙体的带厚度的投影图形后,用户可以利用2D配置工具对该投影图形进行如图7所示的编辑,对编辑后的各墙体带厚度的投影图形的高度进行调整,得到如图8a-8c所示的该房间对应的三维模型,也可以不对各墙体带厚度的投影图形进行编辑,直接沿着投影方向进行高度的调整,分别对编辑前和每次编辑的各墙体带厚度的投影图形进行存储,便于后续生成三维模型工作的展开。
在一种可能的实施方式中,所述2D配置工具为通过编程语言实现的逻辑指令,所述编程语言包括但不限于JavaScript等脚本语言,JavaScript脚本语言支持面向对象、命令式、声明式、函数式编程范式。
基于相同的构思,本申请实施例提供了一种三维模型生成装置900,如图9所示,所述装置包括:
获取信息模块901,获取房间的二维图像信息,用于所述二维图像信息包括房间中各墙体的位置、厚度、高度;
获取锚点模块902,用于根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;
确定投影图形模块903,用于对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;
生成三维模型模块904,用于将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
在一种可能的实施方式中,确定投影图形模块对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形,包括:
对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置;
确定同一锚点位置不存在绘线的交点时,绘制经过所述锚点并与两侧绘线相交的直线,确定所述直线与两侧绘线的交点为墙体的顶角位置;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形。
在一种可能的实施方式中,确定投影图形模块对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线,包括:
对于存在连接关系的两个锚点,以所述两个锚点的连线为中线,根据所述墙体的厚度,在所述中线的两侧分别绘制相互平行的线段R1和线段R2,所述线段R1和线段R2的同一侧端点与对应的一个锚点共线,所述共线所在的直线与线段R1和线段R2垂直;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点位置存在两个不同方向相交的线段时,确定两个线段相交的交点的位置为墙体内侧的顶角位置;
确定同一锚点位置存在两个不同方向未相交的线段时,将所述未相交的线段延长,确定延长后相交的交点的位置为墙体外侧的顶角位置。
在一种可能的实施方式中,确定投影图形模块确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置之前,还包括:
对于存在连接关系的两个锚点、及与所述两个锚点连线平行的线段R1和线段R2的端点,以预设时针顺序连接生成多边形路径;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点所在的两个多边形路径存在两个不同方向相交的线段时,确定相交的第一交点,将所述两个多边形路径中另两个线段延长得到第二交点;
对于各多边形路径,将第一交点所在的线段R1/R2对应的端点替换为交点,将另一平行线段R2/R1同一端的端点替换为第二交点;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形,包括:
根据替换后第一交点、第二交点的位置及未被替换的多边形路径的端点,重新绘制多边形路径,得到各墙体的带厚度的投影图形。
在一种可能的实施方式中,生成三维模型模块将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型,包括:
将各墙体带厚度的投影图形,添加到利用图形创建函数创建的图形对象中;
利用图形拉伸函数对所述图形对象中的投影图形沿投影方向对各墙体的高度进行调整,得到各墙体带厚度的投影图形的三维模型;
根据房间对应各锚点的位置及各锚点与各墙体的映射关系,将各墙体带厚度的投影图形的三维模型进行组合,得到该房间对应的三维模型。
在一种可能的实施方式中,所述二维图像信息还包括门框的位置、宽度信息,确定投影图形模块用于确定所述墙体的带厚度的投影图形后,还包括:
将门框的位置在所述各墙体的带厚度的投影图形中进行标注,得到标注门框位置的所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整后,还包括:
根据标注的门框位置,对调整后的墙体中生成立体门框。
在一种可能的实施方式中,所述确定各墙体带厚度的投影图形的三维模型后,包括:
生成三维模型模块用于接收对所述各墙体带厚度的投影图形的三维模型设置材质的指示信息,根据所述指示信息,利用材质设置函数对各墙体进行设置。
在一种可能的实施方式中,所述确定所述墙体的带厚度的投影图形后,包括:
生成三维模型模块用于接收对所述墙体的带厚度的投影图形进行编辑的指示信息,根据所述指示信息,利用2D配置工具对所述墙体的带厚度的投影图形进行编辑,所述2D配置工具为通过编程语言实现的逻辑指令。
基于相同的发明构思,本申请实施例提供了一种三维模型生成设备,如图10所示,所述设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行三维模型生成方法中任何一项方法。
下面参照图10来描述根据本申请的这种实施方式的电子设备130。图10显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
所述处理器131用于读取所述存储器132中的指令并执行,以使所述至少一个处理器能够执行上述实施例提供的一种三维模型生成方法。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种三维模型生成方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种三维模型生成方法的步骤。
另外,本申请还提供一种计算机程序产品,所述计算机程序产品用于使计算机执行上述实施例中任何一项所述的方法。
这些计算机程序指令可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种三维模型生成方法,其特征在于,所述方法包括:
获取房间的二维图像信息,所述二维图像信息包括房间中各墙体的位置、厚度、高度;
根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;
对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
2.根据权利要求1所述的方法,其特征在于,对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形,包括:
对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置;
确定同一锚点位置不存在绘线的交点时,绘制经过所述锚点并与两侧绘线相交的直线,确定所述直线与两侧绘线的交点为墙体的顶角位置;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形。
3.根据权利要求2所述的方法,其特征在于,对于存在连接关系的两个锚点,根据所述墙体的厚度,在所述两个锚点连线的两侧分别绘线,包括:
对于存在连接关系的两个锚点,以所述两个锚点的连线为中线,根据所述墙体的厚度,在所述中线的两侧分别绘制相互平行的线段R1和线段R2,所述线段R1和线段R2的同一侧端点与对应的一个锚点共线,所述共线所在的直线与线段R1和线段R2垂直;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点位置存在两个不同方向相交的线段时,确定两个线段相交的交点的位置为墙体内侧的顶角位置;
确定同一锚点位置存在两个不同方向未相交的线段时,将所述未相交的线段延长,确定延长后相交的交点的位置为墙体外侧的顶角位置。
4.根据权利要求3所述的方法,其特征在于,确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置之前,还包括:
对于存在连接关系的两个锚点、及与所述两个锚点连线平行的线段R1和线段R2的端点,以预设时针顺序连接生成多边形路径;
确定同一锚点位置存在绘线的交点时,确定所述交点的位置为墙体外侧或内侧的顶角位置,包括:
确定同一锚点所在的两个多边形路径存在两个不同方向相交的线段时,确定相交的第一交点,将所述两个多边形路径中另两个线段延长得到第二交点;
对于各多边形路径,将第一交点所在的线段R1/R2对应的端点替换为交点,将另一平行线段R2/R1同一端的端点替换为第二交点;
对于存在连接关系的两个锚点及各锚点对应的顶角位置,以预设时针顺序连接绘线,得到存在连接关系的两个锚点对应墙体的带厚度的投影图形,包括:
根据替换后第一交点、第二交点的位置及未被替换的多边形路径的端点,重新绘制多边形路径,得到各墙体的带厚度的投影图形。
5.根据权利要求1所述的方法,其特征在于,将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型,包括:
将各墙体带厚度的投影图形,添加到利用图形创建函数创建的图形对象中;
利用图形拉伸函数对所述图形对象中的投影图形沿投影方向对各墙体的高度进行调整,得到各墙体带厚度的投影图形的三维模型;
根据房间对应各锚点的位置及各锚点与各墙体的映射关系,将各墙体带厚度的投影图形的三维模型进行组合,得到该房间对应的三维模型。
6.根据权利要求1所述的方法,其特征在于,所述二维图像信息还包括门框的位置、宽度信息,确定所述墙体的带厚度的投影图形后,还包括:
将门框的位置在所述各墙体的带厚度的投影图形中进行标注,得到标注门框位置的所述墙体的带厚度的投影图形;
将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整后,还包括:
根据标注的门框位置,对调整后的墙体中生成立体门框。
7.根据权利要求1所述的方法,其特征在于,所述得到各墙体带厚度的投影图形的三维模型后,包括:
接收对所述各墙体带厚度的投影图形的三维模型设置材质的指示信息;
根据所述指示信息,利用材质设置函数对各墙体进行设置。
8.根据权利要求5所述的方法,其特征在于,所述确定所述墙体的带厚度的投影图形后,包括:
接收对所述墙体的带厚度的投影图形进行编辑的指示信息;
根据所述指示信息,利用2D配置工具对所述墙体的带厚度的投影图形进行编辑,所述2D配置工具为通过编程语言实现的逻辑指令。
9.一种三维模型生成装置,其特征在于,所述装置包括:
获取信息模块,获取房间的二维图像信息,用于所述二维图像信息包括房间中各墙体的位置、厚度、高度;
获取锚点模块,用于根据所述二维图像信息,获取对房间中各墙体位置所标注的锚点及存在连接关系的锚点;
确定投影图形模块,用于对于存在连接关系的两个锚点,根据所述墙体的厚度,确定所述墙体的带厚度的投影图形;
生成三维模型模块,用于将各墙体带厚度的投影图形沿投影方向对各墙体的高度进行调整,得到所述房间对应的三维模型。
10.一种三维模型生成设备,其特征在于,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任何一项所述的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-8中任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615184.9A CN116363280A (zh) | 2021-12-27 | 2021-12-27 | 一种三维模型生成方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615184.9A CN116363280A (zh) | 2021-12-27 | 2021-12-27 | 一种三维模型生成方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116363280A true CN116363280A (zh) | 2023-06-30 |
Family
ID=86937540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111615184.9A Pending CN116363280A (zh) | 2021-12-27 | 2021-12-27 | 一种三维模型生成方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116363280A (zh) |
-
2021
- 2021-12-27 CN CN202111615184.9A patent/CN116363280A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6474995B2 (ja) | スライスデータ作成装置、スライスデータ作成方法、プログラムおよびコンピューター読み取り可能な記録媒体 | |
JP5690496B2 (ja) | コンピュータプログラム、グラフィックディスプレイエディタ、及びコンピュータシステム | |
JP6091371B2 (ja) | スライスデータ作成装置、スライスデータ作成方法、プログラムおよびコンピューター読み取り可能な記録媒体 | |
JP5805322B2 (ja) | 物体のモデルを生成しシミュレートするコンピュータープログラム製品及び方法 | |
EP1462998B1 (en) | Markup language and object model for vector graphics | |
CN106463003B (zh) | 制造带浮雕的三维对象 | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
US20140184599A1 (en) | Parameterizing a 3d modeled object for tessellation | |
WO1992009966A1 (en) | Image synthesis and processing | |
AU2010304681A1 (en) | Method and system enabling 3D printing of three-dimensional object models | |
JPH06223197A (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
CN107450897B (zh) | 图形引擎的跨平台移植方法和装置 | |
CN103729887A (zh) | 三维模型动态显示方法及装置 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
JP2002334347A (ja) | グラフィクスモデルの適応的サンプル距離フィールドを三角形モデルに変換する方法 | |
JP2002329218A (ja) | コンピュータ実現ツールを用いてグラフィクスオブジェクトのサーフェスを編集する方法 | |
JP2002324251A (ja) | グラフィクスオブジェクトを編集する方法 | |
CN116363280A (zh) | 一种三维模型生成方法、装置及设备 | |
CN110033507B (zh) | 模型贴图的内描线绘制方法、装置、设备及可读存储介质 | |
CN113052981A (zh) | 模型的编辑、构建方法及相关设备,计算机存储介质 | |
JPS62251905A (ja) | 対話形グラフイツク入力システム | |
Vyatkin | An Interactive System for Modeling, Animating and Rendering of Functionally Defined Objects | |
JP2002207777A (ja) | 中立面モデルの生成方法 | |
Inui et al. | Quad Pillars and Delta Pillars: Algorithms for Converting Dexel Models to Polyhedral Models | |
KR100624455B1 (ko) | 3차원 그래픽스 환경에서의 라이트맵 처리 방법 및 장치 |
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 |