模型处理方法、装置、电子设备和存储介质与流程

文档序号:29927270发布日期:2022-05-07 11:34阅读:82来源:国知局
模型处理方法、装置、电子设备和存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种模型处理方法、装置、电子设备和存储介质。


背景技术:

2.随着城市建设和计算机技术的快速发展,应用计算机完成建筑物的设计工作已经成为常用手段,并且从二维建筑图纸的设计逐渐转变为三维建筑模型的设计。
3.目前,为了方便开发人员建模,往往将建筑信息模型的二维效果和三维效果同时显示。在编辑2d模型数据时,可在界面另一区域中显示相应的3d模型效果图。同样,在编辑3d模型数据时,也可在界面的另一区域显示相应的2d模型效果图。
4.相关技术中,在渲染模型数据时,2d模型和3d模型的显示都是由主线程在当前屏幕渲染的,容易给主线程造成卡顿。


技术实现要素:

5.本技术提供了一种模型处理方法、装置、电子设备和存储介质,用以解决现有技术中,在渲染模型数据时,2d模型和3d模型的显示都是由主线程在当前屏幕渲染的,容易给主线程造成卡顿的问题。
6.第一方面,本技术实施例提供了一种模型处理方法,包括:
7.获取待编辑模型的初始模型数据;
8.调用第一线程获取用户对所述待编辑模型的编辑操作,确定所述编辑操作对应的编辑数据,基于所述初始模型数据和所述编辑数据确定第一渲染模型数据,并基于所述第一渲染模型数据进行渲染得到第一渲染模型;
9.调用第二线程基于所述初始模型数据和所述编辑数据确定第二渲染模型数据,并基于所述第二渲染模型数据进行渲染得到第二渲染模型。
10.可选的,所述调用第一线程确定所述编辑操作对应的编辑数据,包括:
11.调用所述第一线程基于所述编辑操作,确定所述用户对所述待编辑模型中编辑的目标构件;
12.获取对所述目标构件的调整数据;
13.基于所述调整数据和所述目标构件的初始构件数据,确定所述编辑数据。
14.可选的,所述调用第一线程确定所述编辑操作对应的编辑数据之后,还包括:
15.将所述编辑数据存储至预设的数据共享区;
16.所述调用第二线程基于所述初始模型数据和所述编辑数据确定第二渲染模型数据,包括:
17.调用所述第二线程从所述数据共享区获取所述编辑数据,基于所述初始模型数据和所述编辑数据确定所述第二渲染模型数据。
18.可选的,所述调用第二线程基于所述初始模型数据和所述编辑数据确定第二渲染
模型数据,包括:
19.调用所述第二线程根据所述编辑数据对所述初始模型数据进行更新得到更新模型数据;
20.确定所述第二线程对应的渲染维度,所述渲染维度指示所述待编辑模型渲染后呈现的维度;
21.将所述更新模型数据转换为所述渲染维度的第二渲染模型数据。
22.可选的,所述渲染维度为三维时,所述将所述更新模型数据转换为所述渲染维度的第二渲染模型数据,包括:
23.获取所述待编辑模型的标高数据;
24.根据所述标高数据和所述更新模型数据确定所述第二渲染模型数据。
25.可选的,所述渲染维度为二维时,所述将所述更新模型数据转换为所述渲染维度的第二渲染模型数据,包括:
26.确定所述更新模型数据中的标高数据;
27.确定所述更新模型数据中除所述标高数据外的数据为所述第二渲染模型数据。
28.可选的,所述基于所述第二渲染模型数据进行渲染,包括:
29.将所述第二渲染模型数据在预设的缓存区进行渲染,得到渲染结果;
30.在屏幕中显示所述渲染结果。
31.第二方面,本技术实施例提供了一种模型处理装置,包括:
32.获取模块,用于获取待编辑模型的初始模型数据;
33.第一渲染模块,用于调用第一线程获取用户对所述待编辑模型的编辑操作,确定所述编辑操作对应的编辑数据,基于所述初始模型数据和所述编辑数据确定第一渲染模型数据,并基于所述第一渲染模型数据进行渲染得到第一渲染模型;
34.第二渲染模块,用于调用第二线程基于所述初始模型数据和所述编辑数据确定第二渲染模型数据,并基于所述第二渲染模型数据进行渲染得到第二渲染模型。
35.第三方面,本技术实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
36.所述存储器,用于存储计算机程序;
37.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的模型处理方法。
38.第四方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的模型处理方法。
39.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,通过获取待编辑模型的初始模型数据;调用第一线程获取用户对待编辑模型的编辑操作,确定编辑操作对应的编辑数据,基于初始模型数据和编辑数据确定第一渲染模型数据,并基于第一渲染模型数据进行渲染得到第一渲染模型;调用第二线程基于初始模型数据和编辑数据确定第二渲染模型数据,并基于第二渲染模型数据进行渲染得到第二渲染模型。如此,在待编辑模型进行编辑后渲染时,通过不同的线程计算编辑数据以及渲染,从而能够达到在计算编辑数据的同时,同步进行渲染的效果,使得用户在执行编辑操作时,渲染画面不会因编辑而卡顿,使得渲染的画面更加流畅。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术一实施例提供的模型处理方法的应用场景图;
43.图2为本技术一实施例提供的模型处理方法的流程图;
44.图3为本技术一实施例提供的模型处理装置的结构图;
45.图4为本技术一实施例提供的电子设备的结构图。
具体实施方式
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.在对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
48.线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
49.建筑信息模型(bim)是创建和管理建筑资产信息的整体流程。bim基于由云平台支持的智能模型,将结构化、多领域数据整合在一起,以在其整个生命周期(从规划和设计到施工和运营)内生成资产的数字表示。
50.离屏渲染(offscreen-rendering)指的是gpu在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。即渲染的结果不会直接呈现到当前屏幕上,而是等待合适的时机才会被显示。
51.postmessage:是windows api(应用程序接口)中的一个常用函数,用于将一条消息放入到消息队列中。
52.根据本技术一实施例提供了一种模型处理方法。可选地,在本技术实施例中,上述模型处理方法可以应用于如图1所示的由终端101和服务器102所构成的硬件环境中。如图1所示,服务器102通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如视频服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器102提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于pc、手机、平板电脑等。
53.本技术实施例的模型处理方法可以由服务器102来执行,也可以由终端101来执行,还可以是由服务器102和终端101共同执行。其中,终端101执行本技术实施例的模型处理方法,也可以是由安装在其上的客户端来执行。
54.以服务器执行本技术实施例的模型处理方法为例,图2是根据本技术实施例的一
种可选的模型处理方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
55.步骤201、获取待编辑模型的初始模型数据。
56.一些实施例中,待编辑模型可以是用户已经绘制完毕的建筑信息模型,也可以是用户正在绘制的建筑信息模型。
57.其中,初始模型数据可以是当前在服务器的显示端渲染的模型对应的模型数据。
58.其中,建筑信息模型可以是机场、火车站、汽车站、写字楼、居民楼、医院、博物馆、旅游景区、教堂、学校、公园等等项目的建筑图纸。
59.步骤202、调用第一线程获取用户对待编辑模型的编辑操作,确定编辑操作对应的编辑数据,基于初始模型数据和编辑数据确定第一渲染模型数据,并基于第一渲染模型数据进行渲染得到第一渲染模型。
60.一些实施例中,用户对待编辑模型的编辑操作可以是用户在待编辑模型中增加或删除了其中的部分构件,或者是修改了待编辑模型中部分构件的参数信息。
61.示例性的,以待编辑模型为用户正在绘制的建筑信息模型,用户在绘制过程中,可以从预设的构件库中选择即将要绘制的构件,将该构件拖动到待编辑模型的编辑区,通过对该构件的平移、旋转以及构件参数的修改,完成对该构件的编辑操作。
62.一些实施例中,用户在显示界面对待编辑模型的编辑操作完成后,服务器可调用第一线程,通过第一线程确定该编辑操作对应的编辑数据。
63.其中,在服务器开始对模型进行处理时,会对服务器中的线程进行初始化,使服务器中的线程能够加载到相应的处理逻辑。其中,线程的数量可以依据实际情况进行设置,并在初始化时,为相应的进程加载对应的处理逻辑。另外,在线程初始化后,第一线程中会加载到初始模型数据。
64.具体的,第一线程为服务器中预先配置的线程,其作用主要用于计算编辑数据。
65.在模型编辑的过程中,对某一构件进行编辑后,可能存在其他构件与其具有位置关联,因此,该构件的编辑可能会影响到与其有位置关联的构件的构件参数,从而,第一线程确定的编辑数据中不仅包括了被编辑的目标构件的编辑数据,还包括了与目标构件具有关联关系的构件的编辑数据。
66.在一个可选实施例中,调用第一线程确定编辑操作对应的编辑数据,包括:
67.调用第一线程基于编辑操作,确定用户对待编辑模型中编辑的目标构件;获取对目标构件的调整数据;基于调整数据和目标构件的初始构件数据,确定编辑数据。
68.具体的,用户可以通过鼠标拖动待添加的构件,通过移动和旋转该构件,确定该待添加的构件在待编辑模型中的位置,从而第一线程能够根据用户对鼠标的操作数据获取到对应的编辑数据,即构件的位置数据和方位数据。并且,用户可能会在该待添加的构件的参数进行调整,例如调整其大小或者颜色等,从而第一线程能够根据用户对构件参数信息的修改确定对应的编辑数据,即构件的编辑后的参数信息。
69.进一步的,在得到编辑数据后,第一线程会基于初始模型数据和编辑数据确定第一渲染模型数据,并基于第一渲染模型数据进行渲染得到第一渲染模型。
70.具体的,第一线程在计算得到编辑数据后,先根据编辑数据和初始模型数据确定第一渲染模型数据,进而,根据第一渲染模型数据在第一显示区域,按照第一线程对应的渲染维度,渲染第一渲染模型数据。
71.步骤203、调用第二线程基于初始模型数据和编辑数据确定第二渲染模型数据,并基于第二渲染模型数据进行渲染得到第二渲染模型。
72.一些实施例中,在通过第一线程确定编辑数据后,服务器调用第二线程基于初始模型数据和编辑数据确定第二渲染模型数据,从而依据第二渲染模型数据进行渲染。
73.如此,通过不同的线程,分别计算编辑数据以及渲染,从而能够达到在计算编辑数据的同时,同步进行渲染的效果,使得用户在执行编辑操作时,渲染画面不会因编辑而卡顿,使得渲染的画面更加流畅。
74.在一个可选实施例中,调用第二线程基于初始模型数据和编辑数据确定第二渲染模型数据,包括:
75.调用第二线程根据编辑数据对初始模型数据进行更新得到更新模型数据;确定待编辑模型的渲染维度,渲染维度指示待编辑模型渲染后呈现的维度;将更新模型数据转换为渲染维度的第二渲染模型数据。
76.一些实施例中,在第一线程确定编辑数据后,第二线程获取该编辑数据,并依据该编辑数据更新初始模型数据,得到更新模型数据。由于在对模型渲染时,往往需要将2d效果和3d效果同时显示,因此,在得到更新模型数据后,在更新模型数据为二维模型数据时,确定待编辑模型的渲染维度为三维;在更新模型数据为三维模型数据时,确定待编辑模型的渲染维度为二维。
77.在确定待编辑模型的渲染维度后,便可以将更新模型数据转换为第二渲染模型数据,从而在渲染时,能够得到渲染维度的渲染效果。
78.进一步的,渲染维度为三维时,将更新模型数据转换为渲染维度的第二渲染模型数据,包括:
79.获取待编辑模型的标高数据;根据标高数据和更新模型数据确定第二渲染模型数据。
80.进一步的,渲染维度为二维时,将更新模型数据转换为渲染维度的第二渲染模型数据,包括:
81.确定更新模型数据中的标高数据;确定更新模型数据中除标高数据外的数据为第二渲染模型数据。
82.一些实施例中,二维模型数据对于三维模型数据而言多了一维,通过定义基础二维数据(包括点、线、面等),然后根据标高赋予二维的点线面有了高度信息,然后同步可以绘制筑3d的点线面,定义一类根据面和一个拉伸方向定义基础拉伸体结构,这样就可以表达一个三维的构件结构,更复杂的形体也是通过以上的基础数据组合而成,包括复杂一点的挖洞,属于构造形体中两个拉伸体的布尔运算,可以做交集并集补集等。
83.如此,通过标高数据实现二维模型数据和三维模型数据的转换。
84.在一个可选实施例中,调用第一线程确定编辑操作对应的编辑数据之后,还包括:
85.将编辑数据存储至预设的数据共享区;
86.进一步的,调用第二线程基于初始模型数据和编辑数据确定第二渲染模型数据,包括:
87.调用第二线程从数据共享区获取编辑数据,基于初始模型数据和编辑数据确定第二渲染模型数据。
88.一些实施例中,通过设置数据共享区存储编辑数据,在第一线程计算编辑数据后,存储在数据共享区,从而第二线程在进行渲染时,能够直接从数据共享区获取到编辑数据,以便进一步进行模型渲染。
89.在一个可选实施例中,基于第二渲染模型数据进行渲染,包括:
90.将第二渲染模型数据在预设的缓存区进行渲染;渲染结果在屏幕中进行显示。
91.一些实施例中,通过将第二渲染模型数据在预设的数据缓存去进行渲染,实现了离屏渲染,从而,对用于而言,不会产生视觉上的卡顿。其中,第二渲染模型数据的渲染结果可以在屏幕中预设位置中进行显示,在根据编辑数据对初始模型数据更新后,得到的更新模型数据也会在屏幕中不同的位置进行渲染显示,从而实现了二维模型数据和三维模型数据同时显示的效果。
92.在一个具体实施例中,以初始模型数据为二维数据为例,本技术的模型处理方法,具体包括:
93.步骤1:预先在内存中设置绘制数据共享区以及创建一个新的缓存区(用于离屏渲染),该数据共享区用于存储2d编辑数据和3d编辑数据。
94.在模型编辑软件中,有两个窗口,一个为编辑窗口,一个为编辑模型对应的2d模型或3d模型的展示窗口,为防止编辑卡顿,为这两个窗口设置不同的进程,通过不同的进程对模型编辑数据进行分别计算、渲染,可防止卡顿。
95.其中,编辑窗口即为上述的更新模型数据显示的窗口,展示窗口即为上述的渲染模型数据的显示窗口。
96.步骤2:若当前编辑的数据为2d数据,则主线程(即上述第一线程)根据2d编辑数据对2d模型进行渲染,并将2d编辑数据存储到数据共享区。
97.编辑的的过程可以是用户先从构件库中选取一个构件,将构件拖动到编辑区的相应位置,同时,还可以在相应的构件参数信息编辑区对构件的某些参数进行调整。
98.2d编辑数据包括:选取的构件驱动参数信息和/或鼠标操作信息,步骤3:worker线程(即上述的第二线程)从数据共享区获取2d编辑数据,对该2d编辑数据进行计算得到3d模型的数据。
99.步骤4:worker线程将3d模型数据在新的缓存区进行渲染,并将渲染结果显示到屏幕的相应位置。
100.主进程将渲染后的模型展示在编辑窗口,worker进程将渲染后的模型展示在展示窗口。
101.其中,需要注意的是,本实施例可以在具备多核cpu的电脑上能启用多线程,以提高处理效率,因此,在进行模型处理前,可预先判断服务器是否具有多核cpu。
102.具体的,本发明采用云建模工具,开发人员在浏览器端操作软件进行建模。可在浏览器端判断是否具有多核cpu,然后就可以根据浏览器提供的webworker接口打开worker,并且在主线程中绘制场景,根据浏览器提供的离屏渲染接口,共享主线程中的绘制数据,这样是为了避免数据从主线程拷贝传递到worker线程中的时间损耗。
103.在交互部分,因为worker线程中并不操作ui(用户界面,user interface)相关的信息,避免多个线程同时操作ui导致错乱,因此需要实现一个由主线程传递交互命令到worker线程中的通信事件,通过在主线程获取到鼠标点击的位置和移动的距离,传递到
unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
118.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的模型处理方法。
119.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
120.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
121.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1