CN114491352A - 模型加载方法、装置、电子设备及计算机可读存储介质 - Google Patents
模型加载方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114491352A CN114491352A CN202011255011.6A CN202011255011A CN114491352A CN 114491352 A CN114491352 A CN 114491352A CN 202011255011 A CN202011255011 A CN 202011255011A CN 114491352 A CN114491352 A CN 114491352A
- Authority
- CN
- China
- Prior art keywords
- model
- map
- appearance
- file
- preset
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种模型加载方法、装置、电子设备及计算机可读存储介质,涉及三维可视化技术领域。该方法包括:将模型和外观贴图分离导出,用低分辨率的预设贴图替换外观贴图,对外观贴图和含有预设贴图的模型分别进行压缩,在渲染前再将预设贴图替换为外观贴图,从而实现了大型模型文件的快速加载,有效解决了模型文件加载时间过长的问题。
Description
技术领域
本申请涉及三维可视化技术领域,具体而言,本申请涉及一种模型加载方法、装置、电子设备及计算机可读存储介质。
背景技术
三维模型是物体的多边形表示,通常用计算机或者其它视频设备进行显示。如今,三维模型已经用于各种不同的领域,例如智能医疗、电影娱乐和智慧城市等应用方向。
目前,在展示高清模型时,通常在建模的步骤就将高清图片直接作为贴图附着到模型上,将高清贴图和模型一起导出,渲染时加载含有高清贴图的模型,这样虽实现了最终的展示效果,模型文件却往往数据量很大,导致模型加载效率太低,数据加载缓慢。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是模型数据加载缓慢的技术缺陷。
第一方面,提供了一种模型加载的方法,该方法包括:
获取待加载的第一模型;第一模型表面附着有外观贴图;
将第一模型分离导出得到可加载的数据格式的第二模型和外观贴图;
对外观贴图压缩得到贴图压缩文件,对预设贴图和第二模型压缩得到模型压缩文件;
解析贴图压缩文件得到外观贴图,并加载模型压缩文件得到表面附着有预设贴图的第三模型,将预设贴图替换为外观贴图,以加载第一模型。
在第一方面的可选实施例中,获取待加载的第一模型,包括:
根据模型外观图、模型结构图和模型尺寸图构建第二模型;
将模型外观图作为外观贴图附着到第二模型表面,得到第一模型。
在第一方面的可选实施例中,对外观贴图压缩得到贴图压缩文件,包括:
使用Basis Universal压缩工具对外观贴图压缩得到贴图压缩文件。
在第一方面的可选实施例中,对预设贴图和第二模型压缩得到模型压缩文件之前,还包括:
在预设图片库中筛选出分辨率小于预设值且格式为预设格式的目标图片,将目标图片作为预设贴图。
在第一方面的可选实施例中,对预设贴图和第二模型压缩得到模型压缩文件,包括:
使用gltf-pipeline工具对预设贴图和第二模型压缩得到模型压缩文件。
在第一方面的可选实施例中,外观贴图包括外观贴图对应的压缩纹理文件;解析贴图压缩文件得到外观贴图,包括:
加载贴图压缩文件,贴图压缩文件包括外观贴图对应的basis文件;
通过basis转码器将basis文件转码成外观贴图对应的压缩纹理文件。
在第一方面的可选实施例中,将第三模型表面附着的预设贴图替换为外观贴图,包括:
获取与预设贴图对应的纹理文件;
将预设贴图对应的纹理文件替换为外观贴图对应的压缩纹理文件。
第二方面,提供了一种模型加载的装置,该装置包括:
模型获取模块,用于获取待加载的第一模型;第一模型表面附着有外观贴图;将第一模型分离导出得到第二模型和外观贴图;
贴图压缩模块,用于对外观贴图压缩得到贴图压缩文件,对预设贴图和第二模型压缩得到模型压缩文件;
模型加载模块,用于解析贴图压缩文件得到外观贴图,并加载模型压缩文件得到表面附着有预设贴图的第三模型,将预设贴图替换为外观贴图,以加载第一模型。
在第二方面的可选实施例中,模型获取模块在获取待加载的第一模型时,具体用于:
根据模型外观图、模型结构图和模型尺寸图构建第二模型;
将模型外观图作为外观贴图附着到第二模型表面,得到第一模型。
在第二方面的可选实施例中,贴图压缩模块在对外观贴图压缩得到贴图压缩文件时,具体用于:
使用Basis Universal压缩工具对外观贴图压缩得到贴图压缩文件。
在第二方面的可选实施例中,还包括贴图获取模块,具体用于:
在预设图片库中筛选出分辨率小于预设值且格式为预设格式的目标图片,将目标图片作为预设贴图。
在第二方面的可选实施例中,贴图压缩模块在对预设贴图和第二模型压缩得到模型压缩文件时,具体用于:
使用gltf-pipeline工具对预设贴图和第二模型压缩得到模型压缩文件。
在第二方面的可选实施例中,外观贴图包括外观贴图对应的压缩纹理文件;模型加载模块在解析贴图压缩文件得到外观贴图时,具体用于:
加载贴图压缩文件得到外观贴图对应的basis文件;
通过basis转码器将basis文件转码成外观贴图对应的压缩纹理文件。
在第二方面的可选实施例中,模型加载模块在将第三模型表面附着的预设贴图替换为外观贴图时,具体用于:
获取与预设贴图对应的纹理文件;
将预设贴图对应的纹理文件替换为外观贴图对应的压缩纹理文件。
第三方面,提供了一种电子设备,该电子设备包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的模型加载方法。
第四方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述任一实施例的模型加载方法。
上述的模型加载方法,通过将模型和外观贴图分离导出,并用低分辨率的预设贴图替换外观贴图,再使用basis-universal压缩工具对外观贴图进行压缩,同时用gltf-pipeline模型压缩工具对模型和预设贴图进行压缩,通过将外观贴图和模型分别压缩极大减小了模型文件的大小。在前端进行渲染前,对压缩后的外观贴图进行加载解析,对含有预设贴图的模型进行加载,再将预设贴图替换为外观贴图,也就是将两个压缩数据结合起来,达到加载含有高清外观贴图模型的目的,从而实现了大型模型文件的快速加载,有效解决了模型文件加载时间过长的问题,并且减少了服务端的数据存储压力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种模型加载方法的流程示意图;
图2为本申请实施例提供的示例中模型加载方法的流程示意图;
图3为本申请实施例提供的示例中模型加载方法的流程示意图;
图4为本申请实施例提供的一种模型加载装置的结构示意图;
图5为本申请实施例提供的一种模型加载的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
三维模型即3D(three-dimensional)模型,指三维的、立体的模型,在计算机领域则是指三维软件建造的立体模型,包括各种建筑、人物、植被、机械等等。
如今,三维模型的应用已经十分广泛。在医疗行业使用它们制作器官的精确模型;电影行业用它们打造活灵活现的人物、物体;视频游戏产业则将它们作为计算机与视频游戏中的资源;建筑业用他们来展示绝妙精巧的建筑;在最近的几十年,地球科学领域也开始构建三维地质模型。而对于非技术人员的人们,三维模型的应用也并不遥远,随着3D技术的不断进步,将会有更多的互联网应用以3D的方式呈现给用户,包括网络视讯、电子阅读、远程教育等等。例如,在旅游业中,一些名胜古迹、历史文物可以以三维模型的形式让用户体验,可以给用户带来更加真实的感受。
在互联网中展示三维模型,通常需要在Web(World Wide Web,万维网)前端对三维模型进行加载,常用的三维模型加载方案包括:先根据图形和数据在建模软件中构建三维模型,再将模型的高清外观图作为贴图附着到3D模型表面,然后通过建模软件将模型导出为浏览器可加载的数据格式,最后在前端渲染时,加载模型文件,对模型文件进行解析并完成渲染。在该现有方案中,对模型展示有高清贴图的需求时,在建模时就将高清图片直接作为贴图附着在模型上,虽然实现了展示三维模型的效果,但由于高清图片体积较大,往往导致了三维模型文件的数据量也特别大,使数据加载时间十分漫长,并且需要针对性的调整服务器数据请求超时的配置,导致用户需要较长的等待加载时间,体验较差。
本申请提供的模型加载方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例中提供的模型加载的方法,该方法可以应用于服务器,也可以应用于终端。
本技术领域技术人员可以理解,这里所使用的“终端”可以是手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、MID(Mobile Internet Device,移动互联网设备)等;“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本申请实施例中提供了一种模型加载的方法,该方法可以应用于服务器,也可以应用于终端,如图1所示,该方法可以包括:
步骤S100,获取待加载的第一模型;第一模型表面附着有外观贴图。
其中,待加载模型可以是本地库存储的模型文件,也可以是通过三维制作软件用虚拟三维空间构建出的具有三维数据的模型。
在本申请实施例中,步骤S100,获取待加载的第一模型,具体可以包括:
(1)根据模型外观图、模型结构图和模型尺寸图构建第二模型;
(2)将模型外观图作为外观贴图附着到第二模型表面,得到第一模型。
其中,第二模型是不包括贴图、只有目标物体形状的初始模型,第一模型由第二模型完成外观贴图所得。
三维建模大致可以分为两个类型:NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)和多边形网格。其中,NURBS是一种非常优秀的建模方式,能够比传统的网格建模方式更好地控制物体表面曲线度,因此可以创造出更逼真、生动的造型。而多边形网络建模是靠拉面的方式,适合做效果图与复杂场景动画。对于何种建模方法获得三维模型,本申请不做限制。
除了不同的建模方法和建模软件可以使三维模型更加灵活生动,纹理的运用也非常重要。纹理既包括通常意义上物体表面的纹理即物体表面呈现的凹凸不平的沟纹,同时也包括了在光滑表面上的彩色图案,把纹理按照特定的方式映射到物体表面上,可以使物体看上去更加真实。其中,对于纹理映射的方式可以是利用UV坐标来完成。对于三维模型,除了(X,Y,Z)坐标系统很重要,UV坐标也应该给予关注,因为UV坐标是贴图映射到模型表面的依据。UV坐标即UVW坐标,U和V分别是图片在显示器水平和竖直方向的坐标,W的方向垂直于显示器表面。对于NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)建模方法,NURBS的表面本身具有UV参数,可以较容易把表面上的点和平面上的像素对应,而对于多边形模型来说,为了贴图可以额外引进UV坐标,便于把多边形的定点和图像的像素对应。
获取贴图的方法很多,可以使用PS(Adobe Photoshop,图像处理软件)制作,也可以在三维软件中使用高模拓扑得到,贴图的尺寸可以是正方形,并且应该尽可能的小。贴图的类型可以是漫反射贴图,可以是凹凸贴图,还可以是法线贴图。其中,发现贴图可以根据光线和阴影计算模型的表面细节,虽然是二维效果,但却可以体现三维细节,实现了通过低面数模型来模拟高面数模型的效果,增加了层次感,还可以降低模型的面数。
本申请实施例中,第一模型可以是完成贴图后的三维模型,即已经将外观贴图转化为纹理,映射到了模型表面,在进行模型展示时,可以看见模型表面呈现出纹路和图案,因此第一模型的数据中可以含有贴图的UV坐标信息。
步骤S200,将第一模型分离导出得到可加载的数据格式的第二模型和外观贴图。
在本申请实施例中,第二模型的含义为将第一模型的贴图去除后的模型文件,导出第二模型的文件格式可以为GLTF(Graphics Language Transmission Format,图形语言传输格式)格式,便于应用程序进行实时渲染。三维模型有Web端应用需求时,用GLTF格式来保存模型更加合适,可以有更快的模型加载速度。
具体的,GLTF是一种三维模型文件格式,该格式的特点是最大程度减少了三维模型文件的大小,优化了传输、加载以及解析三维模型文件的效率,并且具有可扩展性和交互性。GLTF模型文件包含场景中节点层次结构、摄像机、网格、材质以及动画等描述信息。
外观贴图可以导出为png(Portable Network Graphics,便携式网络图形)格式,png格式是一种采用无损压缩算法的位图格式,有很多优势:体积小,且保持了一定的清晰度;无损压缩,可以重复保存而不降低图像质量;更优化的网络传输显示,在浏览器上可以采用流式浏览,允许连续读出和写入图像数据,该特性很适合在通信过程中显示和生成图像。
在本申请实例中,将第二模型和外观贴图分开导出,可以在下一步分别压缩模型和贴图,从而进一步缩小模型文件的目的。
步骤S300,对外观贴图压缩得到贴图压缩文件,对预设贴图和第二模型压缩得到模型压缩文件。
其中,预设贴图可以是分辨率或格式满足特定要求的贴图,例如分辨率小于预设值且贴图格式为png格式。预设贴图还可以是外观贴图经过处理后对应的灰度图像和二值图像,当有预览模型概貌的需求时,可以先展现用灰度图像或者二值图像作为贴图的模型,再选择要不要进行进一步加载。
在本申请实施例中,在步骤S300对预设贴图和第二模型压缩得到模型压缩文件之前,还可以包括:
在预设图片库中筛选出分辨率小于预设值和格式为预设格式的目标图片,将目标图片作为预设贴图。
其中,预设图片库可以是本地图片库,可以是网络图片库,还可以是由爬虫爬取合成的图片库。可以在预设图片库中筛选出分辨率小于预设值且格式为png格式的目标图片,将该目标图片作为预设贴图。在一个实施例中,预设贴图可以为纯色图片,例如纯黑、纯白,还可以是高清贴图对应的二值图像、灰度图像,用来在一些特定的展示需求中使用。
在本申请实施例中,外观贴图可能是高清外观图片,此时外观贴图的大小可能比模型文件还要大,可以将模型和贴图分开处理。
对于贴图文件的处理,可以是对png格式的图片进行压缩,也可以是将png格式转成jpg(即JPEG,Joint Photographic Experts Group,JPEG格式)格式减少纹理大小。这两种方法优化了图片加载速度,但在贴图加载完毕之后,格式为png或者jpg格式的贴图文件需要转化为纹理才能开始渲染,通常情况下,当贴图纹理尺寸相同时占用GPU内存的大小也相同,因此没能在渲染过程中进行优化。
在一个实施例中,可以使用Basis Universal压缩工具对外观贴图进行压缩。该方案使用的是开源Basis Universal GPU纹理编解码器,不仅仅保持了GPU性能效率,并且提升了Web、桌面端和移动应用程序中图像传输的性能,其原因在于Basis Universal纹理格式将会在整个应用过程中保持压缩状态,在GPU上的资源占用比传统JPEG格式小6-8倍,但文件存储所需空间大小却与JPEG相似,它所创建的压缩文件适用于各种常见的应用场景。
在步骤S200中可以将模型导出为GLTF格式,GLTF文件实际上不是单个文件,它可以包括:
(1)模型文件,包含场景中节点层次结构、摄像机、网格、材质以及动画等描述信息。
(2)二进制文件,包含几何、动画的数据以及其他基于缓冲区的数据,后缀一般为.bin,该文件可以直接加载到GPU的缓冲区中从而不需要额外的解析,因此能够高效传输和快速加载。
(3)材质贴图文件,三维模型做凹凸贴图或者普通贴图所使用的文件。
在这三个部分中,除了模型文件之外的其他文件可以通过一个相对URL(uniformresource locator,统一资源定位系统)进行应用。
在一个实施例中,可能使用CDN(Content Delivery Network,内容分发网络)而不是自己的Web服务器,此时可能无法控制相对URL,导致出现问题。我们可以将GLTF格式转换为名为GLB的二进制格式,一个包含了所有资源的单个文件,体积将进一步缩小,且GLB文件放在CDN上可以直接引用。
其中,对GLTF格式文件进一步压缩为GLB格式文件前,可以用预设贴图代替高清外观贴图,预设贴图可以为低分辨率的图像。获取GLB文件可以直接从3D建模程序中导出,也可以使用工具将GLTF文件转换为GLB。转换工具可以是基于网络的转换器:MakeGLB,将包含FLTF文件的文件夹拖到页面,该转换器就会生成并下载GLB文件。
具体的,转换工具还可以是gltf-pipeline,gltf-pipeline是基于谷歌推出的一个用于3D模型压缩和解压缩的工具库开发的命令行工具,可以将GLTF格式的模型文件进一步压缩为GLB格式,使用时需要将GLTF文件中的模型文件、二进制文件和材质贴图文件放在一起,执行命令行进行转换。由于此前将外观贴图和第二模型分开导出,可以用预设贴图替代原来的外观贴图,将预设贴图与第二模型一起压缩为GLB格式文件。
在一个实施例中,可以用Basis Universal压缩工具对贴图进行压缩,得到外观贴图对应的basis文件。同时,用gltf-pipeline将模型文件进一步将模型文件压缩为GLB格式,在此步骤中,可以用低分辨率的预设贴图来作为压缩时所需的材质贴图文件,用替代的方式解决了GLTF和GLB格式暂不支持basis文件作为材质贴图文件的问题。
步骤S400,解析贴图压缩文件得到外观贴图,并加载模型压缩文件得到表面附着有预设贴图的第三模型,将预设贴图替换为外观贴图,以加载第一模型。
在本申请实施例中,可以将外观贴图和模型文件分开压缩,进行加载时可以分别进行加载,加载贴图压缩文件得到外观贴图,加载模型压缩文件得到包含预设贴图的第三模型。
其中,第三模型是指表面附着有预设贴图的模型,而展示的需求是针对包含外观贴图的第一模型而言,所以在加载模型压缩文件得到第三模型后,可以将第三模型表明预设贴图替换为外观贴图得到第一模型。第一模型是指表面附着有外观贴图的模型,通过将两个压缩数据组合,达到展示包含外观贴图的第一模型的目的。
在本申请实施例中,步骤S400解析贴图压缩文件得到外观贴图,可以包括:
(1),加载贴图压缩文件,贴图压缩文件包括外观贴图对应的basis文件;
(2),通过basis转码器将basis文件转码成外观贴图对应的压缩纹理文件。
其中,外观贴图可以包括外观贴图对应的压缩纹理文件。
其中,在上一步骤S300中,可以用Basis Universal压缩工具对贴图进行压缩,Basis Universal支持多种常用的压缩纹理格式,可以将png格式的贴图转换为basis文件,其大小与jpg格式差不多,但在GPU上大小比png/jpg格式小6-8倍。在进行解析贴图压缩文件时,先加载贴图压缩文件,即加载外观贴图对应的basis文件,再通过basis转码器快速转换成适用于设备的压缩纹理格式。对于一般的格式为jpg和png的贴图,图片加载后仍需要全部转码为纹理格式才能开始渲染,而通过basis转码器转码后得到的压缩纹理格式不需要再进行纹理转码,压缩纹理会在整个过程保持压缩状态,可以比由png格式图片转码成的纹理减少5倍以上的大小,可大大减少纹理内存。
在本申请实施例中,步骤S400将预设贴图替换为外观贴图,可以包括:
(1)获取与所述预设贴图对应的纹理文件;
(2)将所述预设贴图对应的所述纹理文件替换为所述外观贴图对应的压缩纹理文件。
其中,在上一步骤的说明中提到,格式为jpg和png的贴图,在图片加载后需要转码为纹理格式再开始渲染,因此低分辨率的预设贴图可以转码为格式为纹理的文件。而高清外观贴图可以用Basis Universal进行压缩,将高清外观贴图转换为对应的basis文件,对basis文件进行加载后,再用basis转码器将basis文件转码为压缩纹理格式得到压缩纹理文件,该压缩纹理文件可以不再进行纹理转码和解压,可以用高清外观贴图对应的压缩纹理文件替换预设贴图对应的纹理文件,达到将高清外观贴图附着到模型上的效果。通过Basis Universal压缩工具对高清外观贴图进行超压缩处理,可以在不损坏图片质量的前提下对图片的大小进行极限压缩,在保持GPU性能效率的同时,优化了图片传输的性能,还减小了服务端的数据存储压力。
为了更清楚阐释本申请的模型加载方法,以下将结合具体示例对模型加载方法进行进一步说明。
在一个示例中,本申请提供模型加载方法,如图2,包括如下步骤:
步骤S201,根据模型外观图、模型结构图和模型尺寸图构建第二模型;
步骤S202,将模型外观图作为外观贴图附着到第二模型表面,得到第一模型;
步骤S203,将第一模型分离导出得到可加载的数据格式的第二模型和外观贴图;
步骤S204,使用Basis Universal压缩工具对外观贴图压缩得到贴图压缩文件;
步骤S205,在预设图片库中筛选出分辨率小于预设值且格式为预设格式的目标图片,将目标图片作为预设贴图;
步骤S206,使用gltf-pipeline工具对预设贴图和第二模型压缩得到模型压缩文件;
步骤S207,加载贴图压缩文件,得到外观贴图对应的basis文件;
步骤S208,通过basis转码器将所述basis文件转码成外观贴图对应的压缩纹理文件;
步骤S209,获取与预设贴图对应的纹理文件;
步骤S210,将所述预设贴图对应的所述纹理文件替换为所述外观贴图对应的压缩纹理文件。
以加载后的模型用于客户端浏览器为例,结合具体示例对模型加载方法进行进一步说明。
在一个示例中,本申请提供模型加载方法,如图3,包括如下步骤:
(1)收集建模对象的图片资料,例如模型外观图片、模型结构图片和模型尺寸图;
(2)根据建模对象的图片资料在建模软件中构建3D模型,并将高清外观贴图作为贴图附着到3D模型表面,获得含有外观贴图的3D模型;
(3)将含有外观贴图的3D模型分离导出为模型文件和高清外观贴图,其中模型文件为GLTF格式,高清外观贴图为png格式;
(4)将导出的高清外观贴图用Basis Universal压缩工具进行压缩,压缩后输出高清外观贴图对应的basis贴图压缩文件;
(5)可以用纯黑且为png格式的替代贴图来替代高清外观贴图,将模型文件和纯黑替代贴图一起用gltf-pipeline模型压缩工具进行压缩,输出格式为GLB的模型压缩文件;
(6)在网页端进行模型渲染前,先对高清外观贴图对应的basis贴图压缩文件进行加载,同时要用basis转码器将basis贴图压缩文件转码为压缩纹理文件(即图中高清texture贴图),该压缩纹理文件可以不用再进行纹理转码,也不用解压;
(7)加载格式为GLB的模型压缩文件,此时纯黑替代体图可以转码为对应的纹理文件,将高清贴图对应的压缩纹理文件替换掉纯黑替代图对应的纹理文件,组合成附着有高清外观贴图的模型;
(8)对含有高清外观贴图的模型进行渲染,以完成在客户端浏览器展示模型的目的。
上述示例中,通过将模型和外观贴图分离导出,并用低分辨率的预设贴图替换外观贴图,再使用Basis Universal压缩工具对外观贴图进行压缩,同时用gltf-pipeline模型压缩工具对模型和预设贴图进行压缩,通过将外观贴图和模型分别压缩极大减小了模型文件的大小。在前端进行渲染前,对压缩后的外观贴图进行加载解析,对含有预设贴图的模型进行加载,再将预设贴图替换为外观贴图,也就是将两个压缩数据结合起来,达到加载含有高清外观贴图模型的目的,从而实现了大型模型文件的快速加载,有效解决了模型文件加载时间过长的问题,并且减少了服务端的数据存储压力。
本申请实施例提供了一种图像处理的装置,如图4所示,该图像处理装置400可以包括:模型获取模块4001、贴图压缩模块4002以及模型加载模块4003,其中,
模型获取模块4001,用于获取待加载的第一模型;第一模型表面附着有外观贴图;将第一模型分离导出得到第二模型和外观贴图;
贴图压缩模块4002,用于对外观贴图压缩得到贴图压缩文件,对预设贴图和第二模型压缩得到模型压缩文件;
模型加载模块4003,用于解析贴图压缩文件得到外观贴图,并加载模型压缩文件得到表面附着有预设贴图的第三模型,将预设贴图替换为外观贴图,以加载第一模型。
本申请实施例中,模型获取模块4001在获取待加载的第一模型时,具体用于:
根据模型外观图、模型结构图和模型尺寸图构建第二模型;
将模型外观图作为外观贴图附着到第二模型表面,得到第一模型。
在其中一个实施例中,贴图压缩模块4002在对外观贴图压缩得到贴图压缩文件时,具体用于:
使用Basis Universal压缩工具对外观贴图压缩得到贴图压缩文件。
在其中一个实施例中,还包括贴图获取模块,具体用于:
在预设图片库中筛选出分辨率小于预设值且格式为预设格式的目标图片,将目标图片作为预设贴图。
在其中一个实施例中,外观贴图包括外观贴图对应的压缩纹理文件;模型加载模块4003在解析贴图压缩文件得到外观贴图时,具体用于:
加载贴图压缩文件得到外观贴图对应的basis文件;
通过basis转码器将basis文件转码成外观贴图对应的压缩纹理文件。
在其中一个实施例中,模型加载模块4003在将第三模型表面附着的预设贴图替换为外观贴图时,具体用于:
获取与预设贴图对应的纹理文件;
将预设贴图对应的纹理文件替换为外观贴图对应的压缩纹理文件。
上述的模型加载装置,通过将模型和外观贴图分离导出,并用低分辨率的预设贴图替换外观贴图,再使用basis-universal压缩工具对外观贴图进行压缩,同时用gltf-pipeline模型压缩工具对模型和预设贴图进行压缩,通过将外观贴图和模型分别压缩极大减小了模型文件的大小。在前端进行渲染前,对压缩后的外观贴图进行加载解析,对含有预设贴图的模型进行加载,再将预设贴图替换为外观贴图,也就是将两个压缩数据结合起来,达到加载含有高清外观贴图模型的目的,从而实现了大型模型文件的快速加载,有效解决了模型文件加载时间过长的问题,并且减少了服务端的数据存储压力。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:将外观贴图和模型分别压缩极大减小了模型文件的大小,在前端进行渲染前,对压缩后的外观贴图进行加载解析,对含有预设贴图的模型进行加载,再将预设贴图替换为外观贴图,也就是将两个压缩数据结合起来,达到加载含有高清外观贴图模型的目的,从而实现了大型模型文件的快速加载,有效解决了模型文件加载时间过长的问题,并且减少了服务端的数据存储压力。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种模型加载的方法,其特征在于,包括:
获取待加载的第一模型;所述第一模型表面附着有外观贴图;
将所述第一模型分离导出得到可加载的数据格式的第二模型和所述外观贴图;
对所述外观贴图压缩得到贴图压缩文件,对预设贴图和所述第二模型压缩得到模型压缩文件;
解析所述贴图压缩文件得到所述外观贴图,并加载所述模型压缩文件得到表面附着有所述预设贴图的第三模型,将所述预设贴图替换为所述外观贴图,以加载所述第一模型。
2.根据权利要求1所述的模型加载方法,其特征在于,获取待加载的第一模型,包括:
根据模型外观图、模型结构图和模型尺寸图构建所述第二模型;
将所述模型外观图作为所述外观贴图附着到所述第二模型表面,得到所述第一模型。
3.根据权利要求1所述的模型加载方法,其特征在于,所述对所述外观贴图压缩得到贴图压缩文件,包括:
使用Basis Universal压缩工具对所述外观贴图压缩得到贴图压缩文件。
4.根据权利要求1所述的模型加载方法,其特征在于,对预设贴图和所述第二模型压缩得到模型压缩文件之前,还包括:
在预设图片库中筛选出分辨率小于预设值且格式为预设格式的目标图片,将所述目标图片作为预设贴图。
5.根据权利要求1所述的模型加载方法,其特征在于,所述对预设贴图和所述第二模型压缩得到模型压缩文件,包括:
使用gltf-pipeline工具对所述预设贴图和所述第二模型压缩得到模型压缩文件。
6.根据权利要求3所述的模型加载方法,其特征在于,所述外观贴图包括所述外观贴图对应的压缩纹理文件;所述解析所述贴图压缩文件得到所述外观贴图,包括:
加载贴图压缩文件,所述贴图压缩文件包括所述外观贴图对应的basis文件;
通过basis转码器将所述basis文件转码成所述外观贴图对应的压缩纹理文件。
7.根据权利要求6所述的模型加载方法,其特征在于,将所述第三模型表面附着的所述预设贴图替换为所述外观贴图,包括:
获取与所述预设贴图对应的纹理文件;
将所述预设贴图对应的所述纹理文件替换为所述外观贴图对应的压缩纹理文件。
8.一种模型加载装置,其特征在于,包括:
模型获取模块,用于获取待加载的第一模型;所述第一模型表面附着有外观贴图;将所述第一模型分离导出得到第二模型和所述外观贴图;
贴图压缩模块,用于对所述外观贴图压缩得到贴图压缩文件,对预设贴图和所述第二模型压缩得到模型压缩文件;
模型加载模块,用于解析所述贴图压缩文件得到所述外观贴图,并加载所述模型压缩文件得到表面附着有所述预设贴图的第三模型,将所述预设贴图替换为所述外观贴图,以加载所述第一模型。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述的模型加载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-7任一项所述的模型加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011255011.6A CN114491352A (zh) | 2020-11-11 | 2020-11-11 | 模型加载方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011255011.6A CN114491352A (zh) | 2020-11-11 | 2020-11-11 | 模型加载方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114491352A true CN114491352A (zh) | 2022-05-13 |
Family
ID=81490779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011255011.6A Pending CN114491352A (zh) | 2020-11-11 | 2020-11-11 | 模型加载方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114491352A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958433A (zh) * | 2023-07-21 | 2023-10-27 | 武汉熠腾科技有限公司 | 超大面数模型的快速加载方法及系统 |
CN116977607A (zh) * | 2023-07-21 | 2023-10-31 | 武汉熠腾科技有限公司 | 基于像素流的文物模型展示方法及系统 |
WO2024159555A1 (zh) * | 2023-02-01 | 2024-08-08 | 珠海普罗米修斯视觉技术有限公司 | 视频处理方法、装置及计算机可读存储介质 |
-
2020
- 2020-11-11 CN CN202011255011.6A patent/CN114491352A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024159555A1 (zh) * | 2023-02-01 | 2024-08-08 | 珠海普罗米修斯视觉技术有限公司 | 视频处理方法、装置及计算机可读存储介质 |
CN116958433A (zh) * | 2023-07-21 | 2023-10-27 | 武汉熠腾科技有限公司 | 超大面数模型的快速加载方法及系统 |
CN116977607A (zh) * | 2023-07-21 | 2023-10-31 | 武汉熠腾科技有限公司 | 基于像素流的文物模型展示方法及系统 |
CN116977607B (zh) * | 2023-07-21 | 2024-05-07 | 武汉熠腾科技有限公司 | 基于像素流的文物模型展示方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112884875B (zh) | 图像渲染方法、装置、计算机设备和存储介质 | |
CN106611435B (zh) | 动画处理方法和装置 | |
US11170579B2 (en) | Hybrid rendering | |
US8248420B2 (en) | Method and system for displaying animation with an embedded system graphics API | |
CN114491352A (zh) | 模型加载方法、装置、电子设备及计算机可读存储介质 | |
US7656401B2 (en) | Techniques for representing 3D scenes using fixed point data | |
RU2237283C2 (ru) | Устройство и способ представления трехмерного объекта на основе изображений с глубиной | |
CN108959392B (zh) | 在3d模型上展示富文本的方法、装置及设备 | |
US20150161823A1 (en) | Methods and Systems for Viewing Dynamic High-Resolution 3D Imagery over a Network | |
US10699361B2 (en) | Method and apparatus for enhanced processing of three dimensional (3D) graphics data | |
CN106575158B (zh) | 环境映射虚拟化机构 | |
CN112734910B (zh) | 基于rgb单图实时人脸三维图像重建方法、装置及电子设备 | |
Andersson et al. | Virtual Texturing with WebGL | |
CN107767437B (zh) | 一种多层混合异步渲染方法 | |
CN113076152B (zh) | 渲染方法及装置、电子设备和计算机可读存储介质 | |
CN112489183A (zh) | 基于Unity3D的骨骼动画渲染方法及系统 | |
CN115908672A (zh) | 一种三维场景渲染加速方法、系统、介质、设备及终端 | |
CN111243072A (zh) | WebVR三维展示方法、装置、系统及可读存储介质 | |
CN117390322A (zh) | 虚拟空间构建方法、装置、电子设备及非易失性存储介质 | |
US10347034B2 (en) | Out-of-core point rendering with dynamic shapes | |
Schwartz et al. | WebGL-based streaming and presentation of objects with bidirectional texture functions | |
CN114820660A (zh) | 图像处理方法、装置、电子设备、存储介质及程序产品 | |
CN114842127A (zh) | 地形渲染方法及装置、电子设备、介质及产品 | |
CN114020390A (zh) | Bim模型显示方法、装置、计算机设备和存储介质 | |
CN112802134B (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 |