发布信息

一种三维模型的预加载方法、装置、存储介质和车辆与流程 专利技术说明

作者:admin      2022-11-30 08:43:43     809



计算;推算;计数设备的制造及其应用技术1.本技术涉及计算机技术领域,特别是涉及一种三维模型的预加载方法、装置、存储介质和车辆。背景技术:2.随着车辆技术的发展,汽车的车载系统具备的功能也越来越丰富。为了增加用户体验,会为app(application,应用程序)赋予人设特征的虚拟形象,或通过动画来表现车载系统中的app的一些功能,由于三维动画较二维动画在表现上更逼真、细腻、生动,因此现在越来越多的车企厂商都倾向于使用三维动画。三维动画的展示需要加载相应的三维模型,而三维模型的加载时间会随着三维模型的复杂度而增加,延长用户等待时间,降低用户体验。3.目前常用的解决方案是三维模型加载完成之前先展示一张静态图片,然而,此种方式无法在根本上解决三维动画的响应时间长的问题,不能满足交互即时性较强的运用场景。技术实现要素:4.本技术提供一种三维模型的预加载方法、装置、存储介质和车辆,以解决现有技术存在的三维模型的加载速度慢造成不能立即播放三维动画的问题。5.为了解决上述问题,本技术采用了以下的技术方案:6.第一方面,本技术实施例提供了一种一种三维模型的预加载方法,所述方法包括:7.在操作系统启动的情况下,向预设应用程序发送开机广播,以使所述预设应用程序基于所述开机广播,启动所述预设应用程序的后台服务程序;8.生成所述预设应用程序对应的预加载指令,并将所述预加载指令发送给三维渲染引擎,以使所述三维渲染引擎响应于所述预加载指令,加载所述预设应用程序对应的三维模型;9.在获取到所述三维渲染引擎返回的加载完成信号的情况下,将所述三维渲染引擎设置为暂停状态,以使所述三维模型保持在待显示状态。10.在本技术一实施例中,在获取到所述三维渲染引擎返回的加载完成信号的情况下,将所述三维渲染引擎设置为暂停状态之后,所述方法还包括:11.响应于用户针对所述预设应用程序的控制指令,将所述三维渲染引擎从所述暂停状态设置为运行状态,并显示所述预设应用程序对应的三维模型。12.在本技术一实施例中,生成所述预设应用程序对应的预加载指令,并将所述预加载指令发送给三维渲染引擎,以使所述三维渲染引擎基于所述预加载指令,加载所述预设应用程序对应的三维模型,包括:13.生成所述预设应用程序对应的预加载指令,并在当前人机交互界面上创建模型预加载窗口;所述模型预加载窗口的透明度为百分之百;14.将所述预加载指令发送给所述三维渲染引擎,以使所述三维渲染引擎基于所述预加载指令,在所述模型预加载窗口加载所述预设应用程序对应的三维模型;15.在获取到所述三维渲染引擎返回的加载完成信号的情况下,将所述模型预加载窗口移除。16.在本技术一实施例中,所预设应用程序的运行参数设置为特殊持久模式;在所述特殊持久模式下,所述预设应用程序能够在被强制关闭后重新启动。17.在本技术一实施例中,所述模型预加载窗口的窗口参数设置为目标参数;在所述目标参数下,所述模型预加载窗口不影响用户针对所述当前人机交互界面的交互操作。18.第二方面,基于相同发明构思,本技术实施例提供了一种三维模型的预加载装置,所述装置包括:19.广播发送模块,用于在操作系统启动的情况下,向预设应用程序发送开机广播,以使所述预设应用程序基于所述开机广播,启动所述预设应用程序的后台服务程序;20.预加载模块,用于生成所述预设应用程序对应的预加载指令,并将所述预加载指令发送给三维渲染引擎,以使所述三维渲染引擎响应于所述预加载指令,加载所述预设应用程序对应的三维模型;21.休眠模块,用于在获取到所述三维渲染引擎返回的加载完成信号的情况下,将所述三维渲染引擎设置为暂停状态,以使所述三维模型保持在待显示状态。22.在本技术一实施例中,所述装置还包括:23.模型显示模块,用于响应于用户针对所述预设应用程序的控制指令,将所述三维渲染引擎从所述暂停状态设置为运行状态,并显示所述预设应用程序对应的三维模型。24.在本技术一实施例中,所述预加载模块包括:25.窗口创建子模块,用于生成所述预设应用程序对应的预加载指令,并在当前人机交互界面上创建模型预加载窗口;所述模型预加载窗口的透明度为百分之百;26.预加载子模块,用于将所述预加载指令发送给所述三维渲染引擎,以使所述三维渲染引擎基于所述预加载指令,在所述模型预加载窗口加载所述预设应用程序对应的三维模型;27.窗口移除子模块,用于在获取到所述三维渲染引擎返回的加载完成信号的情况下,将所述模型预加载窗口移除。28.在本技术一实施例中,所预设应用程序的运行参数设置为特殊持久模式;在所述特殊持久模式下,所述预设应用程序能够在被强制关闭后重新启动。29.在本技术一实施例中,所述模型预加载窗口的窗口参数设置为目标参数;在所述目标参数下,所述模型预加载窗口不影响用户针对所述当前人机交互界面的交互操作。30.第三方面,基于相同发明构思,本技术实施例提供了一种存储介质,所述存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现本技术第一方面提出的三维模型的预加载方法。31.第四方面,基于相同发明构思,本技术实施例提供了一种车辆,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器用于执行机器可执行指令,以实现本技术第一方面提出的三维模型的预加载方法。32.与现有技术相比,本技术包括以下优点:33.本技术实施例提供的一种三维模型的预加载方法,通过向预设应用程序发送开机广播,使预设应用程序的后台服务程序随操作系统的启动而启动;并通过向三维渲染引擎发送预加载指令,使得三维渲染引擎能够在后台进行三维模型的预加载,并在三维模型加载完成的情况下,将三维渲染引擎的运行状态设置为暂停状态,进而完成三维模型的预加载,由于三维模型在暂停状态下保持在待显示状态,因此当用户在启用预设应用程序时,可以立即显示对应的三维模型并播放三维动画,而无需重新对三维模型进行加载,极大地缩短三维模型的加载时间,充分满足交互即时性较强的运用场景,提高用户的使用体验。附图说明34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。35.图1是本技术一实施例中一种三维模型的预加载方法的步骤流程图。36.图2是本技术一实施例中一种三维模型的预加载装置的功能模块示意图。37.附图标记:200-三维模型的预加载装置;201-广播发送模块;202-预加载模块;203-休眠模块。具体实施方式38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。39.需要说明的是,在相关技术中,为升级用户体验,提高人机交互的科技感和智能感,越来越多的车企厂商都倾向于使用三维动画来体现车辆具备的功能,如为app赋予人设特征的虚拟形象,通过人与虚拟形象的交互,实现对车辆的控制;亦或通过播放三维动画表现车载功能,如通过三维动画表现空调的吹风效果。无论何种方式,都需要对三维模型进行加载,由于车载系统自身算力有限,三维模型的加载时间也会随着三维模型的复杂度而增加,造成用户在启动具有虚拟形象的app或启用app某些需要播放三维动画的功能时,将花费较多时间进行三维模型的加载,进而延长用户等待时间,降低用户体验。40.相关技术中,虽然在三维模型加载完成之前先展示一张静态图片,可以给用户以响应快速的感觉,但是仍不能立即播放三维动画,不能满足交互即时性较强的场景,如通过语音唤醒车机虚拟形象并展示三维动画,并且如果静态图片与三维模型有一定的关联性,在三维模型改变后,也需要同步修改静态图片,增加模型变更的工作量。41.针对相关技术存在的问题,本技术旨在提供一种三维模型的预加载方法,通过在用户启用app之前,对app对应的三维模型进行预加载,在不占用cpu的情况下,使三维模型预先处于已加载完成的待显示状态,使得用户在启用app时,能够立即显示该三维模型,极大地缩短三维模型的加载时间,充分满足交互即时性较强的运用场景,提高用户的使用体验。42.参照图1,示出了本技术一种三维模型的预加载方法,该方法可以包括以下步骤:43.s101:在操作系统启动的情况下,向预设应用程序发送开机广播,以使预设应用程序基于开机广播,启动预设应用程序的后台服务程序。44.需要说明的是,操作系统(operating system,os)指车载系统所搭载的为各个应用程序提供运行环境的系统软件程序,可以但不限于包括windows操作系统、android操作系统、鸿蒙操作系统等,本实施方式将以android操作系统(以下简称android系统)作为示例进行说明。45.在本实施方式中,预设应用程序指设置有虚拟形象或相关功能需要播放三维动画的应用程序,该预设应用程序可以为多个,可以根据实际情况进行添加和删除。预设应用程序能够在android系统启动完成后,监听到开机广播,并启动自身的后台service,即后台服务程序。46.在具体实现中,开机广播的监听,可以通过在android系统的清单文件androidmanifest.xml中注册预设应用程序的接收器(broadcastreceiver)实现,已注册接收器的应用程序可以获取访问系统开机事件的权限,当android系统启动完成后,预设应用程序的接收器便会接收到该开机广播;开机广播的监听也可以通过其他形式实现,如单独设置一个触发器,用于获取android系统的开机广播,并在监听到该开机广播之后发送特定通知给预设应用程序。47.在本实施方式中,为使预设应用程序的后台服务进程被强制关闭后能够重新启动,可以将所预设应用程序的运行参数设置为特殊持久模式,具体而言,即在预设应用程序的service所属应用的清单文件androidmanifest.xml中,将application的persistent属性设为true。需要说明的是,persistent属性是一个用于控制应用程序特殊持久模式的标志,当预设应用程序的persistent属性设为true后,预设应用程序不仅可以跟随android系统的启动而启动,还能在被强制杀掉后,android系统重启该预设应用程序的服务进程,继续完成三维模型的预加载。此外,还可以采用android系统其他进程拉活的方式实现服务进程被杀后的自启动,如双进程拉活,具体而言,通过建立预设应用程序与关联应用的关联,当预设应用程序和关联应用中的任意一个进程结束后,可以立刻调用启动另一个进程,这样实现两个应用之间互相调用,互相启动,进而保证预设应用程序被杀死后能够重新启动。48.s102:生成预设应用程序对应的预加载指令,并将预加载指令发送给三维渲染引擎,以使三维渲染引擎响应于预加载指令,加载预设应用程序对应的三维模型。49.在本实施方式中,android系统通过预先约定好的三维引擎接口与三维渲染引擎连接,当预设应用程序有多个时,不同的预设应用程序通过不同的引擎接口连接该三维渲染引擎。需要说明的是,三维引擎接口用于实现android系统和三维渲染引擎之间的协议转换,预设应用程序可以通过该引擎接口调用三维渲染引擎,实现对三维模型的加载。其中,三维渲染引擎可以但不限于采用unity,unreal engine等三维引擎。50.在本实施方式中,三维渲染引擎在获取到预加载指令之后,将会启动对三维模型的预加载,在三维模型加载完毕之后,将通过对应的三维引擎接口通知android系统三维模型的已加载完毕。需要说明的是,此过程由于建立在预设应用程序的后台service,而service是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序,因此,用户并不会感知到这个预加载的过程。51.在具体实现中,三维渲染引擎响应于预加载指令,将会依次完成三维渲染引擎的创建、初始化以及三维模型的加载,以unity为例,首先会基于预加载指令,创建三维渲染引擎以启动一个新线程,初始化参数,然后将模型信息从本地存储加载到内存中,读取预设应用程序对应的三维模型的点、线、面、材质等信息进行模型的渲染,进而完成三维模型的加载。52.需要说明的是,当预设应用程序为多个时,三维渲染引擎通过不同的三维引擎接口获取对应预设应用程序的三维模型信息,并行地对不同三维模型进行预加载,以同时满足多个预设应用程序的三维模型预加载需求。53.s103:在获取到三维渲染引擎返回的加载完成信号时,将三维渲染引擎设置为暂停状态,以使三维模型保持在待显示状态。54.在本实施方式中,当android系统获取到三维渲染引擎返回的加载完成信号时,说明三维模型已经完成预加载,此时,android系统将调用三维引擎接口将三维渲染引擎的运行状态设置为pause状态,即暂停状态,类似于进入休眠模式,在暂停状态下,三维模型保持在待显示状态,同时三维渲染引擎将不再占用系统cpu资源,此时三维模型被隐藏在后台,等待用户触发三维视图的展示即可。55.在本实施方式中,通过在系统开机时向预设应用程序发送开机广播,使预设应用程序的后台服务程序随操作系统的启动而启动;并通过向三维渲染引擎发送预加载指令,使得三维渲染引擎能够在后台进行三维模型的预加载,并在三维模型加载完成的情况下,将三维渲染引擎的运行状态设置为暂停状态,进而完成三维模型的预加载,由于三维模型在暂停状态下保持在待显示状态,因此当用户启动具有虚拟形象的预设应用程序或启用预设应用程序某些需要播放三维动画的功能时,可以立即显示对应的三维模型并播放三维动画,而无需重新对三维模型进行加载,极大地缩短三维模型的加载时间,有效满足交互即时性较强的运用场景,提高用户的使用体验;同时,由于模型加载过程不涉及模型信息,对于开发过程中的模型变更需求,无需重新适配。56.在一个可行的实施方式中,s103之后,三维模型的预加载方法还可以包括以下步骤:57.s104:响应于用户针对预设应用程序的控制指令,将三维渲染引擎从暂停状态设置为运行状态,并显示预设应用程序对应的三维模型。58.在本实施方式中,由于在用户触发针对预设应用程序的控制指令之前,三维渲染引擎已经完成创建、初始化和三维模型的加载,所以在显示时,只需将三维引擎的运行状态从暂停状态恢复为运行状态即可,并将三维模型添加到车载系统的人机交互界面上,这样就能够即时展示三维模型并播放相应的三维动画。59.需要说明的是,用户在完成对预设应用程序的使用,并退出或隐藏该预设应用程序对应的三维模型界面后,将再次暂停三维渲染引擎的运行状态,这样即不会占用系统cpu资源,在下次展示时也无需重新加载三维模型。60.在本实施方式中,由于预设应用程序在开机阶段已自动完成预加载过程,因此,在用户首次触发三维模型展示时,便能立即显示,并播放三维动画;在退出使用之后,通过再次暂停三维渲染引擎的运行状态,使得此后的每次使用,均能实现快速响应,充分满足交互即时性较强的运用场景,提高用户的使用体验。61.在一个可行的实施方式中,s102具体可以包括以下子步骤:62.s102-1:生成预设应用程序对应的预加载指令,并在当前人机交互界面上创建模型预加载窗口;模型预加载窗口的透明度为百分之百。63.在本实施方式中,对于部分需要获取一个视图焦点才能完成模型加载的三维渲染引擎,如unity引擎,在启动后台service后,还将为该三维渲染引擎提供模型预加载窗口以完成三维模型的预加载。64.在本实施方式,模型预加载窗口可以基于window窗口进行创建,window窗口在android系统中属于完全可自制定且无生命周期的一类窗口,并且通过将三维模型的加载添加到window窗口上,不会影响其他应用程序及对应人机交互界面的显示及交互。65.在本实施方式中,还可以将模型预加载窗口的窗口参数设置为目标参数;在目标参数下,模型预加载窗口不会影响用户针对当前人机交互界面的交互操作。具体而言,可以将该窗口的flag属性设为flag_not_focusable,flag_not_touchable等,进而使得模型预加载窗口为不可触碰的状态,此时,用户可以正常在当前人机交互界面上进行操作,如对当前人机交互界面进行切换或对当前人机交互界面上的虚拟按钮进行点击操作,进而在目标参数下,模型预加载窗口不影响其他应用程序的使用以及对应人机交互界面的显示和交互。66.s102-2:将预加载指令发送给三维渲染引擎,以使三维渲染引擎基于预加载指令,在模型预加载窗口加载预设应用程序对应的三维模型。67.s102-3:在获取到三维渲染引擎返回的加载完成信号的情况下,将模型预加载窗口移除。68.在本实施方式中,由于模型预加载窗口的透明度为百分之百,因此用户不会感知到三维模型在模型预加载窗口上的加载过程,android系统接收到三维模型加载完成的通知后,将立刻移除该窗口,因此,整个过程能够在不影响用户使用以及其他应用程序运行的前提下,完成三维模型的预加载。69.第二方面,基于相同发明构思,参照图2,本技术实施例提供了一种三维模型的预加载装置200,该三维模型的预加载装置200包括:70.广播发送模块201,用于在操作系统启动的情况下,向预设应用程序发送开机广播,以使预设应用程序基于开机广播,启动预设应用程序的后台服务程序;71.预加载模块202,用于生成预设应用程序对应的预加载指令,并将预加载指令发送给三维渲染引擎,以使三维渲染引擎响应于预加载指令,加载预设应用程序对应的三维模型;72.休眠模块203,用于在获取到三维渲染引擎返回的加载完成信号时,将三维渲染引擎设置为暂停状态,以使三维模型保持在待显示状态。73.在本技术一实施例中,三维模型的预加载装置200还包括:74.模型显示模块,用于响应于用户针对预设应用程序的控制指令,将三维渲染引擎从暂停状态设置为运行状态,并显示预设应用程序对应的三维模型。75.在本技术一实施例中,预加载模块202包括:76.窗口创建子模块,用于生成预设应用程序对应的预加载指令,并在当前人机交互界面上创建模型预加载窗口;模型预加载窗口的透明度为百分之百;77.预加载子模块,用于将预加载指令发送给三维渲染引擎,以使三维渲染引擎基于预加载指令,在模型预加载窗口加载预设应用程序对应的三维模型;78.窗口移除子模块,用于在获取到三维渲染引擎返回的加载完成信号的情况下,将模型预加载窗口移除。79.在本技术一实施例中,所预设应用程序的运行参数设置为特殊持久模式;在特殊持久模式下,预设应用程序能够在被强制关闭后重新启动。80.在本技术一实施例中,模型预加载窗口的窗口参数设置为目标参数;在目标参数下,模型预加载窗口不影响用户针对当前人机交互界面的交互操作。81.需要说明的是,本技术实施例的三维模型的预加载装置200的具体实施方式参照前述本技术实施例第一方面提出的三维模型的预加载方法的具体实施方式,在此不再赘述。82.第三方面,基于相同发明构思,本技术实施例提供了一种存储介质,存储介质内存储有机器可执行指令,机器可执行指令被处理器执行时实现本技术第一方面提出的三维模型的预加载方法。83.需要说明的是,本技术实施例的存储介质的具体实施方式参照前述本技术实施例第一方面提出的三维模型的预加载方法的具体实施方式,在此不再赘述84.第四方面,基于相同发明构思,本技术实施例提供了一种车辆,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器用于执行机器可执行指令,以实现本技术第一方面提出的三维模型的预加载方法。85.需要说明的是,本技术实施例的车辆的具体实施方式参照前述本技术实施例第一方面提出的三维模型的预加载方法的具体实施方式,在此不再赘述。86.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。87.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。88.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。89.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。90.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。91.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。92.以上对本发明所提供的一种三维模型的预加载方法、装置、存储介质和车辆,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部