CN114565715A - 用于三维变电站模型复用的渲染方法、装置和计算机设备 - Google Patents
用于三维变电站模型复用的渲染方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN114565715A CN114565715A CN202210141471.9A CN202210141471A CN114565715A CN 114565715 A CN114565715 A CN 114565715A CN 202210141471 A CN202210141471 A CN 202210141471A CN 114565715 A CN114565715 A CN 114565715A
- Authority
- CN
- China
- Prior art keywords
- map
- baking
- scene
- dimensional
- models
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- 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
-
- 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)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种用于三维变电站模型复用的渲染方法、装置和计算机设备。所述方法包括:获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;根据所述各模型之间的复用关系,生成所述三维变电站的场景图;根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。采用本方法能够通过模型复用减少场景图所需要的内存空间,将多个模型的光照贴图合并到同一张贴图上,减少整体的存储空间,降低存储资源消耗。
Description
技术领域
本申请涉及智能电网技术领域,特别是涉及一种用于三维变电站模型复用的渲染方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着智能电网技术的发展,出现了数字孪生变电站,以数字化的方式创建变电站三维模型,来反映变电站各个实体设备的全生命周期过程,实际应用中可以基于WebGL(WebGraphics Library,网络图形库)来实现。然而,由于在同一座变电站中,同型号的设备通常较多,基于WebGL创建数字孪生变电站存在三维场景模型加载重复率高、初始化时间长、内存消耗大、场景应用性能低等问题。为加快加载速度,可以通过设置并加载模型预制体的方式来实现三维场景,但是,由于预制体不接受三维场景静态烘焙灯光,容易出现模型呈现颜色较深、与三维场景不相融合的问题。
现有技术中,可以使用3D MAX基本光影贴图的Lightingmap进行烘焙,使物体直接拥有一个基本光影,之后将每个模型及其烘焙好的贴图一同导出,在模型加载时设置相应的光影贴图数据,从而得到烘焙到模型上的光影关系。然而,对于重复出现率高的模型,3DMAX无法进行模型复用,容易导致三维场景模型内存增大。而且,重复出现率高的场景通常使用构建工具构建完整的三维场景,在没有整个三维场景的情况下,3D MAX无法烘焙出每个设备模型统一的灯光方向的光影贴图。此外,3D MAX处理得到的模型贴图存储空间很大,运行时占用客户端的内存较大,加载时间较长,在基于B/S架构的WebGL中,3D MAX也无法直接导出模型供WebGL使用,需要使用构建工具,当需要修改或调节灯光强度时,处理流程较为繁琐。
因此,目前用于三维变电站模型复用的渲染技术存在存储资源消耗较大的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低存储资源消耗的渲染方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种用于三维变电站模型复用的渲染方法。所述方法包括:
获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
在其中一个实施例中,所述获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息的步骤之前,还包括:
通过游戏引擎对所述三维变电站中各模型进行烘焙,得到各模型所对应的第一烘焙贴图和第一贴图信息;
将所述第一烘焙贴图转换成第二烘焙贴图,以及,将所述第一贴图信息转换成第二贴图信息;所述第二烘焙贴图和所述第二贴图信息均适用于网络图形库。
在其中一个实施例中,所述将所述第一烘焙贴图转换成第二烘焙贴图,以及,将所述第一贴图信息转换成第二贴图信息的步骤之后,还包括:
压缩所述第二烘焙贴图,得到压缩后第二烘焙贴图;
将所述模型、所述压缩后第二烘焙贴图和所述第二贴图信息对应存储在数据表的单元格中。
在其中一个实施例中,所述获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息,包括:
从所述数据表中读取所述模型对应的压缩后第二烘焙贴图和第二贴图信息;
对所述压缩后第二烘焙贴图进行解压缩,得到所述原始烘焙贴图;
根据所述第二贴图信息,得到所述贴图信息。
在其中一个实施例中,所述根据所述各模型之间的复用关系,生成所述三维变电站的场景图,包括:
根据所述各模型之间的复用关系,判断是否需要对模型进行复用;
若需要,判断是否已经下载所述模型的预制体;
若已经下载,通过加载所述预制体,生成所述三维变电站中的至少一个复用模型;
根据所述模型和所述至少一个复用模型,生成所述三维变电站的场景图。
在其中一个实施例中,所述通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染,包括:
根据所述场景烘焙贴图,得到贴图数组;
通过将所述贴图数组赋值给所述场景图的贴图属性,对所述三维变电站的场景图进行渲染。
第二方面,本申请还提供了一种用于三维变电站模型复用的渲染装置。所述装置包括:
获取模块,用于获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
场景图生成模块,用于根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
贴图生成模块,用于根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
渲染模块,用于通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
上述渲染方法、装置、计算机设备、存储介质和计算机程序产品,通过获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息,根据各模型之间的复用关系生成三维变电站的场景图,根据贴图信息调整原始烘焙贴图得到场景烘焙贴图,并通过场景烘焙贴图对三维变电站的场景图进行渲染,可以通过模型复用减少场景图所需要的内存空间,将多个模型的光照贴图合并到同一张贴图上,减少整体的存储空间,降低存储资源消耗。
附图说明
图1为一个实施例中用于三维变电站模型复用的渲染方法的应用环境图;
图2为一个实施例中用于三维变电站模型复用的渲染方法的流程示意图;
图3为一个实施例中模型复用和光照贴图构建的流程示意图;
图4为一个实施例中模型复用应用和光照贴图动态应用的流程示意图;
图5为一个实施例中用于三维变电站模型复用的渲染装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种用于三维变电站模型复用的渲染方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S210,获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息。
其中,复用关系可以为模型预制体的使用情况。
其中,贴图信息可以包括烘焙贴图数组索引和烘焙贴图位置信息。
具体实现中,可以将三维变电站中各模型之间的复用关系,以及模型与原始烘焙贴图和贴图信息之间的对应关系预先存储在数据库中,数据库可以位于终端,也可以位于服务器,当在前端基于WebGL建立三维变电站时,可以从数据库中读取三维变电站各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息。
实际应用中,可以将Unity 3D作为三维场景编辑和灯光烘焙的工具,预先构建模型复用关系和生成原始的光照贴图。在构建模型复用关系时,可以在Unity3D中创建复用模型的预制体,在三维场景中构建预制体的复用关系;还可以在三维场景中添加灯光,进行灯光建设,通过Unity 3D进行三维场景的烘焙,用户可以对烘焙效果进行确认,若用户判定烘焙效果不佳,可以重新进行三维场景灯光建设和三维场景烘焙,否则,若用户认可烘焙效果,则可以通过Unity 3D插件读取场景烘焙贴图文件(.exr格式),以及每个模型的LightmapIndex(烘焙贴图数组索引)和Tiling x、Tiling y、Offset x、Offset y(烘焙贴图位置信息)。其中,Tiling x和Tiling y可以为光照贴图在模型渲染图片上顶点值的二维关系位置,Offset x和Offset y可以为光照贴图在模型渲染图上的偏移位置。为便于前端使用,还可以将烘焙贴图数组索引和烘焙贴图位置信息转换成WebGL可以使用的格式,例如,可以将场景烘焙贴图文件由.exr格式转换成.png格式,将Tiling x、Tiling y、Offset x、Offset y分别转换成x、y、z、w,生成Vect4(x,y,z,w),并以Json文件进行存储。之后可以对原始烘焙贴图进行压缩,例如,可以采用无损图像压缩算法进行压缩,可以通过Photoshop将原始烘焙贴图存储为8位通道png格式的烘焙贴图,还可以采用opencv图片深度处理,将自动烘焙出的24深度png图片转换成8位深度图片。完成模型复用关系构建和原始光照贴图的生成后,可以将模型复用关系存储在数据库中,还可以将原始烘焙贴图与烘焙贴图数组索引和烘焙贴图位置信息一一对应存储在数据库中。
需要说明的是,当场景灯光需要更改时,可以在Unity 3D调整灯光重新进行烘焙,获取新的烘焙贴图数组索引和烘焙贴图位置信息,并进行存储,由于无需更改三维模型,可以降低灯光更改的工作量。
步骤S220,根据各模型之间的复用关系,生成三维变电站的场景图。
具体实现中,可以在前端加载三维场景,读取数据库中的模型复用关系,依次判断三维场景中的模型是否存在复用关系,若不存在复用关系,则可以直接下载模型加载到三维场景中,否则,若存在复用关系,则可以进一步判断用于进行复用的预制体是否已经下载到本地缓存,若未下载到本地缓存,则需要先下载预制体,若已下载到本地缓存,则可以加载预制体,将预制体存储在内存中,根据预制体创建模型对象,并实例化到三维场景中。采用上述方法将三维场景中的各个模型实例化到三维场景中,可以得到三维变电站的场景图。
步骤S230,根据贴图信息调整原始烘焙贴图,得到场景烘焙贴图。
其中,场景烘焙贴图可以为最终显示在模型上的贴图。
具体实现中,可以在前端根据贴图信息对三维变电站场景图中的各个模型进行烘焙参数设置,根据设置好的烘焙参数调整原始烘焙贴图,得到适于显示在各个模型上的场景烘焙贴图。
其中,烘焙参数可以包括场景中的烘焙贴图数量、各模型分别所使用的烘焙贴图索引及烘焙贴图位置,以及贴图与模型之间的对应关系。
实际应用中,可以在读取.png格式的烘焙贴图,以及贴图信息LightmapIndex和Vect4(x,y,z,w)后,对png格式的烘焙贴图进行解压缩,得到.exr格式的原始烘焙贴图,根据LightmapIndex和x,y,z,w设置模型在场景中的烘焙参数,例如,可以根据LightmapIndex确定模型所使用烘焙贴图的索引,根据x,y,z,w确定将烘焙贴图应用于模型时的顶点位置和偏移信息,之后,可以根据烘焙参数调整原始烘焙贴图,得到适于显示在模型上的场景烘焙贴图。
需要说明的是,场景中的多个模型可以具备不同的贴图信息,但是共用同一张原始烘焙贴图,从而减少原始烘焙贴图的存储空间,降低整体资源的消耗。
步骤S240,通过场景烘焙贴图,对三维变电站的场景图进行渲染。
具体实现中,步骤S220生成的三维变电站场景图是未进行渲染的,可以将场景烘焙贴图显示在三维变电站场景图上,对三维变电站场景图进行渲染。
实际应用中,三维场景模型实例化完成后,可以根据烘焙贴图索引和位置信息下载烘焙贴图,并将烘焙贴图存储成贴图数组,将贴图数组直接赋值给三维场景的场景光照贴图属性。
上述渲染方法,通过获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息,根据各模型之间的复用关系生成三维变电站的场景图,根据贴图信息调整原始烘焙贴图得到场景烘焙贴图,并通过场景烘焙贴图对三维变电站的场景图进行渲染,可以通过模型复用减少场景图所需要的内存空间,将多个模型的光照贴图合并到同一张贴图上,减少整体的存储空间,降低存储资源消耗。
在一个实施例中,上述渲染方法,具体还可以包括:通过游戏引擎对三维变电站中各模型进行烘焙,得到各模型所对应的第一烘焙贴图和第一贴图信息;将第一烘焙贴图转换成第二烘焙贴图,以及,将第一贴图信息转换成第二贴图信息;第二烘焙贴图和第二贴图信息均适用于网络图形库。
其中,第一烘焙贴图可以为.exr格式的烘焙贴图。第二烘焙贴图可以为.png格式的烘焙贴图。
其中,第一贴图信息可以为烘焙贴图位置信息Tiling x、Tiling y、Offset x、Offset y。第二贴图信息可以为Vect4(x,y,z,w),其中,x、y、z、w可以分别为Tiling x、Tiling y、Offset x、Offset y。
其中,游戏引擎可以为Unity 3D。网络图形库可以为WebGL。
具体实现中,可以在三维场景中添加灯光,进行灯光建设,通过Unity 3D进行三维场景的烘焙,用户可以对烘焙效果进行确认,若用户判定烘焙效果不佳,可以重新进行三维场景灯光建设和三维场景烘焙,否则,若用户认可烘焙效果,则可以通过Unity 3D插件读取场景烘焙贴图文件(.exr格式),即第一烘焙贴图,以及每个模型的LightmapIndex(烘焙贴图数组索引)和Tiling x、Tiling y、Offset x、Offset y(烘焙贴图位置信息),即第一贴图信息。其中,Tiling x和Tiling y可以为光照贴图在模型渲染图片上顶点值的二维关系位置,Offset x和Offset y可以为光照贴图在模型渲染图上的偏移位置。为便于前端使用,还可以将烘焙贴图数组索引和烘焙贴图位置信息转换成WebGL可以使用的格式,例如,可以将场景烘焙贴图文件由.exr格式转换成.png格式,即第二烘焙贴图,将Tiling x、Tiling y、Offset x、Offset y分别转换成x、y、z、w,生成Vect4(x,y,z,w),即第二贴图信息,并以Json文件进行存储。
本实施例中,通过Unity 3D对三维变电站中各模型进行烘焙,得到各模型所对应的第一烘焙贴图和第一贴图信息;将第一烘焙贴图转换成第二烘焙贴图,以及,将第一贴图信息转换成第二贴图信息,可以得到适于WebGL使用的第二烘焙贴图和第二贴图信息,便于基于WebGL进行前端处理,提高三维变电站创建的效率。
在一个实施例中,上述渲染方法,具体还可以包括:压缩第二烘焙贴图,得到压缩后第二烘焙贴图;将模型、压缩后第二烘焙贴图和第二贴图信息对应存储在数据表的单元格中。
具体实现中,在得到第二烘焙贴图和第二贴图信息后,可以对第二烘焙贴图进行压缩,得到压缩后第二烘焙贴图,例如,可以采用无损图像压缩算法进行压缩,可以通过Photoshop将原始烘焙贴图存储为8位通道png格式的烘焙贴图,还可以采用opencv图片深度处理,将自动烘焙出的24深度png图片转换成8位深度图片。之后可以将模型及其对应的压缩后第二烘焙贴图、烘焙贴图数组索引和烘焙贴图位置信息一一对应存储在数据库中。
本实施例中,通过压缩第二烘焙贴图,得到压缩后第二烘焙贴图;将模型、压缩后第二烘焙贴图和第二贴图信息对应存储在数据表的单元格中,可以进一步降低烘焙贴图的存储空间。
在一个实施例中,上述步骤S210,可以具体包括:从数据表中读取模型对应的压缩后第二烘焙贴图和第二贴图信息;对压缩后第二烘焙贴图进行解压缩,得到原始烘焙贴图;根据第二贴图信息,得到贴图信息。
具体实现中,当在前端基于WebGL建立三维变电站时,可以从数据库中读取模型对应的压缩后第二烘焙贴图、烘焙贴图数组索引和烘焙贴图位置信息,对压缩后第二烘焙贴图进行解压缩,可以得到原始烘焙贴图,并将烘焙贴图数组索引和烘焙贴图位置信息作为贴图信息。
例如,可以从数据库中读取当前需要处理的模型对应的压缩后8位深度的烘焙图片、LightmapIndex和Vect4(x,y,z,w),对烘焙图片进行解压缩得到原始烘焙贴图,并将LightmapIndex和Vect4(x,y,z,w)作为贴图信息。
本实施例中,通过从数据表中读取模型对应的压缩后第二烘焙贴图和第二贴图信息;对压缩后第二烘焙贴图进行解压缩,得到原始烘焙贴图;根据第二贴图信息,得到贴图信息,可以快速获取到原始烘焙贴图和贴图信息,缩短加载时长。
在一个实施例中,上述步骤S220,可以具体包括:根据各模型之间的复用关系,判断是否需要对模型进行复用;若需要,判断是否已经下载模型的预制体;若已经下载,通过加载预制体,生成三维变电站中的至少一个复用模型;根据模型和至少一个复用模型,生成三维变电站的场景图。
具体实现中,可以在前端加载三维场景,读取数据库中的模型复用关系,依次判断三维场景中的模型是否需要进行复用,若不需要复用,则可以直接下载模型加载到三维场景中,否则,若需要复用,则可以进一步判断用于进行复用的预制体是否已经下载到本地缓存,若未下载到本地缓存,则需要先下载预制体,若已下载到本地缓存,则可以加载预制体,将预制体存储在内存中,根据预制体创建模型对象,并实例化到三维场景中,生成三维变电站中的一个复用模型。采用上述方法将各个模型实例化到三维场景中,可以得到三维变电站的场景图。
本实施例中,通过根据各模型之间的复用关系,判断是否需要对模型进行复用;若需要,判断是否已经下载模型的预制体;若已经下载,通过加载预制体,生成三维变电站中的至少一个复用模型;根据模型和至少一个复用模型,生成三维变电站的场景图,可以通过模型复用减少场景图占用的内存资源,提高场景图的加载速度。
在一个实施例中,上述步骤S240,可以具体包括:根据场景烘焙贴图,得到贴图数组;通过将贴图数组赋值给场景图的贴图属性,对三维变电站的场景图进行渲染。
具体实现中,三维场景模型实例化完成后,可以根据烘焙贴图索引和位置信息下载烘焙贴图,并将烘焙贴图存储成贴图数组,将贴图数组直接赋值给三维场景的场景光照贴图属性,实现对三维变电站场景图的渲染。
本实施例中,通过根据场景烘焙贴图,得到贴图数组;通过将贴图数组赋值给场景图的贴图属性,对三维变电站的场景图进行渲染,可以对场景烘焙贴图进行数字化描述,确保对场景图渲染的准确性。
为了便于本领域技术人员深入理解本申请实施例,以下将结合一个具体示例进行说明。
由于变电站模型量数据大,为了加快网页版三维场景加载速度和提高渲染效率,对变电站内的模型进行模型复用处理,经过模型复用的三维场景,场景烘焙将整个场景的光照信息烘焙到一张或者多张光照贴图上,场景烘焙后在Web端运行时由模型复用信息自动生成的新模型无法自动获取光照信息,因此,提出了基于WebGL的模型复用后光照贴图数据还原可渲染方法。
用无缝贴图做到模型上面去,在3D里面渲染出来,借助功能信息生成比较小的贴图(现有技术中一个变电站的功能贴图大小可能有200-300MB,采用本方案可以降到20MB左右),把渲染出来的图用自己开发的算法还原到流程里面去。只下载一个模型,用克隆的方式把生成的模型的光照还原,同一个模型多次实例化,实现模型的复用。
编辑三维场景时候,在三维引擎进行场景烘焙,但是基于复用关系用预制体动态生成的模型对象无法使用三维场景光照贴图,虽然基于Unity 3D,UE4引擎的C/S程序可以通过三维场景增加光照补偿的方式处理该问题,但是基于WebGL的B/S架构引擎,目前通过灯光补偿效果不佳,且烘焙出来的光照贴图过大,大量消耗客户端内存和现存资源。
本方案通过将场景烘焙光照贴图经过网络化存储无质量损失压缩,再将光照贴图与模型、光照信息进行分开存储,通过程序动态为模型附加光照信息,即可实现模型动态复用与光照贴图可渲染。
图3提供了一个模型复用和光照贴图构建的流程示意图。根据图3,通过Unity 3D作为三维场景编辑、三维场景灯光烘焙工具,运用自研的Unity 3D插件读取场景烘焙贴图文件数据(.exr格式),以及每个模型的LightmapIndex(烘焙贴图数组索引)和Tiling x、Tiling y、Offset x、Offset y(四个模型Mesh每个顶点的UV对应采集烘焙贴图的位置信息),并转换成WebGL使用的烘焙贴图(.png格式)以及由Tiling x、Tiling y、Offset x、Offset y转化成的Vect4(x,y,z,w)格式的Json文件存储在服务器,提供给前端使用。场景模型复用关系构建首先是在Unity 3D中创建复用模型的预制体,在三维场景构建预制体在场景中的复用关系;场景烘焙在unity 3D场景中添加灯光,然后通过Unity 3D进行三维场景的烘焙,用户可以通过构建工具对烘焙贴图进行无明显质量压缩处理,或通过Photoshop将图片存储为8位通道png的烘焙贴图;构建工具读取场景模型信息、模型复用关系信息、模型光照贴图信息、模型光照贴图Tiling x、Tiling y、Offset x、Offset y信息等进行存储。
图4提供了一个模型复用应用和光照贴图动态应用的流程示意图。根据图4,前端应用先加载三维场景,根据三维场景加载场景中的模型信息、模型复用信息、光照贴图信息等相关数据。三维场景根据模型数据依次加载三维模型并实例化到三维场景,模型加载、实例化时,先判断模型是否是具备复用关系的模型,如果是非复用关系模型,直接下载模型加载到三维场景,如果是复用关系的模型,判断复用预制体是否已经下载到客户端缓存,对未加载到本地缓存的模型先进行模型下再进行模型创建模型对象,实例化到三维场景,三维场景根据模型烘焙贴图Tiling x、Tiling y、Offset x、Offset y数据,LightmapIndex相关值进行模型在三维场景中的烘焙参数数据设置。三维场景模型实例化完后三维场景根据烘焙贴图信息下载烘焙贴图,并将烘焙贴图存储成贴图数组,将贴图数组直接赋值给三维场景的场景光照贴图属性。
其中,WebGL是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGLES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。
其中,B/S(Browser/Server,浏览器/服务器)模式是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
其中,C/S(Client-Serve,服务器-客户机)结构通常采取两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。
其中,Unity 3D是实时3D互动内容创作和运营平台,包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
其中,UE4(Unreal Engine 4,虚幻引擎4)是一款由Epic Games公司开发的开源、商业收费、学习免费的游戏引擎。
本方案通过使用unity 3D作为三维编辑器,模型的复用减小了场景资源内存并加快了web端的加载时间。由于三维引擎烘焙是场景烘焙,可以将多个模型的光照贴图合并到同一张贴图上,合理减少整体光照储存空间。
而且,Unity 3D可以导出WebGL使用模型,如场景灯光需要更改,只要在Unity 3D调整灯光重新烘焙后读取、存储场景烘焙数据即可,不需要更改三维模型,流程简单,工作量较小。
此外,场景烘焙也解决了每个三维模型的灯光方向同一问题,在Unity 3D烘焙后可以直接预览场景烘焙效果,可以准确把握光影。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的渲染方法的渲染装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个用于三维变电站模型复用的渲染装置实施例中的具体限定可以参见上文中对于用于三维变电站模型复用的渲染方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种用于三维变电站模型复用的渲染装置500,包括:获取模块510、场景图生成模块520、贴图生成模块530和渲染模块540,其中:
获取模块510,用于获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
场景图生成模块520,用于根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
贴图生成模块530,用于根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
渲染模块540,用于通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
在一个实施例中,上述渲染装置500,还包括:
烘焙模块,用于通过游戏引擎对所述三维变电站中各模型进行烘焙,得到各模型所对应的第一烘焙贴图和第一贴图信息;
转换模块,用于将所述第一烘焙贴图转换成第二烘焙贴图,以及,将所述第一贴图信息转换成第二贴图信息;所述第二烘焙贴图和所述第二贴图信息均适用于网络图形库。
在一个实施例中,上述渲染装置500,还包括:
压缩模块,用于压缩所述第二烘焙贴图,得到压缩后第二烘焙贴图;
存储模块,用于将所述模型、所述压缩后第二烘焙贴图和所述第二贴图信息对应存储在数据表的单元格中。
在一个实施例中,上述获取模块510,还用于从所述数据表中读取所述模型对应的压缩后第二烘焙贴图和第二贴图信息;对所述压缩后第二烘焙贴图进行解压缩,得到所述原始烘焙贴图;根据所述第二贴图信息,得到所述贴图信息。
在一个实施例中,上述场景图生成模块520,还用于根据所述各模型之间的复用关系,判断是否需要对模型进行复用;若需要,判断是否已经下载所述模型的预制体;若已经下载,通过加载所述预制体,生成所述三维变电站中的至少一个复用模型;根据所述模型和所述至少一个复用模型,生成所述三维变电站的场景图。
在一个实施例中,上述渲染模块540,还用于根据所述场景烘焙贴图,得到贴图数组;通过将所述贴图数组赋值给所述场景图的贴图属性,对所述三维变电站的场景图进行渲染。
上述用于三维变电站模型复用的渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种用于三维变电站模型复用的渲染方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种用于三维变电站模型复用的渲染方法,其特征在于,所述方法包括:
获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息的步骤之前,还包括:
通过游戏引擎对所述三维变电站中各模型进行烘焙,得到各模型所对应的第一烘焙贴图和第一贴图信息;
将所述第一烘焙贴图转换成第二烘焙贴图,以及,将所述第一贴图信息转换成第二贴图信息;所述第二烘焙贴图和所述第二贴图信息均适用于网络图形库。
3.根据权利要求2所述的方法,其特征在于,所述将所述第一烘焙贴图转换成第二烘焙贴图,以及,将所述第一贴图信息转换成第二贴图信息的步骤之后,还包括:
压缩所述第二烘焙贴图,得到压缩后第二烘焙贴图;
将所述模型、所述压缩后第二烘焙贴图和所述第二贴图信息对应存储在数据表的单元格中。
4.根据权利要求3所述的方法,其特征在于,所述获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息,包括:
从所述数据表中读取所述模型对应的压缩后第二烘焙贴图和第二贴图信息;
对所述压缩后第二烘焙贴图进行解压缩,得到所述原始烘焙贴图;
根据所述第二贴图信息,得到所述贴图信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述各模型之间的复用关系,生成所述三维变电站的场景图,包括:
根据所述各模型之间的复用关系,判断是否需要对模型进行复用;
若需要,判断是否已经下载所述模型的预制体;
若已经下载,通过加载所述预制体,生成所述三维变电站中的至少一个复用模型;
根据所述模型和所述至少一个复用模型,生成所述三维变电站的场景图。
6.根据权利要求1所述的方法,其特征在于,所述通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染,包括:
根据所述场景烘焙贴图,得到贴图数组;
通过将所述贴图数组赋值给所述场景图的贴图属性,对所述三维变电站的场景图进行渲染。
7.一种用于三维变电站模型复用的渲染装置,其特征在于,所述装置包括:
获取模块,用于获取三维变电站中各模型之间的复用关系,以及各模型对应的原始烘焙贴图和贴图信息;
场景图生成模块,用于根据所述各模型之间的复用关系,生成所述三维变电站的场景图;
贴图生成模块,用于根据所述贴图信息调整所述原始烘焙贴图,得到场景烘焙贴图;
渲染模块,用于通过所述场景烘焙贴图,对所述三维变电站的场景图进行渲染。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141471.9A CN114565715A (zh) | 2022-02-16 | 2022-02-16 | 用于三维变电站模型复用的渲染方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141471.9A CN114565715A (zh) | 2022-02-16 | 2022-02-16 | 用于三维变电站模型复用的渲染方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114565715A true CN114565715A (zh) | 2022-05-31 |
Family
ID=81714121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210141471.9A Pending CN114565715A (zh) | 2022-02-16 | 2022-02-16 | 用于三维变电站模型复用的渲染方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114565715A (zh) |
-
2022
- 2022-02-16 CN CN202210141471.9A patent/CN114565715A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN107393013B (zh) | 虚拟漫游文件生成、显示方法、装置、介质、设备和系统 | |
WO2021146930A1 (zh) | 显示处理方法、显示处理装置、电子设备及存储介质 | |
WO2023197762A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
WO2024082878A1 (zh) | 渲染处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN111476851A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN113470092B (zh) | 地形的渲染方法和装置、电子设备和存储介质 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN116385622B (zh) | 云图处理方法、装置、计算机及可读存储介质 | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN114491352A (zh) | 模型加载方法、装置、电子设备及计算机可读存储介质 | |
CN110709891A (zh) | 虚拟现实场景模型建立方法、装置、电子设备和存储介质 | |
WO2023173828A1 (zh) | 场景元素处理方法、装置、设备和介质 | |
CN112001018A (zh) | 一种基于云渲染的高效虚拟仿真实验平台测试方法 | |
CN114565715A (zh) | 用于三维变电站模型复用的渲染方法、装置和计算机设备 | |
CN115576513A (zh) | 目标图像的显示方法、显示装置、电子设备和存储介质 | |
CN115487495A (zh) | 数据渲染方法以及装置 | |
CN110827400B (zh) | 三维场景中对象的模型生成方法、装置以及终端 | |
CN114217758A (zh) | 图像显示方法、装置、电子设备及计算机可读存储介质 | |
CN116737852A (zh) | 一种基于矢量瓦片数据的矢量绘图方法、装置和电子设备 | |
CN114307158A (zh) | 三维虚拟场景数据的生成方法及装置、存储介质、终端 | |
CN109729285B (zh) | 熔线格特效生成方法、装置、电子设备及存储介质 | |
CN114595018B (zh) | 电流流向三维展示方法、装置、计算机设备和存储介质 | |
CN113487708B (zh) | 基于图形学的流动动画实现方法、存储介质及终端设备 | |
WO2023221683A1 (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230427 Address after: Full Floor 14, Unit 3, Building 2, No. 11, Middle Spectra Road, Huangpu District, Guangzhou, Guangdong 510700 Applicant after: China Southern Power Grid Digital Grid Technology (Guangdong) Co.,Ltd. Address before: Room 86, room 406, No.1, Yichuang street, Zhongxin Guangzhou Knowledge City, Huangpu District, Guangzhou City, Guangdong Province Applicant before: Southern Power Grid Digital Grid Research Institute Co.,Ltd. |