玩具专利数据库

在虚拟场景上显示用户界面的方法、装置及电子

发布日期:2024-09-02 浏览次数:

本技术涉及多媒体,特别涉及一种在虚拟场景上显示用户界面的方法、装置及电子设备。背景技术:1、随着多媒体技术的发展和终端功能的多样化,用户能够方便地使用终端来进行游戏。在游戏应用的运行中,终端在显示屏中渲染的画面包括:虚拟场景和用户界面两个部分,通常,渲染时虚拟场景的主相机会清空帧缓冲区,将虚拟场景渲染到帧缓冲区以后,再使用用户界面的相机清空帧缓冲区的深度,接着对用户界面进行渲染,达到用户界面覆盖在虚拟场景上的显示效果。2、由于用户界面和虚拟场景之间存在覆盖显示,针对虚拟场景中被用户界面所覆盖的重叠区域内的像素,终端需要先绘制一次像素在虚拟场景中的表现,再绘制一次像素在用户界面中的表现,因此普遍存在对重叠区域中像素进行多次绘制的现象,导致大量像素被多次复写,图形处理器(graphics processing unit,gpu)的渲染开销较大,造成终端的性能浪费。技术实现思路1、本技术实施例提供了一种在虚拟场景上显示用户界面的方法、装置及电子设备,能够改善同时显示虚拟场景和用户界面时存在的过度绘制现象,降低gpu的渲染开销,改善终端的性能浪费。该技术方案如下:2、一方面,提供了一种在虚拟场景上显示用户界面的方法,所述方法包括: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、转换子单元,用于将所述顶点的模型坐标转换为所述顶点的标准化设备ndc坐标;31、修改子单元,用于基于所述虚拟场景中主相机视角下距离最近的平面深度,对所述ndc坐标中的深度通道分量进行修改,得到所述顶点的目标ndc坐标;32、其中,所述目标ndc坐标的深度通道分量为所述ndc坐标的深度通道分量和齐次通道分量之间的乘积。33、在一些实施例中,所述修改子单元用于:34、读取所述虚拟场景中主相机视角下距离最近的平面深度;35、基于所述ndc坐标的横坐标通道分量、纵坐标通道分量和齐次通道分量,生成变换向量,其中,所述变换向量与所述ndc坐标的横坐标通道分量、纵坐标通道分量和齐次通道分量均相同,且所述变换向量的深度通道分量被配置为所述ndc坐标的齐次通道分量;36、将所述变换向量的深度通道分量与读取到的所述平面深度之间的乘积,赋值给所述变换向量的深度通道分量,得到所述目标ndc坐标。37、在一些实施例中,所述转换子单元用于:38、基于投影矩阵、视点矩阵、模型矩阵和变换矩阵,确定目标矩阵,所述目标矩阵用于将顶点坐标从模型空间变换到标准化设备空间;39、将所述目标矩阵与所述顶点的模型坐标相乘,得到所述顶点的ndc坐标;40、其中,所述变换矩阵用于将顶点坐标从模型空间变换到本地空间,所述模型矩阵用于将顶点坐标从本地空间变换到世界空间,所述视点矩阵用于将顶点坐标从世界空间变换到视空间,所述投影矩阵用于将顶点坐标从视空间变换到标准化设备空间。41、一方面,提供了一种电子设备,该电子设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述在虚拟场景上显示用户界面的方法。42、一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述在虚拟场景上显示用户界面的方法。43、一方面,提供一种计算机程序产品,所述计算机程序产品包括一条或多条计算机程序,所述一条或多条计算机程序存储在计算机可读存储介质中。电子设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条计算机程序,所述一个或多个处理器执行所述一条或多条计算机程序,使得电子设备能够执行上述在虚拟场景上显示用户界面的方法。44、本技术实施例提供的技术方案带来的有益效果至少包括:45、通过对用户界面在虚拟场景中引入一个代替用户界面做深度测试的物体模型,并配置物体模型的深度为虚拟场景的主相机视角下距离最近的平面深度,这样保证了虚拟场景中被用户界面遮盖的所有虚拟物体都无法通过深度测试,从而在渲染虚拟场景时必然会存在未着色区域,再在未着色区域上渲染用户界面,从而在渲染虚拟场景时节约了对未着色区域的渲染开销,改善了同时显示虚拟场景和用户界面时存在的过度绘制现象,降低了gpu的渲染开销,改善了终端的性能浪费。