CN109725956A - 一种场景渲染的方法以及相关装置 - Google Patents
一种场景渲染的方法以及相关装置 Download PDFInfo
- Publication number
- CN109725956A CN109725956A CN201711013575.7A CN201711013575A CN109725956A CN 109725956 A CN109725956 A CN 109725956A CN 201711013575 A CN201711013575 A CN 201711013575A CN 109725956 A CN109725956 A CN 109725956A
- Authority
- CN
- China
- Prior art keywords
- thread
- texture
- scene rendering
- updated
- scene
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种场景渲染的方法,方法应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,方法包括:通过所述VR线程创建纹理;通过所述VR线程将所述纹理共享于UI线程;通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。本发明还提供一种场景渲染装置。本发明实施例中UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种场景渲染的方法以及相关装置。
背景技术
虚拟现实(virtual reality,VR)应用最大的特点之一就是三维全景操作,而用户界面(user interface,UI)组件则是在二维空间中排布。为了满足用户视觉审美需求,在VR模式下展示UI成为一大设计难点。
目前,实现VR模式下的UI主要是通过游戏引擎的UI组件来实现,如Unity 3D的统一图形用户界面(unity graphical user interface,UGUI)。Unity 3D的UI实现先通过Unity 3D编辑器来构建场景,游戏引擎再将场景中的UI使用图形程序接口(open graphicslibrary,OpenGL)的指令来绘制。
然而,虽然以Unity 3D为代表的游戏引擎UI组件可以实现在VR模式下展示UI,但是Unity 3D这类的游戏引擎往往需要较高的性能开销,消耗大量的处理器资源,从而降低了方案的实用性。
发明内容
本发明实施例提供了一种场景渲染的方法以及相关装置,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
有鉴于此,本发明第一方面提供了一种场景渲染的方法,所述方法应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述方法包括:
通过所述VR线程创建纹理;
通过所述VR线程将所述纹理共享于UI线程;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
本发明第二方面提供了一种场景渲染的方法,所述方法应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述方法包括:
通过所述UI线程创建纹理;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述UI线程将所述纹理共享于UI线程;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
本发明第三方面提供了一种场景渲染装置,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置包括:
创建模块,用于通过所述VR线程创建纹理;
共享模块,用于通过所述VR线程将所述创建模块创建的所述纹理共享于UI线程;
添加模块,用于通过所述共享模块共享的所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
渲染模块,用于通过所述VR线程对所述添加模块添加的所述纹理进行渲染,并得到场景渲染结果。
本发明第四方面提供了一种场景渲染装置,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置包括:
创建模块,用于通过所述UI线程创建纹理;
添加模块,用于通过所述UI线程将UI待处理元素添加至所述创建模块创建的所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
共享模块,用于通过所述UI线程将所述添加模块添加的所述纹理共享于UI线程;
渲染模块,用于通过所述VR线程对所述共享模块共享的所述纹理进行渲染,并得到场景渲染结果。
本发明的第五方面提供了一种场景渲染装置,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
通过所述VR线程创建纹理;
通过所述VR线程将所述纹理共享于UI线程;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本发明的第六方面提供了一种场景渲染装置,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
通过所述UI线程创建纹理;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述UI线程将所述纹理共享于UI线程;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本发明的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种场景渲染的方法,该方法应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,首先通过VR线程创建纹理,通过VR线程将纹理共享于UI线程,通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式,最后通过VR线程对纹理进行渲染,并得到场景渲染结果。通过上述方式,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
附图说明
图1为本发明实施例中UI线程与VR线程的工作流程图;
图2为本发明实施例中场景渲染的方法一个实施例示意图;
图3为本发明实施例中场景渲染的方法另一个实施例示意图;
图4为本发明应用场景中VR环境下的视频列表界面示意图;
图5为本发明实施例中场景渲染装置一个实施例示意图;
图6为本发明实施例中场景渲染装置另一个实施例示意图;
图7为本发明实施例中场景渲染装置另一个实施例示意图;
图8为本发明实施例中场景渲染装置另一个实施例示意图;
图9为本发明实施例中场景渲染装置另一个实施例示意图;
图10为本发明实施例中场景渲染装置另一个实施例示意图;
图11为本发明实施例中场景渲染装置一个结构示意图;
图12为本发明实施例中场景渲染装置另一个结构示意图。
具体实施方式
本发明实施例提供了一种场景渲染的方法以及相关装置,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本方案主要应用于VR类应用程序,VR是指通过虚拟化技术构建真实世界的场景与体验,而VR类应用程序顾名思义,就是实现VR体验的应用程序。此外,本发明中的场景渲染装置可以指VR类终端,例如VR眼镜或者VR头盔等,以VR眼镜为例,VR眼镜是配合VR类应用程序完成VR体验的硬件盒子,左右眼有两凸透镜片,实现VR的沉浸式体验。
VR技术是仿真技术的一个重要方向,是仿真技术与计算机图形学人机接口技术多媒体技术传感技术网络技术等多种技术的集合。VR主要包括模拟环境、感知、自然技能和传感设备等方面。模拟环境是由计算机生成的且实时动态的三维立体逼真图像。
VR是多种技术的综合,包括实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术、触觉与力觉反馈、立体声、网络传输以及语音输入输出技术等。下面对这些技术分别加以说明。
实时三维计算机图形是指利用计算机模型产生图形图像。如果有足够准确的模型,又有足够的时间,我们就可以生成不同光照条件下各种物体的精确图像,但是这里的关键是“实时”。例如在飞行模拟系统中,图像的刷新相当重要,同时对图像质量的要求也很高,再加上非常复杂的虚拟环境,问题就变得相当困难。
广角(宽视野)立体显示技术是指人看周围的世界时,由于两只眼睛的位置不同,得到的图像略有不同,这些图像在脑子里融合起来,就形成了一个关于周围世界的整体景象,这个景象中包括了距离远近的信息。当然,距离信息也可以通过其他方法获得。在VR系统中,双目立体视觉起了很大作用。用户的两只眼睛看到的不同图像是分别产生的,显示在不同的显示器上。有的系统采用单个显示器,但用户带上特殊的眼镜后,一只眼睛只能看到奇数帧图像,另一只眼睛只能看到偶数帧图像,奇帧和偶帧之间的不同也就是视差就产生了立体感。
用户头、眼和手的跟踪技术是指在人造环境中,每个物体相对于系统的坐标系都有一个位置与姿态,而用户也是如此。用户看到的景象是由用户的位置和头(眼)的方向来确定的。
在用户与计算机的交互中,键盘和鼠标是目前最常用的工具,但对于三维空间来说,它们都不太适合。在三维空间中因为有六个自由度,我们很难找出比较直观的办法把鼠标的平面运动映射成三维空间的任意运动。现在,已经有一些设备可以提供六个自由度,另外一些性能比较优异的设备是数据手套和数据衣。
在VR类应用程序中除了可以构建出VR场景,还可以构建一些UI,比如在VR视频类应用程序播放视频的过程中,用户需要打开视频播放菜单,那么在整个VR环境中就会显示一个视频播放菜单的UI,当然,这个视频播放菜单的UI仅显示于VR环境下即可,可以不进行VR渲染。
针对上述情形,本发明可以实现一种快速、简单且高效的VR场景内显示UI的方法。请参阅图1,图1为本发明实施例中UI线程与VR线程的工作流程图,如图所示,在VR类应用程序中运行有两个线程,分别为UI线程和VR线程,步骤S1中,在UI线程中初始化VR线程,相当于VR类应用程序开始运行,VR线程在步骤S2中进行初始化。UI线程在步骤S3中构建UI,此外,VR线程在步骤S4中需要初始化VR渲染环境,为后续的VR场景渲染建立基础。
步骤S5中,在VR线程中创建纹理,并且共享创建好的纹理,从而使得UI线程可以在步骤S6中得到共享纹理。于是,在步骤S7中UI线程不断地对纹理进行渲染,渲染到纹理中的UI图像会通过系统机制通知给VR线程中的纹理。VR线程在步骤S8中不断渲染地最新的纹理,这样也就能在VR渲染的场景中看到UI渲染的结果。
下面将对本发明中场景渲染的方法进行介绍,请参阅图2,本发明实施例中场景渲染的方法一个实施例包括:
101、通过VR线程创建纹理;
本实施例中,在VR类的应用程序内包含了UI线程和VR线程,UI线程主要用于构建UI元素,例如绘制列表,VR线程主要用于构建VR场景。首先,场景渲染装置通过UI线程对UI进行渲染,并得到UI待处理元素。
此外,在VR线程创建纹理之前,可以初始化VR线程,具体的初始化方式为通过UI线程初始化VR线程,这是因为通常情况下是由UI线程接收到用户发起的指令,根据该指令判断是否开启VR类应用程序,如果需要启动VR类应用程序,那么UI线程就会向VR线程发送初始化指令,使得VR线程进行初始化。
在通过UI线程初始化VR线程之后,需要通过VR线程创建基于OpenGL的VR渲染环境。VR的体验是沉浸式的,移动终端的VR体验是通过OpenGL技术来实现的。以android系统为例,UI的渲染是将UI元素渲染到一个位图缓存中,然后交给系统上屏进行显示,4.0及以上的android系统默认开启了硬件加速,最终UI的渲染也是由OpenGL来实现。
虽然VR与UI的都是通过OpenGL来实现的,但不能将UI的OpenGL渲染与VR的OpenGL渲染整合起来,这是因为OpenGL是线程相关的,UI的渲染与VR的渲染是两个独立的线程。因此,本方案需要将UI线程渲染的结果放到纹理中,再将纹理享给VR线程,VR线程再将纹理渲染到VR的场景中。也就是在VR场景中渲染一个平面矩形(或变形的其他形状),纹理作为这个平面矩形的贴图。当然,VR场景也需要渲染本身的模型,即具有结构特性的三维纹理。
其中,OpenGL是广泛使用的三维图形学接口,在各个平台都可以实现,也是VR体验的主要实现技术。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性。OpenGL使用简便,效率高。此外,OpenGL还具有以下功能:
1、建模,OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体以及复杂曲线和曲面绘制函数。
2、变换,OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、缩放、镜像四种变换,投影变换有平行投影和透视投影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。
3、颜色模式设置,OpenGL颜色模式有两种,即RGBA模式和颜色索引。
4、光照和材质设置:OpenGL光有自发光、环境光、漫反射光和高光。材质是用光反射率来表示。场景中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。
5、纹理映射,利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。
6、位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合、抗锯齿和雾的特殊图象效果处理,以上三条可使被仿真物更具真实感,增强图形显示的效果。
7、双缓存动画双缓存即前台缓存和后台缓存,即后台缓存计算场景,生成画面,前台缓存显示后台缓存已画好的画面。
此外,利用OpenGL还能实现深度暗示、运动模糊等特殊效果。从而实现了消隐算法。
102、通过VR线程将纹理共享于UI线程;
本实施例中,场景渲染装置通过VR线程将纹理共享给UI线程,其中,若场景渲染装置采用的是安卓(android)系统,那么应用于该场景渲染装置中的VR应用程序也为android类VR应用程序。VR线程将创建纹理和模型,在android中,纹理可以为表面纹理(surface),模型可以为结构纹理(surfacetexture)。
可以理解的是,在VR线程中进行渲染时,除了纹理,还需要有模型,模型可以是一个矩形或曲面或其他三维的模型。在VR环境下进行渲染,就是绘制一个矩形或曲面,并将纹理贴到这个矩形或曲面的表面。
103、通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式;
本实施例中,场景渲染装置通过UI线程将UI待处理元素添加至纹理,其中,纹理属于图形学中概念,可以理解为一张二维的位图,具有颜色信息,可以通过纹理保存贴图信息。而纹理则是UI线程中用于保存UI待处理元素在三维图像中的贴图形式。
104、通过VR线程对纹理进行渲染,并得到场景渲染结果。
本实施例中,场景渲染装置通过VR获取共享的纹理,然后会对纹理进行渲染,纹理对应于UI,这样也就实现在VR场景中展示UI的效果。
本方案可以UI待处理元素绘制到一张纹理中,将这张纹理共享于VR的三维场景,并将纹理在VR的三维场景中进行绘制以及渲染。共享的纹理可在VR场景中进行空间位置、角度以及形态的变化,实现想要的效果。另外,还可以通过计算热点与纹理的是否有交点及交点的坐标,对纹理上的UI事件进行响应,实现用户的交互功能。其中,热点是VR交互的主要方式,由于VR是沉浸式的体验,没有传统的鼠标、键盘和触摸屏等交互方式,只能通过头部的转动来实现与VR场景的互动。在头部转动过程中,视线正前方在VR场景中位置就是热点。热点所在的位置就是用户可以交互的位置,如选中或者点击。
本发明实施例中,提供了一种场景渲染的方法,该方法应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,首先通过VR线程创建纹理,通过VR线程将纹理共享于UI线程,通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式,最后通过VR线程对纹理进行渲染,并得到场景渲染结果。通过上述方式,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的场景渲染的方法第一个可选实施例中,通过VR线程对纹理进行渲染,并得到场景渲染结果,可以包括:
判断纹理是否已进行更新;
若纹理已进行更新,则通过VR线程对已更新的纹理进行渲染,并得到场景渲染结果。
本实施例中,下面将介绍一段时间内如果UI发生变化,但是VR环境没有发生变化的渲染方式。
具体地,假设VR应用程序为一款视频类VR应用程序,用户A通过该视频类VR应用程序观看电影,观看期间想要调整电影的亮度和进度,于是点击菜单,该菜单是一个简单的UI,若在对菜单中的选项进行操作时电影并不会持续播放,也就是VR环境没有变化,仅仅是菜单在根据用户的选择发生变化。那么在这种情况下,只需要对UI待处理元素进行更新并渲染,但是VR环境就不需要重复更新及渲染。
其次,本发明实施例中,在进行渲染的过程中,如果只有UI待处理元素发生了变化,那么仅更新UI待处理元素所对应的纹理进行渲染即可,对VR场景对应的模型不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的VR场景进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的场景渲染的方法第二个可选实施例中,通过VR线程对纹理进行渲染,并得到场景渲染结果,可以包括:
判断纹理是否已进行更新;
若纹理未进行更新,则通过VR线程展示所述场景渲染结果。
本实施例中,下面将介绍一段时间内如果VR环境发生变化,但是UI没有发生变化的渲染方式。
具体地,假设VR应用程序为一款直播类VR应用程序,用户B通过该直播类VR应用程序观看直播,在直播的同时还具有一个UI,该UI用于展示直播方的信息,比如昵称、所属地区或者直播领域等。这个时候,整个直播环境为VR环境,且实时需要更新,但是UI中所显示的内容则不需要进行实时更新,因此,在这种情况下,只需要对VR环境进行更新并渲染,UI待处理元素就不需要重复更新及渲染。
其次,本发明实施例中,在进行渲染的过程中,如果只有VR场景发生了变化,那么仅更新VR场景所对应的模型进行渲染即可,对UI待处理元素所对应的纹理不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的UI待处理元素进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
下面将对本发明中场景渲染的方法进行介绍,请参阅图3,本发明实施例中场景渲染的方法另一个实施例包括:
201、通过UI线程创建纹理;
本实施例中,在VR类的应用程序内包含了UI线程和VR线程,UI线程主要用于构建UI元素,例如绘制列表,VR线程主要用于构建VR场景。首先,场景渲染装置通过UI线程对UI进行渲染,并得到UI待处理元素。
此外,在UI线程创建基于OpenGL的纹理之前,通过UI线程初始化VR线程,这是因为通常情况下是由UI线程接收到用户发起的指令,根据该指令判断是否开启VR类应用程序,如果需要启动VR类应用程序,那么UI线程就会向VR线程发送初始化指令,使得VR线程进行初始化。
202、通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式;
本实施例中,场景渲染装置通过UI线程将UI待处理元素添加至纹理,其中,纹理属于图形学中概念,可以理解为一张二维的位图,具有颜色信息,可以通过纹理保存贴图信息。而纹理则是UI线程中用于保存UI待处理元素在三维图像中的贴图形式。
203、通过UI线程将纹理共享于UI线程;
本实施例中,场景渲染装置通过UI线程将纹理共享给VR线程,其中,若场景渲染装置采用的是android系统,那么应用于该场景渲染装置中的VR应用程序也为android类VR应用程序。VR线程将创建纹理和模型,在android中,纹理可以为surface,模型可以为surfacetexture。
可以理解的是,在VR线程中进行渲染时,除了纹理,还需要有模型,模型可以是一个矩形或曲面或其他三维的模型。在VR环境下进行渲染,就是绘制一个矩形或曲面,并将纹理贴到这个矩形或曲面的表面。
204、通过VR线程对纹理进行渲染,并得到场景渲染结果。
本实施例中,场景渲染装置通过VR获取共享的纹理,然后会对纹理进行渲染,纹理对应于UI,这样也就实现在VR场景中展示UI的效果。
本发明实施例中,提供了一种场景渲染的方法,该方法应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,首先通过UI线程创建纹理,通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式,然后通过UI线程将纹理共享于UI线程,最后通过VR线程对纹理进行渲染,并得到场景渲染结果。通过上述方式,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的场景渲染的方法第一个可选实施例中,通过VR线程对纹理进行渲染,并得到场景渲染结果,可以包括:
判断纹理是否已进行更新;
若纹理已进行更新,则通过VR线程对已更新的纹理进行渲染,并得到场景渲染结果。
本实施例中,下面将介绍一段时间内如果UI发生变化,但是VR环境没有发生变化的渲染方式。
具体地,假设VR应用程序为一款视频类VR应用程序,用户A通过该视频类VR应用程序观看电影,观看期间想要调整电影的亮度和进度,于是点击菜单,该菜单是一个简单的UI,若在对菜单中的选项进行操作时电影并不会持续播放,也就是VR环境没有变化,仅仅是菜单在根据用户的选择发生变化。那么在这种情况下,只需要对UI待处理元素进行更新并渲染,但是VR环境就不需要重复更新及渲染。
其次,本发明实施例中,在进行渲染的过程中,如果只有UI待处理元素发生了变化,那么仅更新UI待处理元素所对应的纹理进行渲染即可,对VR场景对应的模型不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的VR场景进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的场景渲染的方法第二个可选实施例中,通过VR线程对纹理进行渲染,并得到场景渲染结果,可以包括:
判断纹理是否已进行更新;
若纹理未进行更新,则通过VR线程展示所述场景渲染结果。
本实施例中,下面将介绍一段时间内如果VR环境发生变化,但是UI没有发生变化的渲染方式。
具体地,假设VR应用程序为一款直播类VR应用程序,用户B通过该直播类VR应用程序观看直播,在直播的同时还具有一个UI,该UI用于展示直播方的信息,比如昵称、所属地区或者直播领域等。这个时候,整个直播环境为VR环境,且实时需要更新,但是UI中所显示的内容则不需要进行实时更新,因此,在这种情况下,只需要对VR环境进行更新并渲染,UI待处理元素就不需要重复更新及渲染。
其次,本发明实施例中,在进行渲染的过程中,如果只有VR场景发生了变化,那么仅更新VR场景所对应的模型进行渲染即可,对UI待处理元素所对应的纹理不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的UI待处理元素进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
为便于理解,下面可以以一个具体应用场景对本发明中VR环境下展示UI列表的场景进行详细描述,请参阅图4,图4为本发明应用场景中VR环境下的视频列表界面示意图,具体为:
图4中的左边图像和右边图像属于用户双眼所看到的VR视角,其中,用白色方框圈起来的即为UI,这里的UI是一个视频列表,该视频列表是一个普通列表,与常规UI不同的是这些UI是出现在VR的三维场景中。用户戴上VR眼镜(或者VR头盔等装置)后,可通过热点与UI中元素进行选中或点击等交互。
下面对本发明中的场景渲染装置进行详细描述,请参阅图5,本发明实施例中的场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置30包括:
创建模块301,用于通过所述VR线程创建纹理;
共享模块302,用于通过所述VR线程将所述创建模块301创建的所述纹理共享于UI线程;
添加模块303,用于通过所述共享模块302共享的所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
渲染模块304,用于通过所述VR线程对所述添加模块303添加的所述纹理进行渲染,并得到场景渲染结果。
本实施例中,创建模块301通过所述VR线程创建纹理,共享模块302通过所述VR线程将所述创建模块301创建的所述纹理共享于UI线程,添加模块303通过所述共享模块302共享的所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式,渲染模块304通过所述VR线程对所述添加模块303添加的所述纹理进行渲染,并得到场景渲染结果。
本发明实施例中,提供了一种场景渲染装置,该装置应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,首先通过VR线程创建纹理,通过VR线程将纹理共享于UI线程,通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式,最后通过VR线程对纹理进行渲染,并得到场景渲染结果。通过上述方式,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
可选地,在上述图5所对应的实施例的基础上,请参阅图6,本发明实施例提供的场景渲染装置30的另一实施例中,
所述渲染模块304包括:
第一判断单元3041,用于判断所述纹理是否已进行更新;
第一渲染单元3042,若所述第一判断单元3041判断得到所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
其次,本发明实施例中,在进行渲染的过程中,如果只有UI待处理元素发生了变化,那么仅更新UI待处理元素所对应的纹理进行渲染即可,对VR场景对应的模型不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的VR场景进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
可选地,在上述图5所对应的实施例的基础上,请参阅图7,本发明实施例提供的场景渲染装置30的另一实施例中,
所述渲染模块304包括:
第二判断单元3043,用于判断所述纹理是否已进行更新;
第二渲染单元3044,用于若所述第二判断单元3043判断得到所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
其次,本发明实施例中,在进行渲染的过程中,如果只有VR场景发生了变化,那么仅更新VR场景所对应的模型进行渲染即可,对UI待处理元素所对应的纹理不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的UI待处理元素进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
下面对本发明中的场景渲染装置进行详细描述,请参阅图8,本发明实施例中的场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置40包括:
创建模块401,用于通过所述UI线程创建纹理;
添加模块402,用于通过所述UI线程将UI待处理元素添加至所述创建模块401创建的所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
共享模块403,用于通过所述UI线程将所述添加模块402添加的所述纹理共享于UI线程;
渲染模块404,用于通过所述VR线程对所述共享模块403共享的所述纹理进行渲染,并得到场景渲染结果。
本发明实施例中,提供了一种场景渲染装置,该装置应用于应用程序,应用程序包含用户界面UI线程以及虚拟现实VR线程,首先通过UI线程创建纹理,通过UI线程将UI待处理元素添加至纹理,其中,纹理用于表示UI待处理元素在三维图像中的贴图形式,然后通过UI线程将纹理共享于UI线程,最后通过VR线程对纹理进行渲染,并得到场景渲染结果。通过上述方式,UI待处理元素无需单独在VR模式下进行三维渲染,而是直接添加至纹理后分享给VR线程,以使在VR环境下进行一次三维渲染即可,从而降低了性能开销,减少了处理器资源,提升方案的实用性。
可选地,在上述图8所对应的实施例的基础上,请参阅图9,本发明实施例提供的场景渲染装置40的另一实施例中,
所述渲染模块404包括:
第一判断单元4041,用于判断所述纹理是否已进行更新;
第一渲染单元4042,若所述第一判断单元4041判断得到所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
其次,本发明实施例中,在进行渲染的过程中,如果只有UI待处理元素发生了变化,那么仅更新UI待处理元素所对应的纹理进行渲染即可,对VR场景对应的模型不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的VR场景进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
可选地,在上述图8所对应的实施例的基础上,请参阅图10,本发明实施例提供的场景渲染装置40的另一实施例中,
所述渲染模块404包括:
第二判断单元4043,用于判断所述纹理是否已进行更新;
第二渲染单元4044,用于若所述第二判断单元4043判断得到所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
其次,本发明实施例中,在进行渲染的过程中,如果只有VR场景发生了变化,那么仅更新VR场景所对应的模型进行渲染即可,对UI待处理元素所对应的纹理不需要再次进行渲染。通过上述方式,可以有针对性地对纹理进行渲染,不需要重复对未更新的UI待处理元素进行渲染,从而节省了处理器资源,提升了方案的实用性和可行性。
本发明实施例还提供了另一种场景渲染装置,如图11所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(personal digital assistant,PDA)、销售终端(point of sales,POS)、车载电脑等任意终端设备,以场景渲染装置为手机为例:
图11示出的是与本发明实施例提供的场景渲染装置相关的手机的部分结构的框图。参考图11,手机包括:射频(radio frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图11中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图11对手机的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noiseamplifier,LNA)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystem of mobile communication,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图11中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;可选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
手机还包括给各个部件供电的电源590(比如电池),可选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器580还具有以下功能:
通过所述VR线程创建纹理;
通过所述VR线程将所述纹理共享于UI线程;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
可选地,处理器580具体用于执行如下功能:
判断所述纹理是否已进行更新;
若所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
可选地,处理器580具体用于执行如下功能:
判断所述纹理是否已进行更新;
若所述纹理未进行更新,则通过所述VR线程展示所述场景渲染结果。
本发明实施例还提供了另一种场景渲染装置,如图12所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该场景渲染装置可以为包括手机、平板电脑、PDA、POS、车载电脑等任意终端设备,以终端为手机为例:
图12示出的是与本发明实施例提供的场景渲染装置相关的手机的部分结构的框图。参考图12,手机包括:RF电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、WiFi模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图12中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图12对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM、GPRS、CDMA、WCDMA、LTE、电子邮件、SMS等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用LCD、OLED等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图12中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图12示出了WiFi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;可选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),可选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器680还具有以下功能:
通过所述UI线程创建纹理;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述UI线程将所述纹理共享于UI线程;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
可选地,处理器680具体用于执行如下功能:
判断所述纹理是否已进行更新;
若所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
可选地,处理器680具体用于执行如下功能:
判断所述纹理是否已进行更新;
若所述纹理未进行更新,则通过所述VR线程展示所述场景渲染结果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如固态硬盘(solid state sisk,SSD)等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种场景渲染的方法,其特征在于,所述方法应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述方法包括:
通过所述VR线程创建纹理;
通过所述VR线程将所述纹理共享于UI线程;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果,包括:
判断所述纹理是否已进行更新;
若所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
3.根据权利要求1所述的方法,其特征在于,所述通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果,包括:
判断所述纹理是否已进行更新;
若所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
4.一种场景渲染的方法,其特征在于,所述方法应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述方法包括:
通过所述UI线程创建纹理;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述UI线程将所述纹理共享于UI线程;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果。
5.根据权利要求4所述的方法,其特征在于,所述通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果,包括:
判断所述纹理是否已进行更新;
若所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
6.根据权利要求4所述的方法,其特征在于,所述通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果,包括:
判断所述纹理是否已进行更新;
若所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
7.一种场景渲染装置,其特征在于,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置包括:
创建模块,用于通过所述VR线程创建纹理;
共享模块,用于通过所述VR线程将所述创建模块创建的所述纹理共享于UI线程;
添加模块,用于通过所述共享模块共享的所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
渲染模块,用于通过所述VR线程对所述添加模块添加的所述纹理进行渲染,并得到场景渲染结果。
8.根据权利要求7所述的场景渲染装置,其特征在于,所述渲染模块包括:
第一判断单元,用于判断所述纹理是否已进行更新;
第一渲染单元,若所述第一判断单元判断得到所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
9.根据权利要求7所述的场景渲染装置,其特征在于,所述渲染模块包括:
第二判断单元,用于判断所述纹理是否已进行更新;
第二渲染单元,用于若所述第二判断单元判断得到所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
10.一种场景渲染装置,其特征在于,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,所述场景渲染装置包括:
创建模块,用于通过所述UI线程创建纹理;
添加模块,用于通过所述UI线程将UI待处理元素添加至所述创建模块创建的所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
共享模块,用于通过所述UI线程将所述添加模块添加的所述纹理共享于UI线程;
渲染模块,用于通过所述VR线程对所述共享模块共享的所述纹理进行渲染,并得到场景渲染结果。
11.根据权利要求10所述的场景渲染装置,其特征在于,所述渲染模块包括:
第一判断单元,用于判断所述纹理是否已进行更新;
第一渲染单元,若所述第一判断单元判断得到所述纹理已进行更新,则通过所述VR线程对已更新的所述纹理进行渲染,并得到所述场景渲染结果。
12.根据权利要求7所述的场景渲染装置,其特征在于,所述渲染模块包括:
第二判断单元,用于判断所述纹理是否已进行更新;
第二渲染单元,用于若所述第二判断单元判断得到所述纹理未进行更新,则通过所述VR线程继续展示所述场景渲染结果。
13.一种场景渲染装置,其特征在于,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
通过所述VR线程创建纹理;
通过所述VR线程将所述纹理共享于UI线程;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
14.一种场景渲染装置,其特征在于,所述场景渲染装置应用于应用程序,所述应用程序包含用户界面UI线程以及虚拟现实VR线程,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
通过所述UI线程创建纹理;
通过所述UI线程将UI待处理元素添加至所述纹理,其中,所述纹理用于表示所述UI待处理元素在三维图像中的贴图形式;
通过所述UI线程将所述纹理共享于UI线程;
通过所述VR线程对所述纹理进行渲染,并得到场景渲染结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至3或权利要求4至6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711013575.7A CN109725956B (zh) | 2017-10-26 | 2017-10-26 | 一种场景渲染的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711013575.7A CN109725956B (zh) | 2017-10-26 | 2017-10-26 | 一种场景渲染的方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725956A true CN109725956A (zh) | 2019-05-07 |
CN109725956B CN109725956B (zh) | 2022-02-01 |
Family
ID=66290637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711013575.7A Active CN109725956B (zh) | 2017-10-26 | 2017-10-26 | 一种场景渲染的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109725956B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110533755A (zh) * | 2019-08-30 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110908510A (zh) * | 2019-11-08 | 2020-03-24 | 四川大学 | 一种倾斜摄影建模数据在沉浸式显示设备中的应用方法 |
CN110975284A (zh) * | 2019-12-06 | 2020-04-10 | 珠海金山网络游戏科技有限公司 | 一种基于Unity的NGUI资源渲染处理方法及装置 |
CN111242838A (zh) * | 2020-01-09 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 模糊图像渲染方法和装置、存储介质及电子装置 |
CN112749033A (zh) * | 2021-01-22 | 2021-05-04 | 海信视像科技股份有限公司 | 一种显示设备及系统通知调用方法 |
WO2023216621A1 (zh) * | 2022-05-13 | 2023-11-16 | 华为云计算技术有限公司 | 云桌面的图像处理方法、装置、服务器和存储介质 |
CN117095149A (zh) * | 2023-10-18 | 2023-11-21 | 广东图盛超高清创新中心有限公司 | 用于超高清vr现场制作的实时图像处理方法 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122502A (zh) * | 2011-03-15 | 2011-07-13 | 深圳芯邦科技股份有限公司 | 一种三维字体显示方法以及相关装置 |
EP2413287A1 (en) * | 2010-07-29 | 2012-02-01 | LiberoVision AG | Image processing method and device for instant replay |
WO2012062652A1 (en) * | 2010-11-08 | 2012-05-18 | Telefonaktiebolaget L M Ericsson (Publ) | Improved view synthesis |
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
CN102999332A (zh) * | 2011-11-14 | 2013-03-27 | 微软公司 | 用户界面和内容项的计算机生成显示组件的动画 |
CN103677777A (zh) * | 2012-09-19 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 调用应用程序组件的方法及装置 |
CN104424661A (zh) * | 2013-08-23 | 2015-03-18 | 联想(北京)有限公司 | 三维对象显示方法和装置 |
CN105354040A (zh) * | 2015-12-10 | 2016-02-24 | 网易(杭州)网络有限公司 | 双引擎游戏内置工具栏的方法、装置及终端 |
CN105528207A (zh) * | 2015-12-03 | 2016-04-27 | 北京小鸟看看科技有限公司 | 一种虚拟现实系统及其中显示安卓应用图像的方法和装置 |
US20160171640A1 (en) * | 2014-12-13 | 2016-06-16 | Microsoft Technology Licensing, Llc | Frame Invalidation Control with Causality Attribution |
CN105869214A (zh) * | 2015-11-26 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种基于虚拟现实设备的视锥体裁剪方法及装置 |
CN105892681A (zh) * | 2016-04-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 虚拟现实终端及其场景的处理方法和装置 |
CN105892683A (zh) * | 2016-04-29 | 2016-08-24 | 上海乐相科技有限公司 | 一种显示方法及目标设备 |
US20160246613A1 (en) * | 2015-02-19 | 2016-08-25 | Disney Enterprises, Inc. | Guided Authoring of Interactive Content |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
CN106204704A (zh) * | 2016-06-29 | 2016-12-07 | 乐视控股(北京)有限公司 | 虚拟现实中三维场景的渲染方法和装置 |
WO2017003697A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Rendering graphics data on demand |
CN106528303A (zh) * | 2016-10-20 | 2017-03-22 | 武汉斗鱼网络科技有限公司 | 一种基于gpu纹理共享来获取d3d12游戏源图像的方法及系统 |
US20170263046A1 (en) * | 2016-03-08 | 2017-09-14 | Nvidia Corporation | Perceptually-based foveated rendering using a contrast-enhancing filter |
-
2017
- 2017-10-26 CN CN201711013575.7A patent/CN109725956B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2413287A1 (en) * | 2010-07-29 | 2012-02-01 | LiberoVision AG | Image processing method and device for instant replay |
WO2012062652A1 (en) * | 2010-11-08 | 2012-05-18 | Telefonaktiebolaget L M Ericsson (Publ) | Improved view synthesis |
CN102122502A (zh) * | 2011-03-15 | 2011-07-13 | 深圳芯邦科技股份有限公司 | 一种三维字体显示方法以及相关装置 |
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
CN102999332A (zh) * | 2011-11-14 | 2013-03-27 | 微软公司 | 用户界面和内容项的计算机生成显示组件的动画 |
CN103677777A (zh) * | 2012-09-19 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 调用应用程序组件的方法及装置 |
CN104424661A (zh) * | 2013-08-23 | 2015-03-18 | 联想(北京)有限公司 | 三维对象显示方法和装置 |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
US20160171640A1 (en) * | 2014-12-13 | 2016-06-16 | Microsoft Technology Licensing, Llc | Frame Invalidation Control with Causality Attribution |
US20160246613A1 (en) * | 2015-02-19 | 2016-08-25 | Disney Enterprises, Inc. | Guided Authoring of Interactive Content |
US20170004647A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Rendering graphics data on demand |
WO2017003697A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Rendering graphics data on demand |
CN105869214A (zh) * | 2015-11-26 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种基于虚拟现实设备的视锥体裁剪方法及装置 |
US20170154460A1 (en) * | 2015-11-26 | 2017-06-01 | Le Holdings (Beijing) Co., Ltd. | Viewing frustum culling method and device based on virtual reality equipment |
CN105528207A (zh) * | 2015-12-03 | 2016-04-27 | 北京小鸟看看科技有限公司 | 一种虚拟现实系统及其中显示安卓应用图像的方法和装置 |
CN105354040A (zh) * | 2015-12-10 | 2016-02-24 | 网易(杭州)网络有限公司 | 双引擎游戏内置工具栏的方法、装置及终端 |
US20170263046A1 (en) * | 2016-03-08 | 2017-09-14 | Nvidia Corporation | Perceptually-based foveated rendering using a contrast-enhancing filter |
CN105892683A (zh) * | 2016-04-29 | 2016-08-24 | 上海乐相科技有限公司 | 一种显示方法及目标设备 |
CN105892681A (zh) * | 2016-04-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 虚拟现实终端及其场景的处理方法和装置 |
CN106204704A (zh) * | 2016-06-29 | 2016-12-07 | 乐视控股(北京)有限公司 | 虚拟现实中三维场景的渲染方法和装置 |
CN106528303A (zh) * | 2016-10-20 | 2017-03-22 | 武汉斗鱼网络科技有限公司 | 一种基于gpu纹理共享来获取d3d12游戏源图像的方法及系统 |
Non-Patent Citations (1)
Title |
---|
王灿运 等: "一种虚拟现实应用程序跨平台方法的研究", 《智能计算机与应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110533755A (zh) * | 2019-08-30 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110533755B (zh) * | 2019-08-30 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110908510A (zh) * | 2019-11-08 | 2020-03-24 | 四川大学 | 一种倾斜摄影建模数据在沉浸式显示设备中的应用方法 |
CN110908510B (zh) * | 2019-11-08 | 2022-09-02 | 四川大学 | 一种倾斜摄影建模数据在沉浸式显示设备中的应用方法 |
CN110975284A (zh) * | 2019-12-06 | 2020-04-10 | 珠海金山网络游戏科技有限公司 | 一种基于Unity的NGUI资源渲染处理方法及装置 |
CN111242838A (zh) * | 2020-01-09 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 模糊图像渲染方法和装置、存储介质及电子装置 |
CN112749033A (zh) * | 2021-01-22 | 2021-05-04 | 海信视像科技股份有限公司 | 一种显示设备及系统通知调用方法 |
CN112749033B (zh) * | 2021-01-22 | 2023-02-17 | 海信视像科技股份有限公司 | 一种显示设备及系统通知调用方法 |
WO2023216621A1 (zh) * | 2022-05-13 | 2023-11-16 | 华为云计算技术有限公司 | 云桌面的图像处理方法、装置、服务器和存储介质 |
CN117095149A (zh) * | 2023-10-18 | 2023-11-21 | 广东图盛超高清创新中心有限公司 | 用于超高清vr现场制作的实时图像处理方法 |
CN117095149B (zh) * | 2023-10-18 | 2024-02-02 | 广东图盛超高清创新中心有限公司 | 用于超高清vr现场制作的实时图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109725956B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11120616B2 (en) | Method for implementing virtual scene conversion and related apparatus | |
JP6967043B2 (ja) | 3次元コンテンツ内の場所に基づく仮想要素モダリティ | |
CN109725956A (zh) | 一种场景渲染的方法以及相关装置 | |
US11043031B2 (en) | Content display property management | |
US10567449B2 (en) | Apparatuses, methods and systems for sharing virtual elements | |
JP6316387B2 (ja) | 広範囲同時遠隔ディジタル提示世界 | |
JP2020074058A (ja) | 2d/3d混在コンテンツの検出及び表示 | |
AU2016210884A1 (en) | Method and system for providing virtual display of a physical environment | |
CN104915979A (zh) | 跨移动平台实现沉浸式虚拟现实的系统 | |
CN104035760A (zh) | 跨移动平台实现沉浸式虚拟现实的系统 | |
CN111311757B (zh) | 一种场景合成方法、装置、存储介质及移动终端 | |
US10984607B1 (en) | Displaying 3D content shared from other devices | |
US11740852B2 (en) | Eyewear including multi-user, shared interactive experiences | |
CN114514493A (zh) | 增强设备 | |
CN112116716A (zh) | 基于检测到的对象来定位的虚拟内容 | |
CN111445563B (zh) | 一种图像生成的方法以及相关装置 | |
CN110335200A (zh) | 一种虚拟现实反畸变方法、装置以及相关设备 | |
CN112206519B (zh) | 实现游戏场景环境变化的方法、装置、存储介质及计算机设备 | |
US20230244354A1 (en) | 3d models for displayed 2d elements | |
WO2023207174A1 (zh) | 显示方法、装置、显示设备、头戴式设备及存储介质 | |
CN116704107B (zh) | 一种图像渲染方法和相关装置 | |
US20240161390A1 (en) | Method, apparatus, electronic device and storage medium for control based on extended reality | |
US20200379554A1 (en) | Controlling a user selection queue | |
CN116310020A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |