三维模型的云渲染系统、方法、装置、设备、介质及产品
文献发布时间:2023-06-19 19:28:50
技术领域
本申请涉及云渲染技术领域,特别涉及一种三维模型的云渲染系统、方法、装置、设备、存储介质及产品。
背景技术
随着智能化软件的发展,在工业领域中,为了提升工厂厂房的设计效率,逐渐使用专业的工厂设计软件来提升工厂的设计模拟和仿真。在工厂设计的过程中,首先需要使用绘图工具软件绘制工厂图纸,其次采用模型软件并根据工厂图纸制作工厂的三维模型,最后将工厂的三维模型导入云渲染引擎中进行模型云渲染,最终生成工厂的三维结构仿真图。
在工厂设计的过程中,需要多名员工共同完成整个开发过程,每个员工负责不同的任务,如:员工a负责构建三维模型的外部结构,员工b负责构建三维模型的内部结构,当多个员工分别完成三维模型的构建任务后,将不同部分的三维模型进行整合,再对整合后的三维模型进行云渲染。
然而在上述方法中,需要等所有员工都设计完后才能将不同部分的三维模型进行整合,降低了三维模型的构建效率,进而降低三维模型的云渲染效率。
发明内容
本申请实施例提供了一种三维模型的云渲染系统、方法、装置、设备、存储介质及产品,能够提高三维模型的云渲染效率。所述技术方案如下。
一方面,提供了一种三维模型的云渲染系统,所述系统包括:第一终端、第二终端、云服务器;所述第一终端和所述第二终端与所述云服务器中的目标渲染引擎建立有连接关系,所述目标渲染引擎用于对指定三维模型进行渲染;
所述第一终端,用于接收对所述指定三维模型的第一编辑操作,所述第一编辑操作用于对所述指定三维模型的第一模型部分进行编辑;向所述云服务器发送第一编辑指令;
所述第二终端,用于接收对所述指定三维模型的第二编辑操作,所述第二编辑操作用于对所述指定三维模型的第二模型部分进行编辑;向所述云服务器发送第二编辑指令;
所述云服务器,用于接收所述第一编辑指令和所述第二编辑指令,并基于所述第一编辑指令和所述第二编辑指令,通过所述目标渲染引擎对所述指定三维模型进行渲染;向所述第一终端和所述第二终端反馈渲染结果;
所述第一终端和所述第二终端,还用于接收所述云服务器发送的所述渲染结果,并显示经过编辑的所述指定三维模型。
另一方面,提供了一种三维模型的云渲染方法,所述方法包括:
接收对所述指定三维模型的编辑操作,所述编辑操作用于对指定三维模型的模型部分进行编辑;
向所述云服务器发送编辑指令;
接收所述云服务器发送的渲染结果,并显示经过编辑的所述指定三维模型,其中,所述渲染结果是指所述云服务器根据多个终端分别发送的所述编辑指令,通过目标渲染引擎对所述指定三维模型进行渲染后的结果。
另一方面,提供了一种三维模型的云渲染方法,所述方法包括:
接收多个终端分别发送的编辑指令;
基于所述多个终端分别发送的编辑指令,通过所述目标渲染引擎对所述指定三维模型进行渲染;
向所述多个终端分别反馈渲染结果。
另一方面,提供了一种三维模型的云渲染装置,所述装置包括:
第一接收模块,用于接收对所述指定三维模型的编辑操作,所述编辑操作用于对指定三维模型的模型部分进行编辑;
发送模块,用于向所述云服务器发送编辑指令;
所述接收模块,还用于接收所述云服务器发送的渲染结果,并显示经过编辑的所述指定三维模型,其中,所述渲染结果是指所述云服务器根据多个终端分别发送的所述编辑指令,通过目标渲染引擎对所述指定三维模型进行渲染后的结果。
另一方面,提供了一种三维模型的云渲染装置,所述装置包括:
第二接收模块,用于接收多个终端分别发送的编辑指令;
渲染模块,用于基于所述多个终端分别发送的编辑指令,通过所述目标渲染引擎对所述指定三维模型进行渲染;
反馈模块,用于向所述多个终端分别反馈渲染结果。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述三维模型的云渲染方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的三维模型的云渲染方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的三维模型的云渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实施环境示意图;
图2是本申请一个示例性实施例提供的三维模型的云渲染方法流程图;
图3是本申请另一个示例性实施例提供的三维模型的云渲染方法流程图;
图4是本申请另一个示例性实施例提供的三维模型的云渲染方法流程图;
图5是本申请另一个示例性实施例提供的三维模型的云渲染系统架构图;
图6是本申请另一个示例性实施例提供的三维模型的云渲染方法流程图;
图7是本申请一个示例性实施例提供的操作模型示意图;
图8是本申请另一个示例性实施例提供的剖面图生成示意图;
图9是本申请另一个示例性实施例提供的即时通讯系统结构图;
图10是本申请一个示例性实施例提供的数据库接入示意图;
图11是本申请一个示例性实施例提供的三维模型的云渲染装置结构图;
图12是本申请另一个示例性实施例提供的三维模型的云渲染装置结构图;
图13是本申请另一个示例性实施例提供的三维模型的云渲染装置结构框图;
图14是本申请一个示例性实施例提供的服务器结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
首先,对本申请实施环境进行介绍。图1给出了本申请一个示例性实施例提供的实施环境示意图。该实施环境中包括:第一终端110、第二终端120,服务器130和通信网络140,其中,第一终端110第二终端120服务器130通过通信网络140连接。
第一终端110和第二终端120中均装有目标应用程序111,其中,目标应用程序111是支持工厂设计的应用程序。在一些实施例中,上述目标应用程序111可以实现为模型设计应用,该模型设计应用能够提供三维模型的设计、模拟和仿真渲染等功能。上述模型设计应用可以是单机版的应用程序,也可以是网络联机版的应用程序。
当第一终端110显示目标应用程111的运行界面的过程中,接收到对指定三维模型的第一部分进行编辑的编辑操作,生成第一编辑指令发送至服务器130。
当第二终端120显示目标应用程序111的运行界面的过程中,接收对指定三维模型的第二部分进行编辑的编辑操作,生成第二编辑指令发送至服务器130。
当服务器130接收到第一编辑指令和第二编辑指令后,根据第一编辑指令和第二编辑指令,通过搭载的目标渲染引擎对指定三维模型进行渲染,生成渲染结果反馈至第一终端110和第二终端120。
第一终端110和第二终端120分别接收到渲染结果后,根据渲染结果显示经过编辑的指定三维模型。
上述第一终端110和第二终端可以是可选的,终端可以是台式计算机、膝上型便携计算机、手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层4)播放、智能电视、智能车载等多种形式的终端设备,本申请实施例对此不加以限定。
服务器130包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。可选地,服务器120承担主要计算工作,终端110承担次要计算工作;或者,服务器120承担次要计算工作,终端110承担主要计算工作;或者,服务器130和第一终端110以及第二终端120之间采用分布式计算架构进行协同计算。
值得注意的是,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是云服务器,对此不加以限定。
其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。在一些实施例中,上述服务器还可以实现为区块链系统中的节点。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
结合上述实施环境,对本申请实施例提供的三维模型的云渲染系统进行介绍,该系统包括:第一终端、第二终端、云服务器,示意性的,请参考图2,其示出了本申请一个示例性实施例提供的三维模型的云渲染方法的流程图,如图2所示,该方法包括如下步骤:
步骤210,第一终端接收对指定三维模型的第一编辑操作。
其中,第一编辑操作用于对指定三维模型的第一模型部分进行编辑。
在一些实施例中,第一终端中运行有支持工厂设计功能的目标应用程序,当前显示程序运行界面。
示意性的,编辑操作包括生成部件元素、搭建部件元素、设置部件元素的连接关系、配置部件元素属性、设置模型应用场景等编辑类型中至少一种。其中,部件元素是指组成三维模型的基本构成单位。在一个示例中,当三维模型为三维工厂模型时,部件元素实现为三维工厂模型中的设备部件,其中,上述设备部件包括虚拟仪器、虚拟管道、虚拟部件等工厂中的设备,可选地,部件元素还可以包括三维模型对应的建筑部件,其中,上述建筑部件包括虚拟地面、虚拟墙体、虚拟屋顶、虚拟窗户、虚拟门等。
可选地,将指定三维模型按照结构划分,如:内部结构、外部结构,则第一模型部分为指定三维模型的指定部分结构;或者,将指定三维模型按照功能区域划分,如:功能区域a、功能区域b等,则第一模型部分为指定三维模型的指定功能区域;或者,将指定三维模型的模型生成顺序进行划分,包括构建部件元素、组合部件元素、添加部件属性、设置部件连接关系等,则第一模型部分是指指定三维模型的指定生成步骤,对此不加以限定。
可选地,指定三维模型是当前尚未生成的完整模型,也即,第一编辑操作用于构建指定三维模型的第一模型部分;或者,指定三维模型是当前已经生成的完整模型,也即,第一编辑操作用于修改指定三维模型的第一模型部分。
在一些实施例中,第一终端的程序运行界面中显示编辑区域,在编辑区域内接收第一编辑操作。
可选地,第一终端仅对指定三维模型的第一模型部分具有编辑操作权限,也即,第一终端持有用户仅能够对指定三维模型的第一模型部分进行编辑;或者,第一终端对指定三维模型的第一模型部分、第二模型部分和第三模型进行具有编辑操作权限。
步骤220,第一终端向云服务器发送第一编辑指令。
在一些实施例中,第一编辑指令是指请求通过云服务器中搭载的第一渲染引擎对指定三维模型的第一模型部分进行渲染。其中,第一渲染引擎与第一编辑指令中的第一渲染内容对应。
示意性的,第一编辑指令中包括第一模型部分对应的第一渲染资源要求和第一渲染内容,其中,第一渲染资源要求是指渲染第一模型部分占用云服务器中图形处理器(Graphic Processing Unit,GPU)的资源量。在一个示例中,第一渲染资源要求为4兆。
可选的,第一编辑指令的发送方式包括如下几种方式中至少一种:
1.当第一终端根据第一编辑操作完成对指定三维模型的第一模型部分的编辑过程后,自动向云服务器发送第一编辑指令;
2.当第一终端根据第一编辑操作完成对指定三维模型的第一模型部分的编辑过程后,第一终端接收第一渲染操作,根据第一渲染操作生成第一编辑指令并向云服务器;
3.在根据第一编辑操作对指定三维模型的第一模型部分进行编辑的过程中,当第一模型部分中的第一子部分编辑完成时随即向云服务器发送第一子部分对应的第一编辑指令,当第一模型部分中的第二子部分编辑完成时随即向云服务器发送第二子部分对应的第一编辑指令。
值得注意的是,上述关于第一编辑指令的发送方式仅为示意性的举例,本申请实施例对此不加以限定。
示意性的,云服务器用于向终端提供云服务,包括云渲染、云编辑、云管理等多种云服务中至少一种。
步骤230,第二终端接收对指定三维模型的第二编辑操作。
其中,第二编辑操作用于对指定三维模型的第二模型部分进行编辑。
在一些实施例中,第二终端中运行有支持工厂设计功能的目标应用程序,当前显示程序运行界面。
可选地,将指定三维模型按照结构划分,如:内部结构、外部结构,则第一模型部分为指定三维模型的指定部分结构;或者,将指定三维模型按照功能区域划分,如:功能区域a、功能区域b等,则第二模型部分为指定三维模型的指定功能区域;或者,将指定三维模型的模型生成顺序进行划分,包括构建部件元素、组合部件元素、添加部件属性、设置部件连接关系等,则第二模型部分是指指定三维模型的指定生成步骤,对此不加以限定。
可选地,指定三维模型是当前尚未生成的完整模型,也即,第二编辑操作用于构建指定三维模型的第二模型部分;或者,指定三维模型是当前已经生成的完整模型,也即,第二编辑操作用于修改指定三维模型的第二模型部分。
在一些实施例中,第二终端的程序运行界面中显示编辑区域,在编辑区域内接收第二编辑操作。
可选地,第一编辑操作和第二编辑操作是指在指定三维模型的生成过程中的同一步骤中对指定三维模型的不同部分进行编辑操作;或者,第一编辑操作和第二编辑操作是指在指定三维模型的生成过程中的不同步骤中的编辑操作。
示意性的,第一编辑操作和第二编辑操作是在同一目标应用程序内对同一指定三维模型进行编辑的操作。
可选地,第一编辑操作和第二编辑操作是同时进行的编辑操作;或者,第一编辑操作和第二编辑操作之间存在时间先后顺序,对此不做限定。
可选地,第一模型部分和第二模型部分属于同一模型部分,或者属于不同模型部分,对此不做限定。在一个示例中,当第一终端通过第一编辑操作对指定三维模型的第一模型部分编辑完成后,将编辑完成的第一模型部分作为第二模型部分,由第二终端通过第二编辑操作进行编辑。
在一些实施例中,在第一终端对指定三维模型的第一模型部分进行编辑的过程能够在第二终端实时显示;或者,在第一终端对指定三维模型的第一模型部分进行编辑的过程能够在第一编辑操作完成后在第二终端进行显示;或者,在第一终端对指定三维模型的第一模型部分进行编辑操作后,将第一编辑操作的结果反馈在第二终端上,第二终端的第二编辑操作同理能够在第一终端显示。
在一个示例中,当指定三维模型为三维工厂模型时,第一终端为第一设计人员持有的终端,第二终端为第二设计人员持有的终端,第一设计人员和第二设计人员共同构建三维工厂模型,并且能够通过目标应用程序实现多人协同设计。
可选地,第二终端仅对指定三维模型的第二模型部分具有编辑操作权限,也即,第二终端持有用户仅能够对指定三维模型的第二模型部分进行编辑;或者,第二终端对指定三维模型的第一模型部分、第二模型部分和第三模型进行具有编辑操作权限。
其中,第一终端和第二终端分别对指定三维模型具有不同部分的编辑权限,或者,具有同一部分的编辑权限。
步骤240,第二终端向云服务器发送第二编辑指令。
在一些实施例中,第二编辑指令是指请求通过云服务器中搭载的第二渲染引擎对指定三维模型的第一模型部分进行渲染。其中,第二渲染引擎与第二编辑指令中的第二渲染内容对应。
示意性的,第二编辑指令中包括第二渲染资源要求和第二渲染内容,其中,第二渲染资源要求是指渲染第二模型部分占用云服务器中GPU的资源量。在一个示例中,第二渲染资源要求为3兆。
可选的,第二编辑指令的发送方式包括如下几种方式中至少一种:
1.当第二终端根据第二编辑操作完成对指定三维模型的第一模型部分的编辑过程后,自动向云服务器发送第一编辑指令;
2.当第二终端根据第二编辑操作完成对指定三维模型的第一模型部分的编辑过程后,第二终端接收第二渲染操作,根据第二渲染操作生成第二编辑指令并向云服务器;
3.在根据第二编辑操作对指定三维模型的第二模型部分进行编辑的过程中,当第二模型部分中的第一子部分编辑完成时随即向云服务器发送第一子部分对应的第一编辑指令,当第二模型部分中的第二子部分编辑完成时随即向云服务器发送第二子部分对应的第二编辑指令。
值得注意的是,上述关于第一编辑指令的发送方式仅为示意性的举例,本申请实施例对此不加以限定。
步骤250,云服务器接收第一编辑指令和第二编辑指令,并基于第一编辑指令和第二编辑指令,通过目标渲染引擎对指定三维模型进行渲染。
示意性的,云服务器接收第一编辑指令和第二编辑指令的时间顺序不做限定,与第一终端和第二终端发送的时刻相关。
在一些实施例中,云服务器接收到第一编辑指令和第二编辑指令后,根据第一渲染内容所需的资源量启动第一渲染引擎对第一编辑指令中指定三维模型的第一模型部分进行渲染,根据第二渲染内容所需的资源量启动第二渲染引擎对指定三维模型的第二模型部分进行渲染。其中,第一渲染引擎和第二渲染引擎作为云服务器中的目标渲染引擎。
在一些实施例中,云服务器中GPU用于提供渲染任务的资源量。其中,GPU中的资源总量是固定的,在一个示例中,GPU总量为20兆。目标渲染引擎占用GPU的资源对指定三维模型进行渲染,其中,目标渲染引擎的资源占用量与目标渲染引擎对应的渲染任务所需的渲染资源要求相关。
示意性的,目标渲染资源对应GPU的资源占用量不变。
示意性的,当云服务器接收到指定终端发送的编辑指令后,根据编辑指令启动指定终端对应的目标渲染引擎对指定三维模型进行渲染。
在一些实施例中,云服务器接收到第一编辑指令和第二编辑指令,并基于第一编辑指令和第二编辑指令,通过目标渲染引擎对指定三维模型的第一模型部分和第二模型部分进行渲染。
在一些实施例中,云服务器接收第一编辑指令,并基于第一编辑指令,通过第一渲染引擎对指定三维模型的第一模型部分进行渲染,得到第一渲染结果。
在一些实施例中,云服务器接收第二编辑指令,并基于第二编辑指令,通过第二渲染引擎对指定三维模型的第二模型部分进行渲染,得到第二渲染结果。
可选地,在云服务器先接收到第一编辑指令后接收到第二编辑指令的情况下,先根据第一编辑指令,启动第一终端对应的第一渲染引擎对第一模型部分进行渲染,再根据第二编辑指令,启动第二终端对应的第二渲染引擎对第二模型部分进行渲染;或者,在云服务器先接收到第一编辑指令后接收到第二编辑指令的情况下,在接收到第二编辑指令后,根据第一编辑指令和第二编辑指令启动一个目标渲染引擎同时对第一模型部分和第二模型部分进行渲染;或者,在云服务器先接收到第一编辑指令后接收到第二编辑指令的情况下,在对第一模型部分渲染完毕后,再根据第二编辑指令,启动第二终端对应的第二渲染引擎对第二模型部分进行渲染。
在一个可选的方案中,当云服务器同时接收到第一编辑指令和第二编辑指令,若当前云服务器中GPU的资源剩余量(15兆)同时符合第一渲染资源要求(4兆)和第二渲染资源要求(3兆),则同时为第一终端和第二终端分别启动渲染引擎a和渲染引擎b,其中,渲染引擎a对应的资源占用量为4兆,渲染引擎b对应的资源占用量为3兆,通过渲染引擎a对指定三维模型的第一模型部分进行渲染,通过渲染引擎b对指定三维模型的第二模型部分进行渲染。
在一个可选的方案中,当云服务器先接收到第一编辑指令,若当前云服务器中GPU的资源剩余量(15兆)符合第一渲染资源要求(4兆),则为第一终端启动渲染引擎a,其中,渲染引擎a对应的资源占用量为4兆,通过渲染引擎a对指定三维模型的第一模型部分进行渲染,在渲染引擎a对第一模型部分进行渲染的过程中,云服务器接收到第二编辑指令,若当前云服务器中GPU的资源剩余量(11兆)符合第二渲染资源要求(3兆),则在渲染引擎a运行的基础上为第二终端并发启动渲染引擎b,其中,渲染引擎b对应的资源占用量为3兆,通过渲染引擎b对指定三维模型的第二模型部分进行渲染。也即,在不超过GPU资源总量的情况下,云服务器能够并发启动多个渲染引擎分别对应不同的渲染任务。
在一个可选的方案中,当云服务器先接收到第一编辑指令,若当前云服务器中GPU的资源剩余量(15兆)符合第一渲染资源要求(4兆),则为第一终端启动渲染引擎a,其中,渲染引擎a对应的资源占用量为4兆,通过渲染引擎a对指定三维模型的第一模型部分进行渲染,在渲染引擎a对第一模型部分进行渲染的过程中,云服务器接收到第二编辑指令,若当前云服务器中GPU的资源剩余量(11兆)符合第二渲染资源要求(3兆),则在渲染引擎a运行完毕后为第二终端并发启动渲染引擎b,其中,渲染引擎b对应的资源占用量为3兆,通过渲染引擎b对指定三维模型的第二模型部分进行渲染。
步骤260,云服务器向第一终端和第二终端反馈渲染结果。
示意性的,渲染结果中包括通过目标渲染引擎对指定三维模型完成渲染后,得到渲染后的指定三维模型。
其中,云服务器根据第一编辑指令渲染得到第一渲染结果,第一渲染结果中包括渲染后的指定三维模型的第一模型部分。
其中,云服务器根据第二编辑指令渲染得到第二渲染结果,第二渲染结果中包括渲染后的指定三维模型的第二模型部分。
可选,渲染完毕的第一模型部分/渲染完毕的第二模型部分只反馈至第一终端/第二终端;或者,渲染完毕的第一模型部分/渲染完毕的第二模型部分不仅反馈至第一终端,也反馈至第二终端(也即,第一终端/第二终端都能狗接收渲染完毕的第一模型部分/渲染完毕的第二模型部分)。
在一些实施例中,当云服务器得到第一渲染结果后,向第一终端和第二终端同时反馈第一渲染结果。
在一些实施例中,当云服务器得到第二渲染结果后,向第一终端和第二终端同时反馈第二渲染结果。
在一个可选的方案中,当云服务器仅接收到第一编辑指令后,根据第一编辑指令,启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染后,将得到的第一模型部分对应的第一渲染结果同时向第一终端和第二终端进行反馈。
在一个可选的方案中,当云服务器同时接收到第一编辑指令和第二编辑指令后,根据第一编辑指令和第二编辑指令,同时启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染,以及第二终端对应的渲染引擎b对指定三维模型的第二模型部分进行渲染,将得到的第一模型部分对应的第一渲染结果以及第二模型部分对应的第二渲染结果同时向第一终端和第二终端进行反馈。也即,第一终端和第二终端都能收到第一渲染结果和第二渲染结果。
在一个可选的方案中,当云服务器先接收到第一编辑指令后,根据第一编辑指令,启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染,在渲染过程中接收到第二编辑指令,根据第二编辑指令并发启动第二终端对应的渲染引擎b对指定三维模型的第二模型部分进行渲染,将得到的第一模型部分对应的第一渲染结果和第二模型部分对应的第二渲染结果同时向第一终端和第二终端进行反馈。也即,第一终端和第二终端都能收到第一渲染结果和第二渲染结果。
在一些实施例中,当云服务器启动目标渲染引擎后,为该目标渲染引擎配置对应的目标端口号。
其中,目标端口号用于指示该目标渲染引擎与目标渲染任务之间的对应关系,如:当云服务器为目标渲染资源要求为8兆的目标渲染任务并发启动目标渲染引擎后,为该目标渲染引擎分配目标端口号“80”,用于表示端口号为80的渲染引擎用于对渲染资源要求为8兆的渲染任务对应的内容进行渲染操作。
可选地,渲染引擎的端口号是云服务器随机生成的;或者,渲染引擎的端口号是云服务器按照渲染引擎的启动时间顺序依次生成的连续编号。
在一个示例中,当第一渲染请求中包含多个不同的目标渲染任务时,若云服务器中当前资源剩余量同时满足多个不同的目标渲染任务分别对应的目标渲染资源要求时,为多个不同的目标渲染任务分别并发启动多个目标渲染引擎,其中,每个目标渲染引擎对应一个目标渲染任务。并且,为每个目标渲染引擎都分配一个目标端口号,且多个目标端口号之间各不相同。
本实施例中,云服务器中每一个启动的渲染引擎都分配有一个端口号。
在一些实施例中,第一渲染结果中还包括第一终端对应的第一渲染引擎的第一端口号,用于第一终端后续再次向云服务器发送编辑指令的过程中,将第一端口号同时发送至云服务器,云服务器根据第一端口号直接启动第一终端对应第一渲染引擎根据编辑指令对指定三维模型进行渲染。
在一些实施例中,第二渲染结果中还包括第二终端对应的第二渲染引擎的第二端口号,用于第二终端后续再次向云服务器发送编辑指令的过程中,将第二端口号同时发送至云服务器,云服务器根据第二端口号直接启动第二终端对应第二渲染引擎根据编辑指令对指定三维模型进行渲染。也即,第一终端和第二终端与云服务器中的目标渲染引擎建立有连接关系。
步骤270,第一终端接收云服务器发送的渲染结果,并显示经过编辑的指定三维模型。
在一些实施例中,第一终端接收云服务器发送的第一渲染结果和第二渲染结果,并显示经过编辑的指定三维模型的第一模型部分和第二模型部分。
示意性的,第一终端接收到云服务器发送的第一渲染结果和第二渲染结果后,根据第一渲染结果显示经过编辑的指定三维模型的第一模型部分,并根据第二渲染结果显示经过编辑的指定三维模型的第二模型部分。
在一个可选的情况下,当第一终端先接收到云服务器发送的第一渲染结果,根据第一渲染结果显示经过编辑的指定三维模型的第一模型部分,在显示经过编辑的指定三维模型的第一模型部分的过程中接收到云服务器发送的第二渲染结果,在第一模型部分显示的基础上根据第二渲染结果显示经过编辑的指定三维模型的第二模型部分。
在一个可选的情况下,当第一终端同时接收到云服务器发送的第一渲染结果和第二渲染结果,同时根据第一渲染结果和第二渲染结果显示经过编辑的指定三维模型的第一渲染部分和第二渲染部分。
步骤280,第二终端接收云服务器发送的渲染结果,并显示经过编辑的指定三维模型。
在一些实施例中,第二终端接收云服务器发送的第一渲染结果和第二渲染结果,并显示经过编辑的指定三维模型的第一模型部分和第二模型部分。
示意性的,第二终端接收到云服务器发送的第一渲染结果和第二渲染结果后,根据第一渲染结果显示经过编辑的指定三维模型的第一模型部分,并根据第二渲染结果显示经过编辑的指定三维模型的第二模型部分。
在一个可选的情况下,当第二终端先接收到云服务器发送的第一渲染结果,根据第一渲染结果显示经过编辑的指定三维模型的第一模型部分,在显示经过编辑的指定三维模型的第一模型部分的过程中接收到云服务器发送的第二渲染结果,在第一模型部分显示的基础上根据第二渲染结果显示经过编辑的指定三维模型的第一模型部分。
在一个可选的情况下,当第二终端同时接收到云服务器发送的第一渲染结果和第二渲染结果,同时根据第一渲染结果和第二渲染结果显示经过编辑的指定三维模型的第一渲染部分和第二渲染部分。
综上所述,本申请实施例提供的三维模型的云渲染方法,在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
在一个可选地实施例中,所述系统还包括中间服务器,示意性的,请参考图3,其示出了本申请一个示例性实施例提供的三维模型的云渲染方法的流程图,也即,步骤220中还包括步骤221和步骤222,步骤240中还包括步骤241和步骤242,如图3所示,该方法包括如下步骤:
步骤301,第一终端接收对指定三维模型的第一编辑操作。
其中,第一编辑操作用于对指定三维模型的第一模型部分进行编辑。
在一些实施例中,显示部件编辑窗口,在部件编辑窗口中接收对第一部件元素的第一配置操作,第一配置操作用于对第一部件元素的元素属性进行配置。
示意性的,在对指定三维模型进行编辑操作的过程中,由于指定三维模型中包括多个部件元素,而多个部件元素是利用基础部件元素构建而成的,因此编辑操作实现为对部件元素的配置操作。在一个实施例中,当指定三维模型实现为三维工厂模型时,利用基础部件元素对三维工厂模型进行构建,其中,建模部分包括基础平台、工厂设备、管道、支撑刚结构等,因此,在对三维工厂模型进行编辑的过程中首先需要通过基本几何体搭建出工厂模型中的管道、弯头、法兰、容器、阀门、变速器、压力表。
在另一个可实现的方案中,终端通过读取指定格式的模型配置文件,从而根据模型配置文件对三维工厂模型的模型部分进行配置,最终自动生成三维工厂模型。在一个示例中,模型配置文件为管道仪表流程图(Process&Instrumentation Drawing,PID)。
其中,PID图指的是用统一规定的图形符号和文字代号,详细地表示该系统的全部设备、仪表、管道、阀门和其他有关公用工程系统,如:污水常规处理,发电系统,加热凝结水方案,中央空调系统的图纸。PID图是在工艺设计的基础上开展工作的,是工程设计的一个重要工作环节,亦是工程设计中各有关专业开展工作的主要依据。
PID图是借助统一规定的图形符号和文字代号,用图示的方法把建立化工工艺装置所需的全部设备、仪表、管道、阀门及主要管件,按其各自功能,为满足工艺要求和安全、经济目的而组合起来,以起到描述工艺装置的结构和功能的作用。
PID图不仅是设计、施工的依据,而且也是企业管理、试运转、操作、维修和开停车等各方面所需的完整技术资料的一部分。它还有助于简化承担该工艺装置的开发、工程设计、施工、操作和维修等任务的各部门之间的资料交流。
示意性的,读取待生成的三维模型对应的PID图,该PID图用于表示需要现场施工的建筑的内部情况,如:表示工厂中仪器部件和管线之间的布局情况,其中,仪器部件标注有第一属性数据,管线标注有第二属性数据,第一属性数据用于描述仪器部件的三维形态,第二属性数据用于描述管线对应的三维形态,即,在通过PID图生成的三维模型中的至少一个部件元素中包括三维仪器元素和三维管道元素。
在一个示例中,上述工厂可以实现为污水处理厂,PID图的设计内容用于表示待施工的污水处理厂的内部情况,包括工厂中的仪器部件、仪器部件各自的位置情况、管线之间的布局情况。其中,管线布局情况是基于仪器部件之间的基本属性信息还有位置关系所设计的。
值得注意的是,PID图中可以包含任意数量的仪器部件和管线,任意两个仪器部件之间可以通过管线相连,仪器部件之间通过管线相连的方式可以是任意的,管线布局情况是基于仪器部件之间的基本属性信息还有位置关系所设计的,也即管线布局情况可以是任意的,本实施例对此不加以限定。
本实施例中,通过预先设置多个基本几何体,如:圆柱、长方体、正常体、圆台、球体等,生成几何体库,并在第一终端中显示部件编辑窗口,部件编辑窗口中包括几何体库,通过从几何体库中选择目标几何体搭建指定三维模型的第一模型部分,其中,第一模型部分中包括第一部件元素。
可选的,当从几何体库选择目标几何体搭建第一模型部分的过程中,手动将多个目标几何体进行位置调整和组合后生成第一模型部分;或者,在选择了目标几何体后,自动进行排布生成第一模型部分,对此不做限定。
在搭建完第一模型部分后,还需对第一模型部分中的第一部件元素的部件元素属性进行配置。
示意性的,部件元素属性包括位置属性、功能属性、材质属性、性能属性、部件名称、部件编号、部件描述、部件重量、部件表面积、部件状态等多种属性类型中至少一种。
本实施例中,首先给三维工厂模型中每个部件元素预留多个属性槽位,在部件编辑窗口中包括元素属性列表,从元素属性列表中选择至少一条目标元素属性添加到第一部件元素的空闲属性槽位中,作为第一部件的目标元素属性。
在一些实施例中,接收编辑结束操作,编辑结束操作用于结束第一编辑操作。
示意性的,在停止第一编辑操作后,还需要接收编辑结果操作才能结束第一编辑操作。
可选地,编辑结束操作包括目标键组合操作,如:按下指定键1和指定键2即可作为编辑结束操作;或者,第一终端显示结束控件,通过对结束控件的触发操作作为编辑结束操作。
在一个可实现的方案下,在对第一模型部分进行第一配置操作的过程中,当接收到编辑结束操作后,将第一配置操作展现在第二终端中。
在一个可实现的方案下,在对第一模型部分进行第一配置操作的过程中,将第一配置操作过程实时展现在第二终端中。
值得注意的是,配置操作仅为编辑操作过程中的其中一个步骤。
步骤302,第一终端向中间服务器发送第一编辑指令。
在一些实施例中,向中间服务器发送第一配置指令。
示意性的,当结束第一配置操作后,根据第一配置操作生成第一配置指令向中间服务器进行发送,其中,第一配置指令中包括第一部件元素的部件元素属性的属性配置要求。
在一些实施例中,基于编辑结束操作向云服务器发送第一编辑指令。
本实施例中,根据编辑结束操作生成第一编辑指令向中间服务器进行发送,其中,第一编辑指令中包括第一渲染资源要求和第一渲染内容。
步骤303,第二终端接收对指定三维模型的第二编辑操作。
其中,第二编辑操作用于对指定三维模型的第二模型部分进行编辑。
在一些实施例中,显示部件编辑窗口,在部件编辑窗口中接收对第二部件元素的第二配置操作,第二配置操作用于对第二部件元素的元素属性进行配置。
本实施例中,通过预先设置多个基本几何体,如:圆柱、长方体、正常体、圆台、球体等,生成几何体库,并在第二终端中显示部件编辑窗口,部件编辑窗口中包括几何体库,通过从几何体库中选择目标几何体搭建指定三维模型的第二模型部分,其中,第二模型部分中包括第二部件元素。
可选的,当从几何体库选择目标几何体搭建第二模型部分的过程中,手动将多个目标几何体进行位置调整和组合后生成第二模型部分;或者,在选择了目标几何体后,自动进行排布生成第二模型部分,对此不做限定。
在搭建完第二模型部分后,还需对第二模型部分中的第二部件元素的部件元素属性进行配置。
示意性的,部件元素属性包括位置属性、功能属性、材质属性、性能属性、部件名称、部件编号、部件描述、部件重量、部件表面积、部件状态等多种属性类型中至少一种。
本实施例中,首先给三维工厂模型中每个部件元素预留多个属性槽位,在部件编辑窗口中包括元素属性列表,从元素属性列表中选择至少一条目标元素属性添加到第二部件元素的空闲属性槽位中,作为第二部件的目标元素属性。
在一些实施例中,接收编辑结束操作,编辑结束操作用于结束第二编辑操作。
示意性的,在停止第二编辑操作后,还需要接收编辑结果操作才能结束第二编辑操作。
可选地,编辑结束操作包括目标键组合操作,如:按下指定键1和指定键2即可作为编辑结束操作;或者,第二终端显示结束控件,通过对结束控件的触发操作作为编辑结束操作。
在一个可实现的方案下,在对第二模型部分进行第人配置操作的过程中,当接收到编辑结束操作后,将第二配置操作展现在第一终端中。
在一个可实现的方案下,在对第二模型部分进行第二配置操作的过程中,将第一配置操作过程实时展现在第一终端中。
步骤304,第二终端向中间服务器发送第二编辑指令。
在一些实施例中,向中间服务器发送第二配置指令。
在一些实施例中,基于编辑结束操作向云服务器发送第二编辑指令。
示意性的,当结束第二配置操作后,根据第二配置操作生成第二配置指令向中间服务器进行发送,其中,第二配置指令中包括第二部件元素的部件元素属性的属性配置要求。
在一些实施例中,基于编辑结束操作向云服务器发送第二编辑指令。
本实施例中,根据编辑结束操作生成第一编辑指令向中间服务器进行发送,其中,第二编辑指令中包括第二渲染资源要求和第二渲染内容。
步骤305,中间服务器接收第一编辑指令,并向云服务器转发第一编辑指令。
示意性的,当中间服务器接收到第一编辑指令后,随即将第一编辑指令转发至云服务器。
在一些实施例中,接收第一配置指令,并基于第一配置指令,从数据库中对第一部件元素对应的元素属性进行配置;向第一终端和第二终端反馈配置结果。
本实施例中,中间服务器中包括数据库,数据库中包括多种不同的配置文件。当中间服务器接收到第一配置指令后,根据第一配置指令中关于第一部件元素的部件元素属性的属性配置要求读取指定元素配置文件中的第一元素信息,从而将第一元素信息填充到第一部件元素的空闲属性槽位中,实现对第一部件元素对应的元素属性进行配置。将第一配置结果同时将第一终端和第二终端进行反馈,也即,第二终端也将接收到第一部件元素对应的第一配置结果。
步骤306,云服务器接收第一编辑指令,并基于第一编辑指令,通过第一渲染引擎对指定三维模型的第一模型部分进行渲染,得到第一渲染结果。
其中,第一编辑指令中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,第一渲染资源要求用于指示渲染第一渲染任务对应的第一渲染内容所需的资源量。
在一些实施例中,获取运行中的获取运行中的至少一个渲染引擎对应的资源占用量;基于资源占用量确定云服务器中的资源剩余量;在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎;通过第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染。
在一些实施例中,第一渲染资源要求是指云服务器在渲染第一渲染内容过程中所占用到的图形处理器(GPU)资源量,如:云服务器在渲染第一渲染内容a的过程中需占用到4兆图形处理器资源量。
在一些实施例中,一个云服务器搭载一个图形处理器,该图形处理器配置有可供使用的资源总量,如:图形处理器提供32兆资源总量。
其中,图形处理器配置的资源总量用于计算数据、绘制图形、内容渲染等数据处理工作中至少一种。
可选地,云服务器接收到的第一编辑指令中仅包括一个第一渲染任务,以及该第一渲染任务对应的第一渲染资源要求;或者,云服务器接收到的第一编辑指令中包含多个不同的第一渲染任务,每个第一渲染任务对应不同的目标渲染资源请求,对此不加以限定。
可选地,云服务器在接收到第一终端发送的第一编辑指令时,当前云服务器中存在至少一个渲染引擎正在运行中;或者,云服务器在接收到第一终端发送的第一编辑指令时,当前云服务器中无任何渲染引擎正在运行中。
本申请实施例中,以云服务器在接收到第一编辑命令时存在至少一个渲染引擎正在运行中为例进行说明。可选地,云服务器在接收到第一终端发送的第一编辑命令时,存在第三渲染引擎正在运行中,其中,第三渲染引擎可以指代一个正在运行的引擎,也可以指代一组运行中的引擎。示意性的,云服务器在接收到第一终端发送的第一编辑命令时,存在渲染引擎A正在运行中;或者,云服务器在接收到第一终端发送的第一编辑命令时,存在渲染引擎A、渲染引擎B和渲染引擎C正在运行中。其中,运行中的渲染引擎分别占用相应的渲染资源,而运行中的渲染引擎所占用的渲染资源的总和小于或者等于云服务器渲染资源的总量。而当运行中的渲染引擎所占用的渲染资源的总和小于云服务器渲染资源的总量时,则存在资源剩余量,从而能够判断资源剩余量是否符合第一渲染资源要求。
其中,运行中的渲染引擎表示该引擎当前处于启动状态,并正在对云服务器接收到的渲染任务中的内容进行渲染。
其中,渲染引擎是指对渲染内容进行内容渲染的引擎,其中,内容渲染的过程是指通过导入原始模型,在原始模型的基础上进行渲染,添加颜色、光照、阴影等内容,最后渲染到屏幕上显示最终的渲染效果。
可选地,按照图像维度划分,渲染引擎包括二维图像引擎、三维图像引擎;按照渲染内容划分,渲染引擎包括建筑渲染引擎、光线渲染引擎、人物渲染引擎、场景渲染引擎等。
其中,建筑渲染引擎用于对三维场景/二维场景中的建筑物进行渲染;光线渲染引擎用于对三维场景/二维场景中的光线进行渲染;人物渲染引擎用于对三维场景/二维场景中的人物模型进行渲染;场景渲染用于对二维场景/三维场景进行渲染。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量大于或者等于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量满足第一渲染任务对应的第一渲染资源要求。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量小于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量不满足第一渲染任务对应的第一渲染资源要求。
在一些实施例中,根据第一渲染内容所需的资源量启动第一渲染引擎时,包括如下方式中的至少一种:1、直接根据第一渲染内容所需的资源量启动占用相应渲染资源量的第一渲染引擎;2、在第一渲染内容所需的资源量的基础上,以增加指定资源量后的资源占用量启动第一渲染引擎。
在一些实施例中,渲染引擎对应的资源占用量是指该渲染引擎在云服务器中运行所占用的图形处理器中的资源量,如:云服务器中包括正在运行的渲染引擎a,渲染引擎a对应的资源占用量为4兆,也即,当前云服务器中图形处理器中有4兆资源量被渲染引擎a占用,若存在其他渲染引擎,其他渲染引擎无法使用这4兆资源量。
在一个示例中,当云服务器中包括运行中的多个渲染引擎时,渲染引擎对应的资源占用量实现为多个渲染引擎占用的资源量总和。
示意性的,当获取云服务器中正在运行中的第三渲染引擎对应的资源占用量后,将云服务器中图形处理器的资源总量去掉第三渲染引擎对应的资源占用量后即可得到云服务器中的剩余资源量,如:云服务器中图形处理器资源总量为64兆,获取运行中的第三渲染引擎对应的资源占用量为18兆,则云服务器中的资源剩余量为46兆。
示意性的,若当前云服务器中的资源剩余量大于或者等于渲染第一渲染任务对应的第一渲染内容的所需资源量,则表明当前云服务器中的资源剩余量符合第一渲染资源要求。
在一些实施例中,在资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动第一渲染引擎。
示意性的,当云服务器中的资源剩余量符合第一渲染资源要求时,在云服务器中保持正在运行的第三渲染引擎的基础上,根据第一渲染内容所需的资源量并发启动第一渲染引擎。
其中,并发启动是指在云服务器中能够同时运行不同的渲染引擎,但多个渲染引擎的启动时刻可能不同,从而实现多个不同的渲染引擎多线程执行渲染操作,并且多个渲染引擎在运行过程中互不干扰。
本实施例中,当云服务器接收到第一编辑指令,若当前云服务器中GPU的资源剩余量(15兆)符合第一渲染资源要求(4兆),则为第一终端启动第一渲染引擎,其中,第一渲染引擎对应的资源占用量为4兆,通过第一渲染引擎对三维工厂模型的第一模型部分进行渲染。
步骤307,云服务器向中间服务器发送第一渲染结果。
云服务器将第一渲染引擎渲染得到的第一渲染结果反馈至中间服务器。
步骤308,中间服务器接收云服务器发送的第一渲染结果。
步骤309,中间服务器向第一终端和第二终端同时发送第一渲染结果。
在中间服务器接收到第一渲染结果后,同时向第一终端和第二终端分别发送第一渲染结果。
可选地,中间服务器直接向第一终端和第二终端发送第一渲染结果;或者,中间服务器向第一终端和第二终端发送渲染指示信息,通过触发该渲染指示信息后显示第一渲染结果;或者,向第一终端直接发送第一渲染结果,向第二终端发送渲染指示信息。
在一些实施例中,向第一终端和第二终端分别发送第一渲染结果的情况下,向第一终端发送状态同步信息,状态同步信息用于指示向第一终端和第二终端同步发送第一渲染结果。
示意性的,状态同步信息是指第一终端和第二终端当前处于消息同步接收状态,也即,中间服务器发送给第一终端消息的同时,也会给第二终端发送同样的消息。
步骤310,中间服务器接收第二编辑指令,并向云服务器转发送第二编辑指令。
在一些实施例中,接收第二配置指令,并基于第二配置指令,从数据库中对第二部件元素分别对应的元素属性进行配置;向第一终端和第二终端反馈配置结果。
示意性的,当中间服务器接收到第一编辑指令后,随即将第一编辑指令转发至云服务器。
在一些实施例中,接收第一配置指令,并基于第一配置指令,从数据库中对第一部件元素对应的元素属性进行配置;向第一终端和第二终端反馈配置结果。
本实施例中,中间服务器中包括数据库,数据库中包括多种不同的配置文件。当中间服务器接收到第一配置指令后,根据第一配置指令中关于第一部件元素的部件元素属性的属性配置要求读取指定元素配置文件中的第一元素信息,从而将第一元素信息填充到第一部件元素的空闲属性槽位中,实现对第一部件元素对应的元素属性进行配置。将第一配置结果同时将第一终端和第二终端进行反馈,也即,第二终端也将接收到第一部件元素对应的第一配置结果。
步骤311,云服务器接收第二编辑指令,并基于第二编辑指令,通过第二渲染引擎对指定三维模型的第二模型部分进行渲染,得到第二渲染结果。
其中,第二编辑指令中包括第二渲染任务对应的第二渲染资源要求和第二渲染内容,第二渲染资源要求用于指示渲染第二渲染任务对应的第二渲染内容所需的资源量。
在一些实施例中,获取运行中的获取运行中的至少一个渲染引擎对应的资源占用量;基于资源占用量确定云服务器中的资源剩余量;在资源剩余量符合第二渲染资源要求的情况下,基于第二渲染内容所需的资源量启动第二渲染引擎;通过第二渲染引擎对第二渲染任务对应的第二渲染内容进行渲染。
本申请实施例中,以云服务器在接收到第二编辑命令时存在至少一个渲染引擎正在运行中为例进行说明。可选地,云服务器在接收到第二终端发送的第二编辑命令时,存在第三渲染引擎正在运行中,其中,第三渲染引擎可以指代一个正在运行的引擎,也可以指代一组运行中的引擎。示意性的,云服务器在接收到第二终端发送的第二编辑命令时,存在渲染引擎A正在运行中;或者,云服务器在接收到第二终端发送的第二编辑命令时,存在渲染引擎A、渲染引擎B和渲染引擎C正在运行中。其中,运行中的渲染引擎分别占用相应的渲染资源,而运行中的渲染引擎所占用的渲染资源的总和小于或者等于云服务器渲染资源的总量。而当运行中的渲染引擎所占用的渲染资源的总和小于云服务器渲染资源的总量时,则存在资源剩余量,从而能够判断资源剩余量是否符合第二渲染资源要求。
其中,运行中的渲染引擎表示该引擎当前处于启动状态,并正在对云服务器接收到的渲染任务中的内容进行渲染。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量小于第二渲染任务对应的第二渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量不满足第二渲染任务对应的第二渲染资源要求。
在一些实施例中,渲染引擎对应的资源占用量是指该渲染引擎在云服务器中运行所占用的图形处理器中的资源量,如:云服务器中包括正在运行的渲染引擎a,渲染引擎a对应的资源占用量为4兆,也即,当前云服务器中图形处理器中有4兆资源量被渲染引擎a占用,若存在其他渲染引擎,其他渲染引擎无法使用这4兆资源量。
示意性的,若当前云服务器中的资源剩余量大于或者等于渲染第二渲染任务对应的第二渲染内容的所需资源量,则表明当前云服务器中的资源剩余量符合第二渲染资源要求。
在一些实施例中,在资源剩余量符合所述第二渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第二渲染内容所需的资源量并发启动第二渲染引擎。
示意性的,当云服务器中的资源剩余量符合第二渲染资源要求时,在云服务器中保持正在运行的第三渲染引擎的基础上,根据第二渲染内容所需的资源量并发启动第二渲染引擎。
本实施例中,当云服务器接收到第二编辑指令,若当前云服务器中GPU的资源剩余量(11兆)符合第二渲染资源要求(3兆),则为第一终端启动第一渲染引擎,其中,第一渲染引擎对应的资源占用量为4兆,通过第一渲染引擎对三维工厂模型的第一模型部分进行渲染。
步骤312,云服务器向中间服务器发送第二渲染结果。
云服务器将第二渲染引擎渲染得到的第二渲染结果反馈至中间服务器。
步骤313,中间服务器接收云服务器发送的第二渲染结果。
步骤314,中间服务器向第一终端和第二终端同时发送第二渲染结果。
在中间服务器接收到第二渲染结果后,同时向第一终端和第二终端分别发送第二渲染结果。
可选地,中间服务器直接向第一终端和第二终端发送第二渲染结果;或者,中间服务器向第一终端和第二终端发送渲染指示信息,通过触发该渲染指示信息后显示第二渲染结果;或者,向第二终端直接发送第二渲染结果,向第一终端发送渲染指示信息。
在一些实施例中,向第一终端和第二终端分别发送第二渲染结果的情况下,向第一终端发送状态同步信息,状态同步信息用于指示向第一终端和第二终端同步发送第二渲染结果。
示意性的,状态同步信息是指第一终端和第二终端当前处于消息同步接收状态,也即,中间服务器发送给第二终端消息的同时,也会给第一终端发送同样的消息。
综上所述,本申请实施例提供的三维模型的云渲染方法,在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
示意性的,请参考图4,其示出了本申请一个示例性实施例提供的三维模型的云渲染方法的流程图,以该方法应用于终端(包括第一终端和第二终端)为例进行说明,该方法包括如下步骤。
步骤410,接收对指定三维模型的编辑操作。
其中,编辑操作用于对指定三维模型的模型部分进行编辑。
在一些实施例中,终端中运行有支持工厂设计功能的目标应用程序,当前显示程序运行界面。
示意性的,编辑操作包括生成部件元素、搭建部件元素、设置部件元素的连接关系、配置部件元素属性、设置模型应用场景等编辑类型中至少一种。其中,部件元素是指组成三维模型的基本构成单位。在一个示例中,当三维模型为三维工厂模型时,部件元素实现为三维工厂模型中的设备部件,其中,上述设备部件包括虚拟仪器、虚拟管道、虚拟部件等工厂中的设备,可选地,部件元素还可以包括三维模型对应的建筑部件,其中,上述建筑部件包括虚拟地面、虚拟墙体、虚拟屋顶、虚拟窗户、虚拟门等。
可选地,指定三维模型是当前尚未生成的完整模型,也即,编辑操作用于构建指定三维模型的模型部分;或者,指定三维模型是当前已经生成的完整模型,也即,编辑操作用于修改指定三维模型的模型部分。
在一些实施例中,终端的程序运行界面中显示编辑区域,在编辑区域内接收编辑操作。
在一些实施例中,显示部件编辑窗口;在部件编辑窗口中接收对部件元素的配置操作,配置操作用于对部件元素的元素属性进行配置。
示意性的,在对指定三维模型进行编辑操作的过程中,由于指定三维模型中包括多个部件元素,而多个部件元素是利用基础部件元素构建而成的,因此编辑操作实现为对部件元素的配置操作。在一个实施例中,当指定三维模型实现为三维工厂模型时,利用基础部件元素对三维工厂模型进行构建,其中,建模部分包括基础平台、工厂设备、管道、支撑刚结构等,因此,在对三维工厂模型进行编辑的过程中首先需要通过基本几何体搭建出工厂模型中的管道、弯头、法兰、容器、阀门、变速器、压力表。
在另一个可实现的方案中,终端通过读取指定格式的模型配置文件,从而根据模型配置文件对三维工厂模型的模型部分进行配置,最终自动生成三维工厂模型。在一个示例中,模型配置文件为管道仪表流程图(Process&Instrumentation Drawing,PID)。
本实施例中,通过预先设置多个基本几何体,如:圆柱、长方体、正常体、圆台、球体等,生成几何体库,并在第一终端中显示部件编辑窗口,部件编辑窗口中包括几何体库,通过从几何体库中选择目标几何体搭建指定三维模型的模型部分,其中,模型部分中包括部件元素。
可选的,当从几何体库选择目标几何体搭建模型部分的过程中,手动将多个目标几何体进行位置调整和组合后生成模型部分;或者,在选择了目标几何体后,自动进行排布生成模型部分,对此不做限定。
在搭建完模型部分后,还需对模型部分中的部件元素的部件元素属性进行配置。
示意性的,部件元素属性包括位置属性、功能属性、材质属性、性能属性、部件名称、部件编号、部件描述、部件重量、部件表面积、部件状态等多种属性类型中至少一种。
本实施例中,首先给三维工厂模型中每个部件元素预留多个属性槽位,在部件编辑窗口中包括元素属性列表,从元素属性列表中选择至少一条目标元素属性添加部件元素的空闲属性槽位中,作为部件元素的目标元素属性。
步骤420,接收编辑结束操作。
其中,编辑结束操作用于结束编辑操作。
示意性的,在停止编辑操作后,还需要接收编辑结果操作才能结束编辑操作。
可选地,编辑结束操作包括目标键组合操作,如:按下指定键1和指定键2即可作为编辑结束操作;或者,终端显示结束控件,通过对结束控件的触发操作作为编辑结束操作。
在一个可实现的方案下,在对第一模型部分进行第一配置操作的过程中,当接收到编辑结束操作后,将第一配置操作展现在第二终端中。
在一个可实现的方案下,在对第一模型部分进行第一配置操作的过程中,将第一配置操作过程实时展现在第二终端中。
步骤430,向云服务器发送编辑指令。
在一些实施例中,编辑指令是指请求通过云服务器中搭载的目标渲染引擎对指定三维模型的模型部分进行渲染。
示意性的,编辑指令中包括模型部分对应的渲染资源要求和渲染内容,其中,渲染资源要求是指渲染模型部分占用云服务器中图形处理器(Graphic Processing Unit,GPU)的资源量。在一个示例中,渲染资源要求为4兆。
可选的,编辑指令的发送方式包括如下几种方式中至少一种:
1.当终端编辑操作完成对指定三维模型的第一模型部分的编辑过程后,自动向云服务器发送编辑指令;
2.当终端根据编辑操作完成对指定三维模型的模型部分的编辑过程后,终端接收渲染操作,根据渲染操作生成编辑指令并向云服务器;
3.在根据编辑操作对指定三维模型的模型部分进行编辑的过程中,当模型部分中的第一子部分编辑完成时随即向云服务器发送第一子部分对应的编辑指令,当模型部分中的第二子部分编辑完成时随即向云服务器发送第二子部分对应的编辑指令。
值得注意的是,上述关于编辑指令的发送方式仅为示意性的举例,本申请实施例对此不加以限定。
示意性的,云服务器用于向终端提供云服务,包括云渲染、云编辑、云管理等多种云服务中至少一种。
在一些实施例中,基于编辑结束操作向云服务器发送编辑指令。
本实施例中,根据编辑结束操作生成编辑指令向中间服务器进行发送,其中,编辑指令中包括渲染资源要求和渲染内容。
在一些实施例中,向中间服务器发送编辑指令,中间服务器用于接收编辑指令后向云服务器转发编辑指令。
示意性的,当中间服务器接收到编辑指令后,随即将第一编辑指令转发至云服务器。
在一些实施例中,向中间服务器发送配置指令,中间服务器用于根据多个终端分别发送的配置指令,从数据库中对多个部件元素分别对应的元素属性进行配置。
本实施例中,中间服务器中包括数据库,数据库中包括多种不同的配置文件。当中间服务器接收到配置指令后,根据配置指令中关于部件元素的部件元素属性的属性配置要求读取指定元素配置文件中的元素信息,从而将元素信息填充到部件元素的空闲属性槽位中,实现对部件元素对应的元素属性进行配置。
本实施例中,将第一配置结果同时将第一终端和第二终端进行反馈,也即,第二终端也将接收到第一部件元素对应的第一配置结果。
步骤440,接收云服务器发送的渲染结果,并显示经过编辑的指定三维模型。
其中,渲染结果是指云服务器根据多个终端分别发送的编辑指令,通过目标渲染引擎对指定三维模型进行渲染后的结果。
示意性的,终端接收到云服务器发送的渲染结果后,根据渲染结果显示经过编辑的指定三维模型的模型部分。
在一个可选的情况下,当终端先接收到云服务器发送的第一渲染结果,根据第一渲染结果显示经过编辑的指定三维模型的第一模型部分,在显示经过编辑的指定三维模型的第一模型部分的过程中接收到云服务器发送的第二渲染结果,在第一模型部分显示的基础上根据第二渲染结果显示经过编辑的指定三维模型的第二模型部分。
在一个可选的情况下,当终端同时接收到云服务器发送的第一渲染结果和第二渲染结果,同时根据第一渲染结果和第二渲染结果显示经过编辑的指定三维模型的第一渲染部分和第二渲染部分。
在一些实施例中,接收中间服务器发送的渲染结果,渲染结果是云服务器向中间服务器发送的渲染结果。
在中间服务器接收到渲染结果后,同时向第一终端和第二终端分别发送渲染结果。
在一些实施例中,接收中间服务器发送的配置结果,并显示经过配置的多个部件元素。
本实施例中,终端接受中间服务器发送的配置结果后,在终端显示经过配置的多个部件元素,以及多个部件分别对应的部件元素属性。
在一些实施例中,接收中间服务器发送的状态同步信息,状态同步信息用于指示多个终端同步接收到渲染结果。
示意性的,状态同步信息是指第一终端和第二终端当前处于消息同步接收状态,也即,中间服务器发送给第一终端消息的同时,也会给第二终端发送同样的消息。
综上所述,本申请实施例提供的三维模型的云渲染方法,在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
示意性的,请参考图5,其示出了本申请一个示例性实施例提供的三维模型的云渲染方法的流程图,以该方法应用于云服务器为例进行说明,该方法包括如下步骤。
步骤510,接收多个终端分别发送的编辑指令。
在一些实施例中,编辑指令是指请求通过云服务器中搭载的目标渲染引擎对指定三维模型的模型部分进行渲染。
示意性的,编辑指令中包括不同模型部分对应的渲染资源要求和渲染内容,其中,渲染资源要求是指渲染模型部分占用云服务器中图形处理器(Graphic Processing Unit,GPU)的资源量。在一个示例中,渲染资源要求为4兆。
可选的,编辑指令的发送方式包括如下几种方式中至少一种:
1.当终端编辑操作完成对指定三维模型的第一模型部分的编辑过程后,自动向云服务器发送编辑指令;
2.当终端根据编辑操作完成对指定三维模型的模型部分的编辑过程后,终端接收渲染操作,根据渲染操作生成编辑指令并向云服务器;
3.在根据编辑操作对指定三维模型的模型部分进行编辑的过程中,当模型部分中的第一子部分编辑完成时随即向云服务器发送第一子部分对应的编辑指令,当模型部分中的第二子部分编辑完成时随即向云服务器发送第二子部分对应的编辑指令。
值得注意的是,上述关于编辑指令的发送方式仅为示意性的举例,本申请实施例对此不加以限定。
在一些实施例中,编辑指令中包括第一终端发送的第一编辑指令和第二终端发送的第二编辑指令,第一编辑指令中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,第一渲染资源要求用于指示渲染第一渲染任务对应的第一渲染内容所需的资源量;第二编辑指令中包括第二渲染任务对应的第二渲染资源要求和第二渲染内容,第二渲染资源要求用于指示渲染第二渲染任务对应的第二渲染内容所需的资源量。
可选地,第一编辑指令和第二编辑指令是同时接收到的;或者,第一编辑指令和第二编辑指令的接收时间点存在先后顺序。
步骤520,基于多个终端分别发送的编辑指令,通过目标渲染引擎对指定三维模型进行渲染。
在一些实施例中,云服务器中GPU用于提供渲染任务的资源量。其中,GPU中的资源总量是固定的,在一个示例中,GPU总量为20兆。目标渲染引擎占用GPU的资源对指定三维模型进行渲染,其中,目标渲染引擎的资源占用量与目标渲染引擎对应的渲染任务所需的渲染资源要求相关。
示意性的,目标渲染资源对应GPU的资源占用量不变。
示意性的,当云服务器接收到指定终端发送的编辑指令后,根据编辑指令启动指定终端对应的目标渲染引擎对指定三维模型进行渲染。
在一些实施例中,获取运行中的至少一个渲染引擎对应的资源占用量;基于资源占用量确定云服务器中的资源剩余量;在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎;通过第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染。
在一些实施例中,获取运行中的获取运行中的至少一个渲染引擎对应的资源占用量;基于资源占用量确定云服务器中的资源剩余量;在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎;通过第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染。
在一些实施例中,第一渲染资源要求是指云服务器在渲染第一渲染内容过程中所占用到的图形处理器(GPU)资源量,如:云服务器在渲染第一渲染内容a的过程中需占用到4兆图形处理器资源量。
在一些实施例中,一个云服务器搭载一个图形处理器,该图形处理器配置有可供使用的资源总量,如:图形处理器提供32兆资源总量。
其中,图形处理器配置的资源总量用于计算数据、绘制图形、内容渲染等数据处理工作中至少一种。
可选地,云服务器接收到的第一编辑指令中仅包括一个第一渲染任务,以及该第一渲染任务对应的第一渲染资源要求;或者,云服务器接收到的第一编辑指令中包含多个不同的第一渲染任务,每个第一渲染任务对应不同的目标渲染资源请求,对此不加以限定。
可选地,云服务器在接收到第一终端发送的第一编辑指令时,当前云服务器中存在至少一个渲染引擎正在运行中;或者,云服务器在接收到第一终端发送的第一编辑指令时,当前云服务器中无任何渲染引擎正在运行中。
本申请实施例中,以云服务器在接收到第一编辑命令时存在至少一个渲染引擎正在运行中为例进行说明。可选地,云服务器在接收到第一终端发送的第一编辑命令时,存在第三渲染引擎正在运行中,其中,第三渲染引擎可以指代一个正在运行的引擎,也可以指代一组运行中的引擎。示意性的,云服务器在接收到第一终端发送的第一编辑命令时,存在渲染引擎A正在运行中;或者,云服务器在接收到第一终端发送的第一编辑命令时,存在渲染引擎A、渲染引擎B和渲染引擎C正在运行中。其中,运行中的渲染引擎分别占用相应的渲染资源,而运行中的渲染引擎所占用的渲染资源的总和小于或者等于云服务器渲染资源的总量。而当运行中的渲染引擎所占用的渲染资源的总和小于云服务器渲染资源的总量时,则存在资源剩余量,从而能够判断资源剩余量是否符合第一渲染资源要求。
其中,运行中的渲染引擎表示该引擎当前处于启动状态,并正在对云服务器接收到的渲染任务中的内容进行渲染。
其中,渲染引擎是指对渲染内容进行内容渲染的引擎,其中,内容渲染的过程是指通过导入原始模型,在原始模型的基础上进行渲染,添加颜色、光照、阴影等内容,最后渲染到屏幕上显示最终的渲染效果。
可选地,按照图像维度划分,渲染引擎包括二维图像引擎、三维图像引擎;按照渲染内容划分,渲染引擎包括建筑渲染引擎、光线渲染引擎、人物渲染引擎、场景渲染引擎等。
其中,建筑渲染引擎用于对三维场景/二维场景中的建筑物进行渲染;光线渲染引擎用于对三维场景/二维场景中的光线进行渲染;人物渲染引擎用于对三维场景/二维场景中的人物模型进行渲染;场景渲染用于对二维场景/三维场景进行渲染。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量大于或者等于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量满足第一渲染任务对应的第一渲染资源要求。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量小于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量不满足第一渲染任务对应的第一渲染资源要求。
在一些实施例中,根据第一渲染内容所需的资源量启动第一渲染引擎时,包括如下方式中的至少一种:1、直接根据第一渲染内容所需的资源量启动占用相应渲染资源量的第一渲染引擎;2、在第一渲染内容所需的资源量的基础上,以增加指定资源量后的资源占用量启动第一渲染引擎。
在一些实施例中,渲染引擎对应的资源占用量是指该渲染引擎在云服务器中运行所占用的图形处理器中的资源量,如:云服务器中包括正在运行的渲染引擎a,渲染引擎a对应的资源占用量为4兆,也即,当前云服务器中图形处理器中有4兆资源量被渲染引擎a占用,若存在其他渲染引擎,其他渲染引擎无法使用这4兆资源量。
在一个示例中,当云服务器中包括运行中的多个渲染引擎时,渲染引擎对应的资源占用量实现为多个渲染引擎占用的资源量总和。
示意性的,当获取云服务器中正在运行中的第三渲染引擎对应的资源占用量后,将云服务器中图形处理器的资源总量去掉第三渲染引擎对应的资源占用量后即可得到云服务器中的剩余资源量,如:云服务器中图形处理器资源总量为64兆,获取运行中的第三渲染引擎对应的资源占用量为18兆,则云服务器中的资源剩余量为46兆。
示意性的,若当前云服务器中的资源剩余量大于或者等于渲染第一渲染任务对应的第一渲染内容的所需资源量,则表明当前云服务器中的资源剩余量符合第一渲染资源要求。
在一些实施例中,在资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动第一渲染引擎。
示意性的,当云服务器中的资源剩余量符合第一渲染资源要求时,在云服务器中保持正在运行的第二渲染引擎的基础上,根据第一渲染内容所需的资源量并发启动第一渲染引擎。
其中,并发启动是指在云服务器中能够同时运行不同的渲染引擎,但多个渲染引擎的启动时刻可能不同,从而实现多个不同的渲染引擎多线程执行渲染操作,并且多个渲染引擎在运行过程中互不干扰。
在一些实施例中,获取运行中的获取运行中的至少一个渲染引擎对应的资源占用量;基于资源占用量确定云服务器中的资源剩余量;在资源剩余量符合第二渲染资源要求的情况下,基于第二渲染内容所需的资源量启动第二渲染引擎;通过第二渲染引擎对第二渲染任务对应的第二渲染内容进行渲染。
在一些实施例中,第二渲染资源要求是指云服务器在渲染第二渲染内容过程中所占用到的图形处理器(GPU)资源量,如:云服务器在渲染第二渲染内容a的过程中需占用到4兆图形处理器资源量。
在一些实施例中,一个云服务器搭载一个图形处理器,该图形处理器配置有可供使用的资源总量,如:图形处理器提供32兆资源总量。
其中,图形处理器配置的资源总量用于计算数据、绘制图形、内容渲染等数据处理工作中至少一种。
本申请实施例中,以云服务器在接收到第二编辑命令时存在至少一个渲染引擎正在运行中为例进行说明。可选地,云服务器在接收到第二终端发送的第二编辑命令时,存在第三渲染引擎正在运行中,其中,第三渲染引擎可以指代一个正在运行的引擎,也可以指代一组运行中的引擎。示意性的,云服务器在接收到第二终端发送的第二编辑命令时,存在渲染引擎A正在运行中;或者,云服务器在接收到第二终端发送的第二编辑命令时,存在渲染引擎A、渲染引擎B和渲染引擎C正在运行中。其中,运行中的渲染引擎分别占用相应的渲染资源,而运行中的渲染引擎所占用的渲染资源的总和小于或者等于云服务器渲染资源的总量。而当运行中的渲染引擎所占用的渲染资源的总和小于云服务器渲染资源的总量时,则存在资源剩余量,从而能够判断资源剩余量是否符合第二渲染资源要求。
其中,运行中的渲染引擎表示该引擎当前处于启动状态,并正在对云服务器接收到的渲染任务中的内容进行渲染。
其中,渲染引擎是指对渲染内容进行内容渲染的引擎,其中,内容渲染的过程是指通过导入原始模型,在原始模型的基础上进行渲染,添加颜色、光照、阴影等内容,最后渲染到屏幕上显示最终的渲染效果。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量大于或者等于第二渲染任务对应的第二渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量满足第二渲染任务对应的第二渲染资源要求。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量小于第二渲染任务对应的第二渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量不满足第二渲染任务对应的第二渲染资源要求。
在一些实施例中,根据第二渲染内容所需的资源量启动第二渲染引擎时,包括如下方式中的至少一种:1、直接根据第二渲染内容所需的资源量启动占用相应渲染资源量的第二渲染引擎;2、在第二渲染内容所需的资源量的基础上,以增加指定资源量后的资源占用量启动第二渲染引擎。
示意性的,若当前云服务器中的资源剩余量大于或者等于渲染第二渲染任务对应的第二渲染内容的所需资源量,则表明当前云服务器中的资源剩余量符合第二渲染资源要求。
在一些实施例中,在资源剩余量符合所述第二渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第二渲染内容所需的资源量并发启动第二渲染引擎。
示意性的,当云服务器中的资源剩余量符合第二渲染资源要求时,在云服务器中保持正在运行的第三渲染引擎的基础上,根据第二渲染内容所需的资源量并发启动第二渲染引擎。
步骤530,向多个终端分别反馈渲染结果。
示意性的,渲染结果中包括通过目标渲染引擎对指定三维模型完成渲染后,得到渲染后的指定三维模型。
其中,云服务器根据第一编辑指令渲染得到第一渲染结果,第一渲染结果中包括渲染后的指定三维模型的第一模型部分。
其中,云服务器根据第二编辑指令渲染得到第二渲染结果,第二渲染结果中包括渲染后的指定三维模型的第二模型部分。
可选,渲染完毕的第一模型部分/渲染完毕的第二模型部分只反馈至第一终端/第二终端;或者,渲染完毕的第一模型部分/渲染完毕的第二模型部分不仅反馈至第一终端,也反馈至第二终端(也即,第一终端/第二终端都能狗接收渲染完毕的第一模型部分/渲染完毕的第二模型部分)。
在一些实施例中,当云服务器得到第一渲染结果后,向第一终端和第二终端同时反馈第一渲染结果。
在一些实施例中,当云服务器得到第二渲染结果后,向第一终端和第二终端同时反馈第二渲染结果。
在一个可选的方案中,当云服务器仅接收到第一编辑指令后,根据第一编辑指令,启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染后,将得到的第一模型部分对应的第一渲染结果同时向第一终端和第二终端进行反馈。
在一个可选的方案中,当云服务器同时接收到第一编辑指令和第二编辑指令后,根据第一编辑指令和第二编辑指令,同时启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染,以及第二终端对应的渲染引擎b对指定三维模型的第二模型部分进行渲染,将得到的第一模型部分对应的第一渲染结果以及第二模型部分对应的第二渲染结果同时向第一终端和第二终端进行反馈。也即,第一终端和第二终端都能收到第一渲染结果和第二渲染结果。
在一个可选的方案中,当云服务器先接收到第一编辑指令后,根据第一编辑指令,启动第一终端对应的渲染引擎a对指定三维模型的第一模型部分进行渲染,在渲染过程中接收到第二编辑指令,根据第二编辑指令并发启动第二终端对应的渲染引擎b对指定三维模型的第二模型部分进行渲染,将得到的第一模型部分对应的第一渲染结果和第二模型部分对应的第二渲染结果同时向第一终端和第二终端进行反馈。也即,第一终端和第二终端都能收到第一渲染结果和第二渲染结果。
在一些实施例中,当云服务器启动目标渲染引擎后,为该目标渲染引擎配置对应的目标端口号。
其中,目标端口号用于指示该目标渲染引擎与目标渲染任务之间的对应关系,如:当云服务器为目标渲染资源要求为8兆的目标渲染任务并发启动目标渲染引擎后,为该目标渲染引擎分配目标端口号“80”,用于表示端口号为80的渲染引擎用于对渲染资源要求为8兆的渲染任务对应的内容进行渲染操作。
在一些实施例中,第一渲染结果中还包括第一终端对应的第一渲染引擎的第一端口号,用于第一终端后续再次向云服务器发送编辑指令的过程中,将第一端口号同时发送至云服务器,云服务器根据第一端口号直接启动第一终端对应第一渲染引擎根据编辑指令对指定三维模型进行渲染。
在一些实施例中,第二渲染结果中还包括第二终端对应的第二渲染引擎的第二端口号,用于第二终端后续再次向云服务器发送编辑指令的过程中,将第二端口号同时发送至云服务器,云服务器根据第二端口号直接启动第二终端对应第二渲染引擎根据编辑指令对指定三维模型进行渲染。也即,第一终端和第二终端与云服务器中的目标渲染引擎建立有连接关系。
综上所述,本申请实施例提供的三维模型的云渲染方法,在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
示意性的,请参考图6,其示出了本申请一个示例性实施例提供的三维模型的云渲染系统架构图,如图6所示,该系统架构包括如下内容。
由于本申请提供的编辑操作、指令发送、配置操作、三维模型云渲染都在该云渲染系统中实现,下面对该系统架构和不同功能模块进行介绍。
首先介绍系统架构。
当前显示系统架构图600,系统架构图600中包括客户端610、中间服务器620和云服务器630。
其中,客户端600主要为使用人员提供用户注册、登录、权限分配等基础功能,以及资源上传、资源转换、预览、操作控制等操作功能。给使用人员提供接口和软件开发工具包(Software Development Kit,SDK)。其中,软件开发工具包中包括Http接口、网络接口通信(Web Socket)、Nats消息和音视频SDK(Web RTC)。
中间服务器620主要是向客户端610提供多种不同的服务,包括管理服务器(WebSever)、资源转化服务器(Resource Sever)、消息服务器(Nats Sever)调度服务器。
其中,管理服务器负责用户管理,资源管理和数据库管理。
其中,资源转化服务器用于将Revit Architecture格式(RVT格式)、(AutodeskFBX格式,FBX)、(CAD绘图软件的3D图形文件的格式,STP格式)、(行业基础类格式,IFC格式)等不同数据格式的资源转化为该系统开发引擎可记载的指定数据格式资源,并提取资源中的网格信息(mesh)、纹理信息(Texture)、阴影信息(Shader)、族信息、基础信息等。
其中,消息服务器负责各服务器之间的消息通知。
其中,调度服务器负责为用户分配上述资源。
此外,中间服务器620中还包括MySQL库、(open build service,OBS库)和Redis集群。
云服务器630中包括警卫服务器(Guard Sever)、信令服务器(Singal Sever)、加载服务器(Load Sever)、渲染引擎和引擎服务器。
其中,警卫服务器用于上报GPU信息,管理GPU进程。
其中,信令服务器用于将客户端和渲染引擎进行连接。
其中,渲染引擎负责图像渲染、模型操作和云推流。
其中,引擎服务器为渲染引擎提供服务。
下面,针对不同功能模块进行介绍。
1、数据导入模块。
描述:将工艺软件产生的数据能够接入到目标应用程序当中,实现目标应用程序和其他软件数据的互通。
(1)三维模型导入,如:STP格式模型,IFC格式模型
实现方案:借助freeCAD解析出模型文件对应的数据,再将数据转化成指定引擎数据格式对应的文件(asset,ast格式文件)。
(2表格(Excel),可扩展标记语言(Extensible Markup Language,XML)数据导入
实现方案:借助C语言库可以将XML数据解析成对应表数据,再将数据存储到数据库中。
(3)私人文件管理系统(PFMS数据库)数据导入
解析PFMS数据库内容,在将其进行格式转化。
数据导入的过程可实现为首先对不同格式的数据进行解析,提取不同的数据,如:几何数据、属性数据、材质信息等,将其同一转化为指定引擎数据格式对应的文件。
2、三维模型建模模块。
本实施例中,利用基础部件构建出完整的工厂模型,建模分基础平台,设备,管道,支撑刚结构。
(1)基本几何体搭建出管道,弯头,法兰,容器,阀门,变速器,压力表
实现方案:预制基本几何体(包括圆柱体、长方体、球体等),定义部件属性。
(2)部件编辑窗口和场景编辑窗口分离
实现方案:首先在部件编辑窗口中对部件元素进行搭建,搭建好工厂三维模型的部件元素后将三维工厂模型投放至场景编辑窗口中,设置三维工厂模型对应的应用场景,其中,两个不同的编辑窗口可以进行切换。
(3)对部件添加特征点,特征线,特征面
实现方案:对部件可以供拾取的部件关键点、关键线、关键面并对其进行标记。
(4)对复杂部件构建结构树
实现方案:采用指定结构树对复杂部件构建结构,使复杂部件中各部件之间存在指定连接关系。
(5)每个部件都有唯一标识符
实现方案:采用商讯通(goods information display,GID)唯一标记部件。
(6)每个部件预留100条属性
实现方案:首先预制一些公共的基础属性,后续可以在部件编辑窗口二次添加相关属性。
(7)根据起始点和结束点自动生成管道
实现方案:通过编写指定算法来自动完成指定三模型的生成,其中包括直管和弯管。
3、模型操作与显示模块。
(1)只显示模型边框
实现方案:针对不同的基础部件渲染其关键特征边框线,从而实现只显示模型边框。
在另一个可选方案中,根据cad参数曲线得到模型边框。
(2)显示被遮挡状态
实现方案:room类型的部件使用半透明材质,从而显示被遮挡状态。
(3)选中边框高亮显示
实现方案:在特征边框线可以设置其色彩属性。
(4)视角工具辅助操作
实现方案:示意性的,请参考图7,其示出了本申请一个示例性实施例提供的操作模型示意图,如图7所示,当前显示操作模型700,其实现为一个六方体,六方体的每个面代表不同类型的操作,包括切换至主视图、切换至正交视图、设置当前视图为主视图以及重置主视图,通过切换六方体的关键线和关键面来切换对应的操作。
(5)按键可以移动方向,鼠标左键平移,右键旋转
实现方案:按键可以移动方向,鼠标左键平移,右键旋转,滚轮前后可以拉近拉远视角。
4、数据输出。
(1)输出剖面图DraWinG(dwg格式)和可移植文档格式(Portable DocumentFormat,PDF)
实现方案:选取标高范围得到范围内的设备,向下投影,得到设备轮廓,在画布上按照设备坐标进行绘制,从而绘制设备轮廓。
示意性的,请参考图8,其示出了本申请一个示例性实施例提供的剖面图生成示意图,如图8所述,当前获取目标设备的三维模型800,根据三维模型800选取标高范围,对其进行向下投影,在画布上按照设备坐标进行绘制,从而生成目标设备对应的设备轮廓810。
(2)输出感光度(International Standardization Organization,ISO)管段图
实现方案:固定视角、方向之后,根据基础部件上的特征点,计算出视角和基础部件之间的距离和相对位置,标注的距离信息也根据特征点计算后得出。
(3)部件搜索,结果展示
实现方案:以关键字段查找项目数据库中的信息,信息按需进行组织以UI表格的方式进行展示。
(4)输出部件列表
实现方案:借助C语言工具,将数据按excel格式输出。
(5)输出三维模型
实现方案:调研CAD开源库,将引擎数据能转化成STP格式数据和IFC格式数据。
5、多人编辑模块。
(1)状态同步,保存后同步
实现方案:构建一个同步服务器,需要将本地操作按序保存并同步到服务器端,每个用户编辑的是三维工厂模型的不同区域。
(2)同步时发送状态同步消息
实现方案:发送状态同步成功或状态失败消息。
6、消息发布模块。
示意性的,请参考图9,其示出了本申请一个示例性实施例提供的即时通讯系统结构图,如图9所示,当前系统900中包括客户端910、网关层920、微服务集群930,用户中心940和消息队列950。
其中,用户中心940负责在客户端910和网关层920之间进行用户认证,使得用户能够通过客户端910进行帐号登录,并与网关层920进行连接,在登录成功后,将登录信息通过消息队列950发送微服务集群930,其中,微服务集群940中包括聊天服务、搜索服务和资源管理。将服务器结果存储至存储系统960,其中,包括开源分布式关系型数据库(TiDB数据库)、Redis集群和OBS服务器中。
(1)建立群组
实现方案:建立即时通讯(IM)消息服务,使用统一的用户中心进行IM用户注册以及IM群组管理。
(2)发送文字,图片,数据库链接
实现方案:文本,二进制流进行发送,通过对象存储服务进行图片等文件上传及下载,通过聊天服务进行消息和数据的转发。
(3)所有消息保存在数据库中
实现方案:消息发送先到服务器,服务器存储数据库,服务器再完成消息转发。
7、数据库接入模块。
示意性的,请参考图10,其示出了本申请一个示例性实施例提供的数据库接入示意图,如图10所示,当前系统1000中包含项目数据库1001、消息数据库1002、供应商信息库1003、PID部件库1004,三维元件库1005、规格编码对照表1006、元件索引表1007、PID图标1008、三维模型库1009、规格书数据库1010、采购数据库1011、施工信息数据库1012和文档数据库1013。
(1)国产数据库选型
实现方案:采用国产数据库TiDB。
(2)建立后台管理终端
实现方案:通过客户端和实现对各个数据库系统的后台进行管理。
3、数据库权限管理
实现方案:同上,通过后台管理终端进行用户权限与数据库权限管理。
4、三维部件库
实现方案:设计包含各个部件特征的数据表,包括基本体表、特征表、自定义组合表、部件表,可以通过管理后台进行表结构维护。
5、规格编码对照表
6、文档数据库
实现方案:文档属性,存储路径,可以发送文档连接。
7、消息数据库
实现方案:IM系统相对应的数据库。
8、项目库
实现方案:项目库关联以上所有库,以及项目新产生资产文件。
图11是本申请一个示例性实施例提供的三维模型的云渲染装置的结构框图,如图11所示,该装置包括如下部分:
第一接收模块1110,用于接收对所述指定三维模型的编辑操作,所述编辑操作用于对指定三维模型的模型部分进行编辑;
发送模块1120,用于向所述云服务器发送编辑指令;
所述接收模块1110,还用于接收所述云服务器发送的渲染结果,并显示经过编辑的所述指定三维模型,其中,所述渲染结果是指所述云服务器根据多个终端分别发送的所述编辑指令,通过目标渲染引擎对所述指定三维模型进行渲染后的结果。
在一些实施例中,所述第一接收模块1110,还用于接收编辑结束操作,所述编辑结束操作用于结束所述编辑操作;
所述发送模块1120,还用于基于所述编辑结束操作向所述云服务器发送所述编辑指令。
在一些实施例中,所述发送模块1120,还用于向中间服务器发送所述编辑指令,所述中间服务器用于接收所述编辑指令后向所述云服务器转发所述编辑指令;
所述第一接收模块1110,还用于接收所述中间服务器发送的渲染结果,所述渲染结果是所述云服务器向所述中间服务器发送的渲染结果。
在一些实施例中,所述第一接收模块1110,还用于接收所述中间服务器发送的状态同步信息,所述状态同步信息用于指示所述多个终端同步接收到所述渲染结果。
在一些实施例中,所述中间服务器中包括数据库,所述模型部分中包括部件元素;
如图12所示,所述装置还包括:
显示模块1130,用于显示部件编辑窗口;
所述第一接收模块1110,还用于在所述部件编辑窗口中接收对部件元素的配置操作,所述配置操作用于对所述部件元素的元素属性进行配置;
所述发送模块1120,还用于向所述中间服务器发送配置指令,所述中间服务器用于根据多个终端分别发送的配置指令,从所述数据库中对多个部件元素分别对应的元素属性进行配置;
所述第一接收模块1110,还用于接收所述中间服务器发送的所述配置结果,并显示经过配置的多个部件元素。
图13是本申请一个示例性实施例提供的三维模型的云渲染装置的结构框图,如图13所示,该装置包括如下部分:
第二接收模块1310,用于接收多个终端分别发送的编辑指令;
渲染模块1320,用于基于所述多个终端分别发送的编辑指令,通过所述目标渲染引擎对所述指定三维模型进行渲染;
反馈模块1330,用于向所述多个终端分别反馈渲染结果。
在一些实施例中,所述编辑指令中包括第一终端发送的第一编辑指令,所述第一编辑指令中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
所述第二接收模块1310,还用于接收第一终端发送的第一编辑指令;
所述渲染模块1320,还用于获取运行中的至少一个渲染引擎对应的资源占用量;基于所述资源占用量确定所述云服务器中的资源剩余量;在所述资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染。
在一些实施例中,所述渲染模块1320,还用于在所述资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动所述目标渲染引擎。
综上所述,本申请实施例提供的三维模型的云渲染装置,在多个终端和云服务器中的目标渲染引擎分别建立有连接关系的情况下,当多个终端分别接收到对指定三维模型不同模型部分进行编辑的编辑操作后,向云服务器分别发送不同的编辑指令,当云服务器接收到不同的编辑指令后,通过目标渲染引擎对指定三维模型进行渲染,并向多个终端分别反馈指定三维模型的渲染结果,最终使得不同终端在接收到渲染结果后显示经过编辑的指定三维模型。也即,在同时接收到不同终端针对三维模型的不同部分的编辑指令后,根据不同编辑指令通过渲染引擎对三维模型进行渲染,并向不同终端发送渲染结果,使得不同终端不仅能够显示三维模型自身部分的渲染结果,还能显示其他终端对三维模型其他部分的渲染结果,提高了三维模型的云渲染的效率,使得不同终端能够协同对同一三维模型进行渲染。
需要说明的是:上述实施例提供的三维模型的云渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的三维模型的云渲染装置与三维模型的云渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
图14示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:
服务器1400包括中央处理单元(Central Processing Unit,CPU)1401、包括随机存取存储器(Random Access Memory,RAM)1402和只读存储器(Read Only Memory,ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。服务器1400还包括用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1406。
大容量存储设备1406通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。大容量存储设备1406及其相关联的计算机可读介质为服务器1400提供非易失性存储。也就是说,大容量存储设备1406可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1406可以统称为存储器。
根据本申请的各种实施例,服务器1400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1400可以通过连接在系统总线1405上的网络接口单元1411连接到网络1412,或者说,也可以使用网络接口单元1411来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述实施例中任一所述的虚拟痕迹显示方法。
可选的,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 三维模型渲染方法、装置及电子设备
- 三维虚拟宠物的二维渲染图的生成方法、设备及存储介质
- 三维模型处理方法和装置、电子设备、计算机可读存储介质
- 三维模型的遮挡确定方法、装置、计算机设备和存储介质
- 基于三维模型的美妆方法、装置、电子设备和存储介质
- 一种基于部件模型组合的三维云渲染方法及三维云渲染系统
- 一种基于部件模型组合的三维云渲染方法及三维云渲染系统