本发明实施例涉及虚拟现实技术领域,尤其涉及一种虚拟现实中三维场景的渲染方法和装置。
背景技术:
虚拟现实技术是一种计算机仿真系统,在该系统中可以创建和体验虚拟世界。本质上,该系统利用计算机生成一种模拟环境,该模拟环境是一种多源信息融合的交互式的三维动态视景和对实体行为的系统仿真,可以达到沉浸式体验。
虚拟现实涉及的多源信息包括实时三维计算机图形技术、广角(宽视野)立体显示技术、对观察者头、眼和手的跟踪技术,以及触觉/力觉反馈、立体声、网络传输、语音输入输出技术等。除此之外,还涉及双目立体视觉,双目立体视觉起了较大的作用。在双目立体视觉技术中,两只眼睛看到的不同图像是分别产生的,分别显示在两个不同的显示器上。另外,也有虚拟现实系统采用单个显示器,但带上特殊的眼镜后,一只眼睛只能看到奇数帧图像,另一只眼睛只能看到偶数帧图像,由于奇、偶帧之间不同即存在视差,从而产生了立体感。
在实现本发明的过程,发明人发现,现有技术中存在如下技术问题:
由于虚拟现实终端中进行内容播放时,需要产生大量的三维场景模型数据,后续根据大量的三维场景模型数据对三维场景模型进行渲染,尤其当三维场景模型中包括众多的渲染对象时比如影院模式下的幕布、灯光、桌椅等,导致数据读取比较慢,会占用大量的CPU/GPU的时间,从而导致渲染的效率低下。
技术实现要素:
本发明实施例的目的在于提供一种虚拟现实中三维场景的渲染方法和装置,用以解决现有技术中在虚拟现实终端中进行内容播放时,读取和渲染大量的三维场景模型数据,占用大量的CPU/GPU的时间,从而导致渲染的效率低下的缺陷。
本发明实施例采用的技术方案如下:
本发明实施例提供一种虚拟现实中三维场景的渲染方法,其包括:
确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染包括:
将转换成的二维场景模型加载到三维场景的球形成像空间或者立方体成像空间或者柱状成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,将所述三维场景中渲染对象的三维场景模型数据转换成二维模型数据包括:
将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;
将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染包括:
将转换成的各渲染对象对应的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,将所述三维场景中渲染对象的三维场景模型数据转换成二维模型数据包括:
将所述三维场景所有渲染对象的三维场景模型批量进行转换生成三维场景中所有渲染对象对应的二维场景模型;
将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染包括:
将转换成的所有渲染对象对应的整体二维模型数据加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染包括:
根据转换成的二维场景模型生成二维图片,将所述二维图片加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本发明实施例提供一种虚拟现实中三维场景的渲染装置,其包括:
转换单元,用于确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
加载单元,用于将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,所述加载单元进一步用于将转换成的二维场景模型加载到三维场景的球形成像空间或者立方体成像空间或者柱状成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,所述转换单元进一步用于将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;
所述加载单元进一步用于将转换成的各渲染对象对应的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,所述转换单元进一步用于将所述三维场景所有渲染对象的三维场景模型批量进行转换生成三维场景中所有渲染对象对应的二维场景模型;
所述加载单元进一步用于将转换成的所有渲染对象对应的整体二维模型数据加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本发明的任一实施例中,所述加载单元进一步用于根据转换成的二维场景模型生成二维图片,将所述二维图片加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本发明实施例的技术方案具有以下优点:
通过确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;之后处理器将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一虚拟现实中三维场景的渲染方法流程示意图;
图2为本发明实施例二虚拟现实中三维场景的渲染方法流程示意图;
图3为本发明实施例三虚拟现实中三维场景的渲染方法流程示意图;
图4为本发明实施例四虚拟现实中三维场景的渲染装置结构示意图;
图5为本发明实施例五虚拟现实中三维场景的渲染装置结构示意图;
图6为本发明实施例六虚拟现实中三维场景的渲染装置结构示意图;
图7为本发明实施例七虚拟现实终端结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一虚拟现实中三维场景的渲染方法流程示意图;如图1所示,本实施例中的技术方案具体可以包括:
S101、确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
可选地,本实施例或其他实施例中,而三维场景模型可以利用特定的软件来生成,比如3DMAX,SoftImage,Maya,UG以及AutoCAD等等。通过对三维场景模型数据进行一系列几何操作,如平移、旋转、拉伸以及布尔运算等来构建三维虚拟场景模型。
可选地,本实施例或其他实施例中,上述三维场景模型数据可以包括网格数据、纹理数据等。本实施例中,在三维场景模型中的对象由众多的网格组成,而网格通常由三角形、四边形或者其它的简单凸多边形组成,以简化后续渲染过程。而众多各多边形由众多点云组成,因此,网络数据包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)等。可选地,本实施例中,纹理数据包括三维场景模型中对象表面呈现凹凸不平的沟纹,以及对象光滑表面上的彩色图案,在渲染时,通过把纹理特征映射对象表面上,以增加对象的真实感。比如一个人的三维模型如果带有皮肤与服装的纹理那么看起来就比简单的单色模型或者是线框模型更加真实。
可选地,本实施例或其他实施例中,在模型转化的时候,先进行视点位置的标定,再通过模型平移、模型旋转、模型缩放从而将三维场景模型变换为二维场景模型。
其中,在OpenGL中这种具体的图形程序接口中,通过OpenGL中具体的函数如GLTranslate{}来实现,沿着世界坐标系中的x轴、y轴、z轴移动当前绘图坐标系,也即是按照相同的量值平移三维场景模型中的对象。其中模型旋转通过OpenGL中的具体函数如GLRotate{}来制定模型旋转的角度,以世界坐标系下的原点(0,0,0)到点(x,y,z)的连线为轴线逆时针旋转绘图坐标系。其中模型缩放通过OpenGL中的具体函数如GLScale{}来实现,对三维场景模型中的对象沿着世界坐标系中x、y、z轴分别进行放大缩小。
S102、将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,本实施例或其他任意实施例中,可以利用图形程序接口中的投影变换功能将上述二维场景模型加载到三维场景模型的成像空间上,比如利用OpenGL中的投影变换(Projection Transformation)处理。
在具体投影变换时,可以选择透视投影(Perspective Projection),本实施例或其他任意实施例中,具体地,利用OpenGL中的透视投影函数GLFrustum(),通过创建一个透视投影矩阵形成一个视景体,并且用这个透视投影矩阵乘以二维场景模型中各个顶点坐标组成的矩阵,从而将而二维模型加载到成像空间上。或者,在本实施例或其他实施例中,利用OpenGL中的对称透视函数GLuPerspective()创建一个对称透视投影矩阵形成一对称透视视景体,并且用这个透视投影矩阵乘以二维场景模型中各个顶点坐标组成的矩阵,从而将而二维模型加载到成像空间上。
本实施例中,通过确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;之后将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图2为本发明实施例二虚拟现实中三维场景的渲染方法流程示意图;如图2所示,本实施例中的技术方案具体可以包括:
S201、确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;
本实施例中,在转换时,对三维场景模型二维场景模型时,逐个对场景中各渲染对象的三维场景模型进行转换,以根据实际播放效果的要求。具体地,比如如果是影院场景,灯光、幕布可能对播放效果影响较大,需要较高的渲染精度,因此,在三维场景模型到二维场景模型转换时,可能对三维场景模型中的所有数据都需要参与转换,而对于其他的比如凳子等,可能只选择三维模型中的部分数据参与转换即可。
S202、将转换成的各渲染对象对应的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例或其他任意实施例中,在具体投影变换时,可以选择正视投影(Orthographic Projection),本实施例或其他任意实施例中,具体地,通过OpenGL中的函数GLOrtho()建正射投影矩阵以形成一个平行视景体,利用该正射投影矩阵乘以二维场景模型中各个顶点坐标组成的矩阵,从而将而二维模型加载到成像空间上。
可替代地,本实施例或其他任意实施例中,通过OpenGL中的函数GLuOrtho2D()创建一个对称透视投影矩阵形成一对称透视视景体,并且用这个透视投影矩阵乘以二维场景模型中各个顶点坐标组成的矩阵,从而将而二维模型加载到成像空间上。
本实施例中,根据实际播放效果的要求,确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;之后通过投影变换方式从而将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图3为本发明实施例三虚拟现实中三维场景的渲染方法流程示意图;如图3所示,本实施例中的技术方案具体可以包括:
S301、确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景所有渲染对象的三维场景模型批量进行转换生成三维场景中所有渲染对象对应的二维场景模型;
本实施例中,与上述图2实施例不同的是,忽略各对象对播放效果的影响,批量将三维场景模型转换成二维场景模型。
S302、将转换成的所有渲染对象对应的整体二维模型数据加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,可以参照上述实施例一或二中加载的方式,详细不在赘述。
本实施例中,忽略实际播放效果的要求,确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景中各渲染对象的三维场景模型批量进行转换生成各渲染对象对应的二维场景模型;之后通过投影变换方式从而将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,从而避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图4为本发明实施例四虚拟现实中三维场景的渲染装置结构示意图;如图4所示,其包括:
第一转换单元401,用于确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
第一加载单元402,用于将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,所述第一加载单元402进一步用于将转换成的二维场景模型加载到三维场景的球形成像空间或者立方体成像空间或者柱状成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,通过第一转换单元确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;之后第一加载单元将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图5为本发明实施例五虚拟现实中三维场景的渲染装置结构示意图;如图5所示,其包括:
第二转换单元501,用于确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
第二加载单元502,用于将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,所述第二转换单元进一步用于将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;
所述第二加载单元进一步用于将转换成的各渲染对象对应的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,根据实际播放效果的要求,第二转换单元确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;之后第二加载单元通过投影变换方式从而将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图6为本发明实施例六虚拟现实中三维场景的渲染装置结构示意图;如图6所示,其包括:
第三转换单元601,用于确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;
第三加载单元602,用于将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,所述第三转换单元进一步用于将所述三维场景所有渲染对象的三维场景模型批量进行转换生成三维场景中所有渲染对象对应的二维场景模型;
所述第三加载单元进一步用于将转换成的所有渲染对象对应的整体二维模型数据加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,忽略实际播放效果的要求,第三转换单元确定三维场景中渲染对象的三维场景模型数据,并将所述三维场景中各渲染对象的三维场景模型批量进行转换生成各渲染对象对应的二维场景模型;之后第三加载单元通过投影变换方式从而将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,从而避免了大量CPU/GPU时间的耗费,提高了渲染效率。
图7为本发明实施例七虚拟现实终端结构示意图;如图7所示,虚拟现实终端700包括:处理器701,所述处理器701用于确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;以及用于将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本实施例或其他任一实施例中,所述处理器701进一步用于将转换成的二维场景模型加载到三维场景的球形成像空间或者立方体成像空间或者柱状成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本实施例或其他任一实施例中,所述处理器701进一步用于将所述三维场景中各渲染对象的三维场景模型逐一进行转换生成各渲染对象对应的二维场景模型;
所述处理器701进一步用于将转换成的各渲染对象对应的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本实施例或其他任一实施例中,所述处理器701进一步用于将所述三维场景所有渲染对象的三维场景模型批量进行转换生成三维场景中所有渲染对象对应的二维场景模型;
所述处理器701进一步用于将转换成的所有渲染对象对应的整体二维模型数据加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
可选地,在本实施例或其他任一实施例中,所述处理器701进一步用于根据转换成的二维场景模型生成二维图片,将所述二维图片加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。
本实施例中,通过处理器确定三维场景中渲染对象的三维场景模型,并将所述三维场景模型转换成二维场景模型;之后处理器将转换成的二维场景模型加载到三维场景的成像空间上,以完成虚拟现实中场景的渲染。与现有技术相比,在渲染时使用的二维场景模型,相对于现有技术中使用三维场景模型来说,处理的数据量较少,避免了大量CPU/GPU时间的耗费,提高了渲染效率。
本发明实施例还提供了一种存储装置,该存储装置存储可实现上述图1-图3中任一实施例方法的指令,详细不再赘述。
本发明上述实施例中,成像空间可以球形成像空间或者立方体成像空间或者柱状成像空间。
本申请的实施例所提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。