CN115880416A - 三维模型的显示方法、装置、服务器及存储介质 - Google Patents
三维模型的显示方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN115880416A CN115880416A CN202111144051.8A CN202111144051A CN115880416A CN 115880416 A CN115880416 A CN 115880416A CN 202111144051 A CN202111144051 A CN 202111144051A CN 115880416 A CN115880416 A CN 115880416A
- Authority
- CN
- China
- Prior art keywords
- model
- terminal
- original
- data
- file
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种三维模型的显示方法、装置、服务器及存储介质,涉及图像显示领域。该方法包括:响应于终端的模型获取请求,确定终端的模型显示条件,模型显示条件用于表征终端显示三维模型的能力;基于模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的候选模型文件用于渲染不同模型精度的三维模型,且目标模型文件对应三维模型的模型精度符合模型显示条件;向终端发送目标模型文件,以便终端基于目标模型文件渲染三维模型。通过本申请提供的三维模型的显示方法,当终端显渲染三维模型时,服务器可以根据终端显示三维模型的能力确定目标模型文件,从而实现终端根据自身条件自适应显示相应模型精度的三维模型。
Description
技术领域
本申请实施例涉及图像显示领域,特别涉及一种三维模型的显示方法、装置、服务器及存储介质。
背景技术
图形语言传输格式(Graphics Language Transmission Format,GLTF)文件是一种记录三维几何数据的文件,用于进行三维模型渲染。
相关技术中,GLTF文件通过Blender或C4D等特殊软件进行转换获得GLTF模型,GLTF模型的精度越高,其对终端的硬件条件和网络条件的要求也相对较高。为了满足终端的显示需求,存储在服务器中的GLTF模型采用低精度模型,以确保终端能够正常进行模型渲染。
发明内容
本申请实施例提供了一种三维模型的显示方法、装置、服务器及存储介质,能够解决相关技术中终端无法根据自身的显示条件显示三维模型的问题。所述技术方案如下:
一方面,本申请实施例提供一种三维模型的显示方法,所述方法包括:
响应于终端的模型获取请求,确定所述终端的模型显示条件,所述模型显示条件用于表征所述终端显示三维模型的能力;
基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的所述候选模型文件用于渲染不同模型精度的三维模型,且所述目标模型文件对应三维模型的模型精度符合所述模型显示条件;
向所述终端发送所述目标模型文件,以便所述终端基于所述目标模型文件渲染所述三维模型。
另一方面,本申请实施例提供一种三维模型的显示装置,所述装置包括:
条件确定模块,用于响应于终端的模型获取请求,确定所述终端的模型显示条件,所述模型显示条件用于表征所述终端显示三维模型的能力;
模型文件确定模块,用于基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的所述候选模型文件用于渲染不同模型精度的三维模型,且所述目标模型文件对应三维模型的模型精度符合所述模型显示条件;
发送模块,用于向所述终端发送所述目标模型文件,以便所述终端基于所述目标模型文件渲染所述三维模型。
另一方面,本申请实施例提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述实施例中提供的三维模型的显示方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述实施例中提供的三维模型的显示方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的三维模型的显示方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的方案中,服务器中存储有用于渲染不同模型精度的候选模型文件,服务器可以根据终端发送的模型获取请求确定出终端显示三维模型的能力,进而可以从多个候选模型文件中选择出符合模型显示条件的目标模型文件;由于目标模型文件渲染得到的三维模型的模型精度符合模型显示条件,对于具有较强三维模型显示能力的终端,服务器可以向终端发送用于渲染高模型精度的模型文件,有助于提高模型显示质量;对于三维模型显示能力较弱的终端,服务器可以向终端发送用于渲染低模型精度的模型文件,有助于提高模型显示的流畅性,避免出现无法渲染模型的情况,因此可以实现终端根据自身条件自适应显示相应模型精度的三维模型。
附图说明
图1是本申请一个示例性实施例提供的实施环境的示意图;
图2是本申请一个示例性实施例提供的三维模型的显示方法的流程图;
图3是本申请另一个示例性实施例提供的三维模型的显示方法的流程图;
图4是本申请另一个示例性实施例提供的三维模型的显示方法的流程图;
图5是本申请一个示例性实施例提供的候选模型文件构建过程的流程图;
图6是本申请一个示例性实施例提供的构建不同候选模型文件的流程图;
图7示出了本申请一个示例性实施例示出的不同模型精度的三维模型;
图8是本申请一个示例性实施例提供的三维模型的显示方法的结构框图;
图9是本申请一个实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步的详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
GLTF文件:图形语言传输格式(Graphics Language Transmission Format,GLTF)文件是一种记录三维几何数据的文件,用于进行三维模型渲染。GLTF文件可以跨平台渲染和显示三维模型。GLTF提供一种高效,易扩展,可协作的格式,其大致结构可以分为四大块,包括json描述文件、对象的具体数据信息、模型渲染的着色器以及纹理内容。GLTF文件具有高效解析以及高效传输的特点,因而广泛应用于Web网页传输。
相关技术中,终端在通过Web网页显示三维模型时,需要先从服务器中下载对应的模型文件,然后对模型文件进行渲染,最终在Web网页中显示出渲染的三维模型。模型文件不同与网页图片,由于模型文件的数据量较大,对终端的网络状态要求较高,且渲染三维模型对终端的硬件条件要求也相对较高。为了满足所有终端设备的显示需求,需要降低在终端渲染的三维模型的模型精度,即仅在服务器中存储用于渲染低精度模型的模型文件,以确保硬件条件不高以及网络条件较差的终端在浏览Web网页时能够及时渲染出三维模型。
本申请实施例提供的方案中,服务器中存储有用于渲染不同模型精度的候选模型文件,在接收并确定终端的模型显示条件后,能够自动选择出符合模型显示条件的目标模型文件,进而将该目标模型文件发送至终端,以便终端根据目标模型文件渲染出对应模型精度的三维模型。相比于相关技术中只能显示低精度模型的三维模型,本方案能够根据终端显示三维模型的能力自动确定出目标模型文件。对于网络状态以及硬件条件较高的终端来说,可以渲染出模型精度较高的三维模型,实现资源的高效利用;对于网络状态以及硬件条件较低的终端,可以渲染低模型精度的三维模型,以满足正常的浏览需求。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:终端110和服务器120。
终端110中显示有Web网页,该Web网页具备渲染并显示三维模型功能。终端110可以是诸如手机、台式电脑、平板电脑、多媒体播放设备和膝上型便携计算机等电子设备。该Web网页可以是通过浏览器或其他应用程序显示。可选的,终端110可以向服务器120发送模型获取请求,以及接收服务器反馈的目标模型文件。可选的,该三维模型通过GLTF文件渲染显示。可选的,终端110可以向服务器120发送Web网页的请求指令,以及接收服务器120反馈的网页数据等。
终端110通过无线网络或有线网络与服务器120相连。
服务器120包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器120为终端110中的Web网页提供后台服务。例如,服务器120可以是上述所说的浏览器程序的后台服务器。本申请实施例中,服务器120可以根据压缩率对原始模型文件的属性数据进行数据压缩。可选的,服务器120可以接收终端110发送的模型获取请求,以及向终端110发送目标模型文件。可选的,服务器120还用于接收终端110发送的Web网页的请求指令,以及向终端反馈网页数据。
可选的,终端110可以泛指多个终端中的一个,本实施例仅以发送终端110为智能手机来举例说明,本申请实施例对终端的数量和设备类型不加以限定。
图2是本申请一个示例性实施例三维模型的显示方法的流程图,本实施例以该方法用于图1所示的服务器为例进行说明。该方法包括:
步骤201,响应于终端的模型获取请求,确定终端的模型显示条件,模型显示条件用于表征终端显示三维模型的能力。
在一种可能的实施方式中,终端在显示Web网页过程中需要显示三维模型时,需要向服务器发送模型获取请求,模型获取请求中包含有终端的模型显示条件,该模型显示条件是用于表征终端显示三维模型的能力。
服务器在向终端提供后台服务过程中接收到终端发送的模型获取请求后,需要确定终端显示三维模型的能力。通常情况下,模型显示条件受多种因素限制,如终端的硬件条件以及终端所处的网络状态等。对于显示三维模型能力较高的终端,其设备的硬件条件较高,渲染三维模型的能力相对较高,在Web页面显示三维模型的显示速度也越快。
步骤202,基于模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的候选模型文件用于渲染不同模型精度的三维模型,且目标模型文件对应三维模型的模型精度符合模型显示条件。
服务器在确定出终端的模型显示条件前,会提前存储用于渲染三维模型的候选模型文件,其中,不同的候选模型文件渲染得到的三维模型的模型精度不同。其中,对于模型精度越高的三维模型,其对应模型文件的数据量越大,终端下载该模型文件所需的时间越久,且渲染时间也相对越久。
在服务器确定出终端的模型显示条件后,根据模型显示条件选择用于渲染三维模型的目标模型。且该目标模型文件渲染得到的三维模型的模型精度符合终端的模型显示条件,即终端具备显示相应模型精度的三维模型的能力。
在一种可能的实施方式中,服务器中存储有渲染低精度模型和高精度模型的候选模型文件,当服务器确定出终端的模型显示条件指示为获取低精度模型时,则将低精度模型对应的候选模型文件确定为目标模型文件。
可选的,服务器中可以存储用于渲染不同模型精度等级的候选模型文件,在接收到终端的模型获取请求后,根据确定的模型显示条件从多个候选模型文件中选择出目标模型文件。
在另一种可能的实施方式中,服务器中可以存储原始模型文件,在接收到终端的模型获取请求后,再根据终端的模型显示条件构建出目标模型文件。可选的,为了减少服务器的运行负荷以及提高终端显示Web网页的响应速度,服务器中存储的候选模型文件还可以从其他计算机设备上获取,由其他计算机设备构建出用于渲染不同模型精度的候选模型文件。
步骤203,向终端发送目标模型文件,以便终端基于目标模型文件渲染显示三维模型。
当服务器确定出目标模型文件后,将对应的目标模型文件发送至终端,便于终端在接收到目标模型文件后,根据该目标模型文件进行模型渲染,并显示出符合终端模型显示条件的三维模型。例如,终端的网络环境较差和/或终端渲染三维模型的能力较弱时,则接收用于渲染低精度模型的目标模型文件,进而在Web网页中显示出相应模型精度的三维模型。此种显示方式能够充分利用终端的自身条件来显示三维模型,达到更好的浏览效果。
综上所述,本申请实施例提供的三维模型的显示方法,本申请实施例提供的方案中,服务器中存储有用于渲染不同模型精度的候选模型文件,服务器可以根据终端发送的模型获取请求确定出终端显示三维模型的能力,进而可以从多个候选模型文件中选择出符合模型显示条件的目标模型文件;由于目标模型文件渲染得到的三维模型的模型精度符合模型显示条件,对于具有较强三维模型显示能力的终端,服务器可以向终端发送用于渲染高模型精度的模型文件,有助于提高模型显示质量;对于三维模型显示能力较弱的终端,服务器可以向终端发送用于渲染低模型精度的模型文件,有助于提高模型显示的流畅性,避免出现无法渲染模型的情况,因此可以实现终端根据自身条件自适应显示相应模型精度的三维模型。
图3是本申请一个示例性实施例三维模型的显示方法的流程图,本实施例以该方法用于图1所示的服务器为例进行说明。该方法包括:
步骤301,响应于终端的模型获取请求,确定终端的模型显示条件,模型显示条件用于表征终端显示三维模型的能力。
本步骤的实施方式可以参考步骤201,本实施例在此不做赘述。
步骤302,基于模型显示条件,确定终端的终端评分。
由于终端显示三维模型的能力各不相同,因此服务器需要根据终端显示三维模型的能力确定出目标模型文件,而确定目标模型文件的方式可以根据终端是模型显示条件确定出终端评分。终端评分可以用于表征终端显示三维模型能力的能力。当终端的终端评分越高时,表示终端显示三维模型的能力越高;当终端评分越低时,表示终端显示三维模型的能力越差。其中终端评分可以根据终端的硬件条件以及网络条件等维度来确定。如图4所示,计算终端评分的具体过程包括如下步骤:
步骤302a,基于硬件条件以及硬件权重计算硬件评分,和/或,基于网络条件以及网络权重计算网络评分。
由于不同终端的硬件条件存在差异,因而渲染三维模型的能力也各不相同。对终端来说,硬件条件越好,其渲染三维模型的渲染速度以及显示的模型精度越高,用户在浏览Web网页时显示的三维模型质量越高。
终端的硬件条件包括终端的内存参数、处理器参数以及分辨率等参数。其中内存参数、处理器参数以及分辨率越高的终端,其终端的性能越好,相对渲染三维模型的能力越高,具体的硬件参数以及对应的硬件权重计算出硬件评分。
在一种可能的实施方式中,终端需要在Web页面显示三维模型时,可以先确定出自身的硬件参数,如内存参数、处理器参数以及分辨率等参数,进而基于相关的参数信息向服务器发送模型获取请求,在服务器端存储有硬件评分计算公式,服务器根据该公式计算出终端的硬件评分。例如:硬件评分=内存参数*内存权重系数+处理器参数*处理器权重系数+分辨率参数*分辨率权重系数。其中,各个权重系数可以提前设置,如设置0.3、0.5和0.2。服务器根据各权重系数计算出终端的硬件评分。
其中,内存参数可以根据内存容量确定数值,如2G内存容量对应数值设置为20;4G内存容量对应数值设置为40。此外,在一些实施例中,内存参数还可以包括终端的内存频率、内存大小等。例如,如内存频率可以分为DDR2(Double Data Rate 2)和DDR3等规格,且不同规格对应各自的工作频段,如DDR2的800MHZ以及1066MHZ工作频段等,不同的工作频段对应各自的数值。处理器参数具体可以包括中央处理器(Central Processing Unit,CPU)参数和图形处理器(Graphics Processing Unit,GPU)参数。以CPU参数为例,CPU参数可以包括CPU频率、CPU核心数、CPU线程数以及CPU缓存等参数。例如,设置CPU双核的数值设置为20、四核的数值设置为40、八核的数值设置为80分。其他参数的设置方式以此类似。对于分辨率参数可以根据具体分辨率数值,如1280x720像素设置数值为10;1920*1080像素设置数值为20;2560*1440像素设置为30;3840*290像素设置为40。通过为不同的硬件参数设置不同的数值,进而根据硬件评分计算公式计算出相应的硬件评分。
由于下载模型文件的所需的数据量较大,如下载GLTF文件所需的数据量为40M,对于网络状态较差的终端,当用户在浏览Web网页时,终端可能无法及时将GLTF文件下载并渲染,从而影响终端显示三维模型的及时性。因此,服务器还可以根据终端的网络状态以及网络权重确定终端的网络评分。网络状态包括网络类型、网络信号强度、网络延迟以及网速中的至少一种。
以网络信号强度为例,当网络信号强度数值大于-85dBm时,表示终端的网络信号强度较高,当网络信号强度数值在-85dBm到-95dBm之间时,表示,终端的网络信号强良好,此时可以根据具体的信号强度值确定数值。当网络信号强度数值小于-95dBm时,表明终端的网络信号较差。网络信号强度对应的计算数值可以设置在0-100之间,具体根据网络信号强度数值大小决定。如网络信号强度数值为-80dBm时,对应的计算数值设置为90;网络信号强度数值为-90dBm时,对应的计算数值设置为40。
此外,对于网络延迟,也可以根据延时时间的多少设置相应的计算数值,如网络延迟为50ms时,设置相应的数值为95分;当网络延迟为100ms时,对应的数值为50,网络延迟时间越久,对应的数值越小。此外,还可以根据网速作为网络状态,如终端的网络下载速度为5M/s时,设置对应数值为95,当网络下载速度为0.5M/s时,设置对应数值为20。网络下载速度越快,对应的数值越高。
其中,当网络状态包括至少两种参数时,不同的网络参数之间对应设置各自的网络权重,如网络延迟的权重系数设置为0.4,网络信号强度的权重系数设置为0.6。本实施例不对权重系数的数值进行限定。
步骤302b,基于硬件评分和网络评分确定终端评分。
在一种可能的实施方式中,服务器可以根据终端评分、网络评分以及对应的权重系数计算出终端评分。如设置终端评分=硬件评分*第一权重系数+网络评分*第二权重系数。其中,第一权重系数和第二权重系数可以通过提前设定,如设置第一权重为0.6,第二权重系数为0.4。具体数值还可以根据模型文件的大小确定,本实施例对此不进行限定。
步骤303,基于终端评分从至少两个候选模型文件中确定目标模型文件,其中,不同的候选模型文件对应不同的评分范围。
在一种可能的实施方式中,服务器中存储有模型选择映射表,该模型选择映射表中存储有终端评分和候选模型文件之间的关联关系,在服务器确定出终端的终端评分后,根据该模型选择映射表确定出目标模型文件。其中,不同的候选模型文件对应不同的评分范围。
示意性的,如表1所示,终端评分和候选模型文件之间的关联关系。
表1
终端评分 | 模型文件 |
0~30 | 低精度选模型文件 |
30~70 | 中精度选模型文件 |
70~100 | 高精度选模型文件 |
其中,终端是根据硬件评分、网络评分以及对应的权重系数计算获得,不同的模型文件渲染获得的模型精度不同。表1中列出了用于渲染三种不同模型精度的候选模型文件。例如终端评分为60,则对应选择中精度模型文件。其中,对于相同的三维模型,渲染得到的三维模型的模型精度越高,其对应的候选模型文件所需的数据量也越大。
步骤304,向终端发送目标模型文件,以便终端基于目标模型文件渲染三维模型。
服务器在确定出目标模型文件后,将目标模型文件发送至终端。终端在接收到目标模型文件后,对模型文件进行渲染和显示。
本申请实施例中,服务器通过确定终端的硬件条件以及网络状态,进而根据硬件条件和对应的硬件权重计算出终端的硬件评分,以及根据终端的网络条件和对应的网络权重计算网络评分;在确定出硬件评分和网络评分后,基于硬件评分和网络评分确定终端评分。
进一步地,在服务器确定出终端评分后,根据终端评分和候选模型文件之间的关联关系,从多个候选模型文件中确定出符合终端显示条件的目标模型文件,便于终端在接收到目标模型文件后,渲染并显示出相应模型精度的三维模型。相比于现有技术中只能显示低精度模型的方式,可以实现终端根据自身条件自适应渲染出相应模型精度的三维模型,达到更好的浏览效果。
上述实施例中,为在服务器中存储多个候选模型文件。其中不同候选模型文件由相同原始模型文件进行压缩处理获得,且不同候选模型文件的文件大小和模型精度呈正相关关系。服务器需要根据模型精度将原始模型文件进行数据压缩,以获得不同的候选模型文件。
为了满足不同终端显示模型精度的需求,在服务器端需要根据原始模型文件以及至少两级模型精度构建出两个不同的候选模型文件。其中,不同的候选模型文件的大小以及渲染三维模型的模型高精度各不相同。候选模型文件的文件大小和渲染出的三维模型的模型精度成正相关关系。候选模型文件小于原始模型文件,而且,候选模型文件渲染得到的三维模型的模型精度小于原始模型文件渲染得到的三维模型的模型精度。图5为候选模型文件构建过程的流程图,可以包括如下步骤:
步骤501,解析原始模型文件,得到原始属性数据。
服务器在构建候选模型文件时,需要先获取到原始模型文件,并对原始模型文件进行解析,获得原始属性数据。以GLTF模型文件为例,原始属性数据包括贴图数据、节点数据、网格数据以及动画数据等。其中,贴图数据中包含有生成三维模型的图片,节点数据以及网格数据用于生成三维模型的模型面数,动画数据用于渲染三维模型的模型动作。
步骤502,基于模型精度对应的压缩率,对原始属性数据进行数据压缩,得到压缩后属性数据,压缩率与模型精度呈负相关关系。
服务器获取到原始属性数据后,需要根据各级模型精度对应的压缩率对属性数据进行数据压缩,压缩后属性数据的数据量小于原始属性数据的数据量。而且压缩率与模型精度呈负相关关系,即属性数据的压缩率越高,相应渲染得到的三维模型的模型精度越低。
在一种可能的实施方式中,服务器根据三级模型精度设置三级压缩率,高精度模型文件的压缩率设置为20%,中精度模型文件的压缩率设置为40%,低精度模型文件的压缩率设置为50%。当服务器解析出GLTF文件的属性数据后,针对三种压缩率分别对属性数据进行数据压缩。此外,由于属性数据包括贴图数据、节点数据、网格数据以及动画数据等,服务器需要根据不同数据类型的数据采用不同的压缩方式。如图6所示,过程具体包括如下步骤:
步骤502a,基于压缩率对原始贴图数据进行图像压缩处理,得到压缩后贴图数据,压缩后贴图数据的数据量小于原始贴图数据的数据量。
由于渲染三维模型文件需要大量贴图数据,因而导致模型文件较大,而对贴图数据按照设定的压缩率进行压缩后,获得的压缩后贴图数据的数据量则小于原始贴图数据的数据量,而压缩贴图数据则是以降低图像画质为代价,最终渲染得到的图像画质相应降低。
示意性的,原始贴图数据为100MB,压缩率设置为20%时,压缩后贴图数据为80MB;压缩率设置为40%时,压缩后贴图数据为60MB;压缩率设置为50%时,压缩后贴图数据为50MB。
步骤502b,基于原始节点数据确定原始节点数,以及基于原始网格数据确定原始网格数。
GLTF文件的属性数据还包括节点数据以及网格数据,服务器在对原始节点数据以及原始网格数据进行数据处理前,还需要确定原始节点数以及原始网格数。如图7所示,构成圆柱体的所有三角形即为模型文件的网格,三角形组成的面即为模型面数,组成三角形的点即为模型顶点,模型节点构成三维模型的场景图。此外,构成圆柱体的网格还可以是其他形状,本申请实施例对此不做限定。
服务器在对GLTF文件进行解析并获取到节点以及网格数据后,需要先确定出原始节点数以及原始网格数。例如原始模型文件中原始节点数为10,原始网格数为100。
步骤502c,基于压缩率和原始节点数确定压缩后节点数,以及基于压缩率和原始网格数确定压缩后网格数。
在一种可能的实施方式中,可以根据压缩率和原始节点数直接计算出压缩后节点数,以及根据压缩率和原始网格数计算出压缩后网格数。如设置压缩前的原始节点数或网格数为m,设置压缩率为s,则压缩后节点数或网格数为t。则计算公式为:t=(1-s)*m。
示意性的,分别设置三种压缩率分别为20%、40%和50%,则高精度模型文件的压缩后节点数为8,压缩后网格数为80;对于中精度模型文件的压缩后节点数为6,压缩后网格数为60;低精度模型文件的压缩后节点数为5,压缩后网格数为50。
步骤502d,基于压缩后节点数对原始节点数据进行节点精简处理,得到压缩后节点数据,以及基于压缩后网格数对原始网格数据进行网格精简处理,得到压缩后网格数据。
在确定出压缩后节点数以及压缩后网格数后,则需要对原始节点数据以及原始网格数据进行精简处理。精简处理的采用的是有损压缩方式,即删除原始模型文件中的部分节点数据以及网格数据,改变了网格数据以及节点数据的索引方法,从而达到减少节点数以及网格数的目的,且压缩后节点数据以及压缩后网格数据所占据的存储空间也相应减少。对于终端来说,CPU和GPU在渲染三维模型时的难度也相应降低。
在一种可能的实施方式中,可以采用Edge breaker 3D压缩算法来对原始节点数据以及原始网格数据进行精简处理,精简处理后获得的压缩后节点数据以及压缩后网格数据的数据量相应减少。如图7所示,压缩的网格数据为50,即构成圆柱模型的三角形数量为50,相比压缩之前数量减半,其模型精度也相应降低,模型的棱角更加明显。
以上对属性数据进行数据压缩的过程是基于终端显示的静态三维模型,当终端显示的是动态三维模型时,则属性数据还包括动画数据。也即三维模型需要根据动画数据做出相应模型动作,动画数据是GLTF文件中占比较大的数据部分,动画数据描述了三维模型的所有动作信息,包括动画帧率以及不同时刻构成三维模型的点云的坐标信息。对动画数据的压缩处理过程包括如下步骤:
步骤502e,基于原始动画数据确定原始动画帧率。
服务器在获取到原始GLTF文件的原始动画数据后,对原始动画数据进行解析,确定渲染三维模型的原始动画帧率。动画帧率即为每秒内显示图像的频率,对于渲染相同的三维模型,动画帧率越高,三维模型做出的动作画面越流畅,同时对终端的硬件要求也越高。
步骤502f,基于压缩率和原始动画帧率确定压缩后动画帧率,压缩后动画帧率小于原始动画帧率。
在一种可能的实施方式中,为了能够确保生成的候选模型文件能够覆盖所有的终端,可以将原始动画帧率设置为最高显示帧率,如设置原始动画帧率为30帧/秒。对于不同的模型精度,可以根据压缩率和原始动画帧率计算压缩后动画帧率。
示意性的,设置原始动画帧率为30帧/秒,压缩率为20%,则压缩后动画帧率为24帧/秒;当压缩率设置为40%,压缩后动画帧率为18帧/秒;当压缩率设置为50%,压缩后动画帧率为15帧/秒。
除根据压缩率计算压缩后动画帧率外,还可以根据模型精度设置固定值,对于高精度模型文件,设置动画帧率为30帧/秒;对于中精度模型文件,设置动画帧率为25帧/秒;对于低精度模型文件,设置动画帧率为15帧/秒。
需要说明的是,压缩后动画帧率是小于原始动画帧率的,但在一些实施例中,对于硬件条件以及网络条件较高的终端来说,其具备下载原始模型文件以及直接根据原始模型文件进行模型渲染的能力。因此服务器中还可存储原始模型文件,无需对其进行压缩处理,对于终端来说,动画帧率越高,渲染出的模型动作越流畅,将动画帧率降低后,在Web页面显示的流畅度相应降低。同时,CPU和GPU在渲染三维模型时的难度也降低。
步骤502g,基于压缩后动画帧率对原始动画数据进行压缩处理,得到压缩后动画数据。
服务器确定压缩后动画帧率后,基于压缩后动画帧率对原始动画数据进行压缩处理,得到对应的压缩后动画数据。
需要说明的是,由于压缩动画数据同样采用的是有损压缩方式,即减少三维模型的渲染频率。对于动态显示的三维模型来说,构成三维模型的点云坐标变换次数减少,因而有效减少了终端的渲染压力,同时也可以及时的在Web网页显示出三维模型。
步骤503,基于压缩后属性数据生成候选模型文件。
在服务器生成压缩后属性数据后,将采用相同压缩率的压缩后属性数据进行合成,获得候选模型文件。且采用不同压缩率合成的候选模型文件的文件大小以及渲染三维模型的模型精度各不相同。
通过上述方法构建出不同候选模型文件后,将其和终端评分进行关联存储,便于后续接收到终端的模型获取请求后,根据终端的模型显示条件确定目标模型文件,进而将目标模型文件发送至终端。终端在接收到目标模型文件后,显示出对应模型精度的三维模型。
本申请实施例中,服务器通过对原始模型文件进行解析,将获得的属性数据进行分别根据压缩率进行压缩处理,以获取压缩后属性数据;
对于原始贴图数据,基于压缩率对原始贴图数据进行图像压缩处理,经过压缩处理后获得压缩后贴图数据的数据量小于原始贴图数据的数据量,缩短下载时间;
对于原始节点数据以及原始网格数据,服务器在确定原始节点数、原始网格数后,基于压缩率、原始节点数以及原始网格数确定出压缩后网格数以及压缩后节点数,以便对原始网格数据以及原始节点数据进行精简处理;且精简处理后获得的压缩后节点数据以及压缩后网格数据在后期进行模型渲染时可以得到不同模型精度的三维模型;
对于原始动画数据,服务器通过确定出原始动画帧率后,根据压缩率确定出压缩后动画帧率,进而通过对原始动画数据进行压缩处理,获得压缩后动画数据,由于压缩后动画帧率小于原始动画帧率,因而可以降低对终端的硬件需求;
此外,由于候选模型文件的数据量小于原始模型文件的数据量,且不同候选模型文件可以渲染得到不同模型精度的三维模型,自身条件自适应渲染出相应模型精度的三维模型。
需要说明的是,本申请实施例中的服务器具备构建不同候选模型文件的功能。在一些实施例中,为了降低服务器的运行负荷,还可以将构建候选模型文件的任务转移到计算机设备上,由计算机设备根据原始模型文件进行压缩处理,进而将构建的候选模型文件发送至服务器。
图8是本申请一个示例性实施例提供的三维模型的显示装置的结构框图,该装置包括:
条件确定模块801,用于响应于终端的模型获取请求,确定所述终端的模型显示条件,所述模型显示条件用于表征所述终端显示三维模型的能力;
模型文件确定模块802,用于基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的所述候选模型文件用于渲染不同模型精度的三维模型,且所述目标模型文件对应三维模型的模型精度符合所述模型显示条件;
发送模块803,用于向所述终端发送所述目标模型文件,以便所述终端基于所述目标模型文件渲染所述三维模型。
可选的,所述模型文件确定模块802,包括:
评分单元,用于基于所述模型显示条件,确定所述终端的终端评分;
模型文件确定单元,用于基于所述终端评分从至少两个所述候选模型文件中确定所述目标模型文件,其中,不同的所述候选模型文件对应不同的评分范围。
可选的,所述模型显示条件包括硬件条件和网络条件中的至少一种;
所述评分单元,用于:
基于所述硬件条件以及硬件权重计算硬件评分,和/或,基于所述网络条件以及网络权重计算网络评分;
基于所述硬件评分和所述网络评分确定所述终端评分。
可选的,所述硬件条件包括内存参数、处理器参数以及分辨率中的至少一种,所述网络条件包括网络类型、网络信号强度、网络延迟以及网速中的至少一种。
可选的,所述装置还包括:
模型文件生成模块,用于基于原始模型文件以及至少两级模型精度,生成至少两个所述候选模型文件,所述原始模型文件对应三维模型的模型精度大于各个所述候选模型文件对应三维模型的模型精度。
可选的,所述模型文件生成模块,包括:
解析单元,用于解析所述原始模型文件,得到原始属性数据;
压缩单元,用于基于所述模型精度对应的压缩率,对所述原始属性数据进行数据压缩,得到压缩后属性数据,所述压缩率与所述模型精度呈负相关关系;
模型文件生成单元,用于基于所述压缩后属性数据生成所述候选模型文件。
可选的,所述原始属性数据包括三维模型的原始贴图数据;
所述压缩单元,还用于:
基于所述压缩率对所述原始贴图数据进行图像压缩处理,得到压缩后贴图数据,所述压缩后贴图数据的数据量小于所述原始贴图数据的数据量。
可选的,所述原始属性数据包括三维模型的原始节点数据和原始网格数据;
所述压缩单元,还用于:
基于所述原始节点数据确定原始节点数,以及基于所述原始网格数据确定原始网格数;
基于所述压缩率和所述原始节点数确定压缩后节点数,以及基于所述压缩率和所述原始网格数确定压缩后网格数;
基于所述压缩后节点数对所述原始节点数据进行节点精简处理,得到压缩后节点数据,以及基于所述压缩后网格数对所述原始网格数据进行网格精简处理,得到压缩后网格数据。
可选的,所述原始属性数据包括三维模型的原始动画数据;
所述压缩单元,还用于:
基于所述原始动画数据确定原始动画帧率;
基于所述压缩率和所述原始动画帧率确定压缩后动画帧率,所述压缩后动画帧率小于所述原始动画帧率;
基于所述压缩后动画帧率对所述原始动画数据进行压缩处理,得到压缩后动画数据。
可选的,所述候选模型文件为图形语言传输格式GLTF文件。
请参考图9,其示出了本申请一个实施例提供的服务器的结构示意图。所述服务器900包括中央处理单元(CPU,Central Processing Unit)901、包括随机存取存储器(RAM,Random Access Memory)902和只读存储器(ROM,Read-Only Memory)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O,Input/Output)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。
所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入/输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入/输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备909通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备909及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备909可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦除可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备909可以统称为存储器。
根据本申请的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上中央处理单元901执行。
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述三维模型的显示方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的三维模型的显示方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得服务器执行上述方面的各种可选实现方式中提供的三维模型的显示方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种三维模型的显示方法,其特征在于,所述方法包括:
响应于终端的模型获取请求,确定所述终端的模型显示条件,所述模型显示条件用于表征所述终端显示三维模型的能力;
基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的所述候选模型文件用于渲染不同模型精度的三维模型,且所述目标模型文件对应三维模型的模型精度符合所述模型显示条件;
向所述终端发送所述目标模型文件,以便所述终端基于所述目标模型文件渲染所述三维模型。
2.根据权利要求1所述的方法,其特征在于,所述基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,包括:
基于所述模型显示条件,确定所述终端的终端评分;
基于所述终端评分从至少两个所述候选模型文件中确定所述目标模型文件,其中,不同的所述候选模型文件对应不同的评分范围。
3.根据权利要求2所述的方法,其特征在于,所述模型显示条件包括硬件条件和网络条件中的至少一种;
所述基于所述模型显示条件,确定所述终端的终端评分,包括:
基于所述硬件条件以及硬件权重计算硬件评分,和/或,基于所述网络条件以及网络权重计算网络评分;
基于所述硬件评分和所述网络评分确定所述终端评分。
4.根据权利要求3所述的方法,其特征在于,所述硬件条件包括内存参数、处理器参数以及分辨率中的至少一种,所述网络条件包括网络类型、网络信号强度、网络延迟以及网速中的至少一种。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
基于原始模型文件以及至少两级模型精度,生成至少两个所述候选模型文件,所述原始模型文件对应三维模型的模型精度大于各个所述候选模型文件对应三维模型的模型精度。
6.根据权利要求5所述的方法,其特征在于,所述基于原始模型文件以及至少两级模型精度,生成至少两个所述候选模型文件,包括:
解析所述原始模型文件,得到原始属性数据;
基于所述模型精度对应的压缩率,对所述原始属性数据进行数据压缩,得到压缩后属性数据,所述压缩率与所述模型精度呈负相关关系;
基于所述压缩后属性数据生成所述候选模型文件。
7.根据权利要求6所述的方法,其特征在于,所述原始属性数据包括三维模型的原始贴图数据;
所述基于所述模型精度对应的压缩率,对所述原始属性数据进行数据压缩,得到压缩后属性数据,包括:
基于所述压缩率对所述原始贴图数据进行图像压缩处理,得到压缩后贴图数据,所述压缩后贴图数据的数据量小于所述原始贴图数据的数据量。
8.根据权利要求6所述的方法,其特征在于,所述原始属性数据包括三维模型的原始节点数据和原始网格数据;
所述基于所述模型精度对应的压缩率,对所述原始属性数据进行数据压缩,得到压缩后属性数据,包括:
基于所述原始节点数据确定原始节点数,以及基于所述原始网格数据确定原始网格数;
基于所述压缩率和所述原始节点数确定压缩后节点数,以及基于所述压缩率和所述原始网格数确定压缩后网格数;
基于所述压缩后节点数对所述原始节点数据进行节点精简处理,得到压缩后节点数据,以及基于所述压缩后网格数对所述原始网格数据进行网格精简处理,得到压缩后网格数据。
9.根据权利要求6所述的方法,其特征在于,所述原始属性数据包括三维模型的原始动画数据;
所述基于所述模型精度对应的压缩率,对所述原始属性数据进行数据压缩,得到压缩后属性数据,包括:
基于所述原始动画数据确定原始动画帧率;
基于所述压缩率和所述原始动画帧率确定压缩后动画帧率,所述压缩后动画帧率小于所述原始动画帧率;
基于所述压缩后动画帧率对所述原始动画数据进行压缩处理,得到压缩后动画数据。
10.根据权利要求1至4任一所述的方法,其特征在于,所述候选模型文件为图形语言传输格式GLTF文件。
11.一种三维模型的显示装置,其特征在于,所述装置包括:
条件确定模块,用于响应于终端的模型获取请求,确定所述终端的模型显示条件,所述模型显示条件用于表征所述终端显示三维模型的能力;
模型文件确定模块,用于基于所述模型显示条件,从至少两个候选模型文件中确定目标模型文件,其中,不同的所述候选模型文件用于渲染不同模型精度的三维模型,且所述目标模型文件对应三维模型的模型精度符合所述模型显示条件;
发送模块,用于向所述终端发送所述目标模型文件,以便所述终端基于所述目标模型文件渲染所述三维模型。
12.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至10任一所述的三维模型的显示方法。
13.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至10任一所述的三维模型的显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144051.8A CN115880416A (zh) | 2021-09-28 | 2021-09-28 | 三维模型的显示方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144051.8A CN115880416A (zh) | 2021-09-28 | 2021-09-28 | 三维模型的显示方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115880416A true CN115880416A (zh) | 2023-03-31 |
Family
ID=85763544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111144051.8A Pending CN115880416A (zh) | 2021-09-28 | 2021-09-28 | 三维模型的显示方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115880416A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116702218A (zh) * | 2023-08-07 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 小程序中三维模型的渲染方法、装置、终端及存储介质 |
-
2021
- 2021-09-28 CN CN202111144051.8A patent/CN115880416A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116702218A (zh) * | 2023-08-07 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 小程序中三维模型的渲染方法、装置、终端及存储介质 |
CN116702218B (zh) * | 2023-08-07 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 小程序中三维模型的渲染方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102186067B (zh) | 一种图像帧的传输方法和装置、显示方法和系统 | |
US20230215076A1 (en) | Image frame display method, apparatus, device, storage medium, and program product | |
CN111476851A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
US20230206578A1 (en) | Method for generating virtual character, electronic device and storage medium | |
CN110675465A (zh) | 用于生成图像的方法和装置 | |
CN115546331A (zh) | 一种数据渲染方法、装置、电子设备及计算机可读介质 | |
CN115880416A (zh) | 三维模型的显示方法、装置、服务器及存储介质 | |
CN110651273A (zh) | 一种数据处理方法及设备 | |
CN110858388B (zh) | 一种增强视频画质的方法和装置 | |
CN112843700B (zh) | 地形图像的生成方法、装置、计算机设备和存储介质 | |
CN111013131A (zh) | 延迟数据获取方法、电子设备及存储介质 | |
US20230274495A1 (en) | Avatar output device, terminal device, avatar output method, and program | |
CN114491352A (zh) | 模型加载方法、装置、电子设备及计算机可读存储介质 | |
CN110545427A (zh) | 一种pdf文档压缩方法、装置及电子设备 | |
US20230343021A1 (en) | Visible element determination method and apparatus, storage medium, and electronic device | |
CN111008934B (zh) | 一种场景构建方法、装置、设备及存储介质 | |
CN110838167B (zh) | 模型的渲染方法、装置和存储介质 | |
JPWO2014171066A1 (ja) | 三次元画像表示システム、三次元画像表示システムのサーバ及び三次元画像表示方法 | |
CN109391817B (zh) | 纹理数据传输方法及装置 | |
CN115861510A (zh) | 对象渲染方法、装置、电子设备、存储介质及程序产品 | |
CN114723796A (zh) | 一种三维点云生成方法、装置及电子设备 | |
CN114119831A (zh) | 积雪模型的渲染方法、装置、电子设备及可读介质 | |
CN112416489A (zh) | 工程图纸显示方法及相关装置 | |
CN115454923A (zh) | 数据计算的装置、板卡、方法以及存储介质 | |
JP7142392B1 (ja) | アバター出力装置、端末装置、アバター出力方法、およびプログラム |
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 |