本发明实施例涉及虚拟现实技术领域,尤其涉及一种三维场景模型渲染方法和装置。
背景技术:
虚拟现实技术是一种计算机仿真系统,在该系统中可以创建和体验虚拟世界。本质上,该系统利用计算机生成一种模拟环境,该模拟环境是一种多源信息融合的交互式的三维动态视景和对实体行为的系统仿真,可以达到沉浸式体验。
虚拟现实涉及的多源信息包括实时三维计算机图形技术、广角(宽视野)立体显示技术、对观察者头、眼和手的跟踪技术,以及触觉/力觉反馈、立体声、网络传输、语音输入输出技术等。除此之外,还涉及双目立体视觉,双目立体视觉起了较大的作用。在双目立体视觉技术中,两只眼睛看到的不同图像是分别产生的,分别显示在两个不同的显示器上。另外,也有虚拟现实系统采用单个显示器,但带上特殊的眼镜后,一只眼睛只能看到奇数帧图像,另一只眼睛只能看到偶数帧图像,由于奇、偶帧之间不同即存在视差,从而产生了立体感。
上述虚拟现实技术的实现过程中,需要对所有的对象进行三维场景渲染,在实现本发明的过程中,发明人发现,在渲染时,对三维场景模型中所有对象的所有像素点进行,像素点数量较多,导致渲染处理的次数也就越多,从而导致渲染的效率较低。
技术实现要素:
本发明实施例的目的在于提供一种三维场景模型渲染方法和装置,用于解决现有技术中在渲染时,对三维场景模型中所有对象的所有像素点进行导致的渲染效率较低的缺陷。
本发明实施例采用的技术方案如下:
本发明实施例提供一种三维场景模型渲染方法,其包括:
获取预先设定的在渲染处理时所涉及的采样像素点;
根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
在本发明的一具体实施例中,获取预先设定的在渲染处理时所涉及的采样像素点之前包括:获取重构后的所述三维场景模型。
获取预先设定的在渲染处理时所涉及的采样像素点包括:从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点。
在本发明的一具体实施例中,根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理包括:根据预先设定的在渲染处理时所涉及的采样像素点在顶点着色器中对三维场景模型进行渲染处理。
在本发明的一具体实施例中,获取根据选定的顶点数据预先设定的在渲染处理时所涉及的采样像素点之前包括:获取在顶点缓冲区对象中存储的选定的顶点数据,以获取根据选定的顶点数据预先设定的在渲染处理时所涉及的采样像素点。
在本发明的一具体实施例中,根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理包括:
对预先设定的在渲染处理时所涉及的采样像素点进行插值处理以对三维场景模型进行渲染处理。
本发明提供一种三维场景模型渲染装置,包括:
获取单元,用于获取预先设定的在渲染处理时所涉及的采样像素点;
渲染单元,用于根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
可选地,在本发明的任意实施例中,所述获取单元进一步用于获取重构后的所述三维场景模型;以及从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点。
可选地,在本发明的任意实施例中,所述渲染单元进一步用于根据预先设定的在渲染处理时所涉及的采样像素点在顶点着色器中对三维场景模型进行渲染处理。
可选地,在本发明的任意实施例中,所述获取单元进一步用于获取在顶点缓冲区对象中存储的选定的顶点数据,以获取根据选定的顶点数据预先设定的在渲染处理时所涉及的采样像素点。
可选地,在本发明的任意实施例中,所述渲染单元进一步用于对预先设定的在渲染处理时所涉及的采样像素点进行插值处理以对三维场景模型进行渲染处理。
由以上技术方案可见,本发明实施例中,通过获取预先设定的在渲染处理时所涉及的采样像素点;以及根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。因此,由于只是对预先设定的在渲染处理时所涉及的采样像素点进行,而非对三维场景模型中所有的像素点进行,因此,减少了渲染的数据量,从而减少了渲染的处理次数,加快了渲染速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一三维场景模型渲染流程示意图;
图2为本发明实施例二三维场景模型渲染流程示意图;
图3为本发明实施例三三维场景模型渲染装置结构示意图;
图4为本发明实施例四虚拟现实终端结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合本申请附图进一步说明本申请具体实现。
图1为本发明实施例一三维场景模型渲染流程示意图;如图1所示,本发明实施例中的技术方案具体包括:
S101、获取预先设定的在渲染处理时所涉及的采样像素点;
本实施例或其他任一实施例中,步骤S101中可以由图形处理接口(Graphic Processing Unit,简称GPU)获取预先设定的在渲染处理时所涉及的采样像素点,可以具体图形处理接口GPU获取根据选定的顶点数据预先设定的在渲染处理时所涉及的采样像素点。
本实施例中,顶点数据可是三维场景模型中各对象的轮廓相关在世界坐标系XYZ下的坐标,以这些坐标为参考,设定一定的采样步长,从而可以确定出采样像素点。
需要说明的是,在本实施例或其他实施例中,顶点数据还可以包括顶点在二维坐标系下的坐标/顶点法线/顶点颜色等信息,详细补在赘述。
本实施例或其他任一实施例中,由顶点数据预先存储在内存中,通过中央处理器将预存在内存中的顶点数据发送至图形处理接口GPU。
本实施例或其他实施例中,步骤S101中获取预先设定的在渲染处理时所涉及的采样像素点时可以从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点。
本实施例中,由于可以从重构的三维场景模型中获取包括具有关键特征的图像素点,比如这些像素点可以是对播放效果具有较大影响的特征点、特正面特征区域,比如三维影院场景模型中,灯光、幕布等对象的特征点、特正面、特征区域等,丢弃了无特征信息的像素点,降低了需要进行渲染处理的数据量。
本实施例中,可以3DMAX、Maya、AutoCAD、UG等常用软件来生成重构的三维场景模型,详细不再赘述。
S102、根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
步骤S102中,在对采样像素点渲染处理时,使用图形处理器GPU中的着色器(Shader)对三维场景模型进行渲染处理。比如在OpenGl处理中,Shader分为顶点着色器(vertex shader)和片段着色器(fragmentShader)两种。
其中,顶点着色器主要负责顶点数据的几何关系等的运算,顶点着色器渲染顶点、法线等的数据,操作的数据量比较少,渲染效率比较高;本发明中,除了要使用顶点着色器渲染三维场景模型中的顶点数据,还包括对根据顶点数据确定的采集像素点进行渲染,具体地,比如通过对这些像素点进行差值处理,从而完成三维场景模型的渲染。
本实施例中,通过图形处理接口中的顶点着色器获取预先设定的在渲染处理时所涉及的采样像素点;以及并根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。因此,由于在顶点着色器中对预先设定的在渲染处理时所涉及的采样像素点进行,而非对三维场景模型中所有的像素点进行,因此,减少了渲染的数据量,从而减少了渲染的处理次数,加快了渲染速度。
图2为本发明实施例二三维场景模型渲染流程示意图;如图2所示,本发明实施例中的技术方案具体包括:
S201、从顶点缓冲区对象中获取预先设定的在渲染处理时所涉及的采样像素点;
本实施例中,步骤S201类似上述实施例中的步骤S101,由图形处理接口(Graphic Processing Unit,简称GPU)获取预先设定的在渲染处理时所涉及的采样像素点等,详细不再赘述。可以参照上述实施例一中的顶点数据确定出采样像素点。
本实施例或其他任一实施例中,由于顶点缓冲区对象(Vertex Buffer Objects,简称VBO)中为存储顶点数据的容器,用于存储顶点坐标、顶点向量、顶点法线、顶点颜色等数据信息。顶点数据预先存储在该顶点缓冲区对象VBO中。通过顶点缓冲区对象VBO可以把顶点数据,直接上传图形处理器(Graphics Processing Unit,简称GPU)的显存中,相对于从中央处理器(Central Processing Unit,简称CPU)把顶点数据发送到显卡来说,该顶点缓冲区对象VBO可以快速地一次性发送较多的顶点数据到显存中,当顶点数据发送到显卡的内存中时,在获取顶点数据时的速率较快,从而进一步加快了获取根据顶点数据预先设定的在渲染处理时所涉及的采样像素点的速率。
可选地,本实施例中,步骤S201中获取预先设定的在渲染处理时所涉及的采样像素点时可以从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点,详细可参见上述实施例一。
S202、根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
步骤S202中,在对采样像素点渲染处理时,使用图形处理器GPU中的着色器(Shader)对三维场景模型进行渲染处理。比如在OpenGl处理中,Shader分为顶点着色器(vertex shader)和片段着色器(fragmentShader)两种。
其中,顶点着色器主要负责顶点数据的几何关系等的运算,顶点着色器渲染顶点、法线等的数据,操作的数据量比较少,渲染效率比较高;顶点着色器用于对顶点数据进行渲染,而由片段着色器对根据顶点数据确定的采集像素点进行渲染,处理光、阴影、遮挡、环境等对对象表面的影响,从而完成三维场景模型的渲染。
本实施例中,通过图形处理接口中的片源着色器从顶点缓冲区对象VBO获取预先设定的在渲染处理时所涉及的采样像素点;以及并根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。因此,由于片源着色器直接从顶点缓冲区对象VBO中获取并对预先设定的在渲染处理时所涉及的采样像素点进行渲染,而非对三维场景模型中所有的像素点进行,因此,减少了渲染的数据量,从而减少了渲染的处理次数,加快了渲染速度。
图3为本发明实施例三三维场景模型渲染装置结构示意图;如图3所示,所述装置具体包括:获取单元301,用于获取预先设定的在渲染处理时所涉及的采样像素点;
渲染单元302,用于根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
可选地,在本实施例或其他任一实施例中,所述获取单元301进一步用于获取重构后的所述三维场景模型;以及从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点。
可选地,在本实施例或其他任一实施例中,所述渲染单元302进一步用于根据预先设定的在渲染处理时所涉及的采样像素点在顶点着色器中对三维场景模型进行渲染处理。
可选地,在本实施例或其他任一实施例中,所述获取单元301进一步用于获取在顶点缓冲区对象中存储的选定的顶点数据。
可选地,在本实施例或其他任一实施例中,所述渲染单元302进一步用于对预先设定的在渲染处理时所涉及的采样像素点进行插值处理以对三维场景模型进行渲染处理。
本实施例中,有关所述获取单元301、以及所述渲染单元302进一步实现的功能,详细可参见上述图1-2的记载,详细不再赘述。
本实施例中,通过获取单元获取预先设定的在渲染处理时所涉及的采样像素点;以及由渲染单元根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。因此,由于只是对预先设定的在渲染处理时所涉及的采样像素点进行,而非对三维场景模型中所有的像素点进行,因此,减少了渲染的数据量,从而减少了渲染的处理次数,加快了渲染速度。
图4为本发明实施例四虚拟现实终端结构示意图;如图4所示,虚拟系现实终端400包括:处理器401,所述处理器用于获取预先设定的在渲染处理时所涉及的采样像素点;以及根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。
可选地,在本实施例或其他任一实施例中,所述处理器401进一步用于获取重构后的所述三维场景模型;以及从重构的所述三维场景模型中获取预先设定的在渲染处理时所涉及的采样像素点。
可选地,在本实施例或其他任一实施例中,所述处理器401进一步用于根据预先设定的在渲染处理时所涉及的采样像素点在顶点着色器中对三维场景模型进行渲染处理。
可选地,在本实施例或其他任一实施例中,所述处理器401进一步用于获取在顶点缓冲区对象中存储的选定的顶点数据。
可选地,在本实施例或其他任一实施例中,所述处理器401进一步用于对预先设定的在渲染处理时所涉及的采样像素点进行插值处理以对三维场景模型进行渲染处理。
本实施例中,有关所述处理器401进一步实现的功能,详细可参见上述图1-2的记载,详细不再赘述。
本发明实施例中还提供一种存储装置,该存储装置上存储有可执行上述图1-图2任意方法实施例的指令,详细不再赘述。
本实施例中,通过处理器获取预先设定的在渲染处理时所涉及的采样像素点;以及由处理器根据预先设定的在渲染处理时所涉及的采样像素点对三维场景模型进行渲染处理。因此,由于只是对预先设定的在渲染处理时所涉及的采样像素点进行,而非对三维场景模型中所有的像素点进行,因此,减少了渲染的数据量,从而减少了渲染的处理次数,加快了渲染速度。
本申请的实施例所提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。