模型渲染方法及装置与流程

文档序号:20922565 发布日期:2020-05-29 14:20
模型渲染方法及装置与流程

本发明涉及虚拟现实技术领域,尤其涉及一种模型渲染方法及装置。



背景技术:

虚拟现实是指采用计算机技术为核心的高科技手段生成逼真的视觉、听觉、触觉等一体化的虚拟环境。用户还可以通过显示终端,实现与虚拟现实中的物体交互。为了实现虚拟现实,需要对虚拟现实场景进行数字化描述,建立虚拟现实场景的三维模型,然后进一步对三维模型进行渲染。但是,当需要渲染的三维模型比较多时,所需的时间以及系统资源也会比较多。



技术实现要素:

本发明的主要目的在于提供一种,旨在解决现有技术中对大量三维模型进行渲染需要耗费大量时间以及系统资源的技术问题。

为实现上述目的,本发明提供一种模型渲染方法,所述方法包括:

接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;

通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。

可选的,所述通过光线检测,从所述待检测模型中确定待渲染模型包括:

控制摄像机向所述虚拟现实场景所处的屏幕上的每个像素点发射一条光线,将所述待检测模型中被光线照射到的模型作为待渲染模型。

可选的,所述将所述待检测模型中被光线照射到的模型作为待渲染模型包括:

检测所述待检测模型中的各个模型是否与至少一条光线有交点;

将所述待检测模型中与至少一条光线有交点的模型作为待渲染模型。

可选的,所述检测所述待检测模型中的各个模型是否与至少一条光线有交点包括:

检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点;

将至少一个面与至少一条光线有交点的模型作为与至少一条光线有交点的模型。

可选的,所述检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点包括:

联立任一光线的参数方程与任一面的参数方程,其中,任一光线的参数方程为:p=p0+ut,任一面的参数方程为n·(a-p)=0,得到 当t大于等于零时,所述面与所述光线有交点;其中,p0为光线的起始坐标,u为光线的方向向量,t值的不同可以取到光线的不同的点,n为面的法向量,p为法向量与面的焦点的坐标,a为面内的另一个点的坐标。

此外,为实现上述目的,本发明还提供一种模型渲染装置,所述装置包括:

标记模块,用于接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;

渲染模块,用于通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。

可选的,所述渲染模块,用于:

控制摄像机向所述虚拟现实场景所处的屏幕上的每个像素点发射一条光线,将所述待检测模型中被光线照射到的模型作为待渲染模型。

可选的,所述渲染模块,用于:

检测所述待检测模型中的各个模型是否与至少一条光线有交点;

将所述待检测模型中与至少一条光线有交点的模型作为待渲染模型。

可选的,所述渲染模块,用于:

检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点;

将至少一个面与至少一条光线有交点的模型作为与至少一条光线有交点的模型。

可选的,所述渲染模块,用于:

联立任一光线的参数方程与任一面的参数方程,其中,任一光线的参数方程为:p=p0+ut,任一面的参数方程为n·(a-p)=0,得到 当t大于等于零时,所述面与所述光线有交点;其中,p0为光线的起始坐标,u为光线的方向向量,t值的不同可以取到光线的不同的点,n为面的法向量,p为法向量与面的焦点的坐标,a为面内的另一个点的坐标。

本发明中,接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。通过本发明,减少了不必要的渲染,既不会影响显示效果,也提高了渲染效率,节省了系统资源。

附图说明

图1为本发明模型渲染方法一实施例的流程示意图;

图2为基于现有技术对一虚拟现实场景进行渲染的效果示意图;

图3为基于本发明模型渲染方法对一虚拟现实场景进行渲染的效果示意图;

图4为基于现有技术对一虚拟现实场景进行渲染的场景示意图;

图5为基于本发明模型渲染方法对一虚拟现实场景进行渲染的场景示意图;

图6为本发明模型渲染装置一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明模型渲染方法一实施例的流程示意图。在一实施例中,模型渲染方法包括:

步骤s10,接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;

本实施例中,一个虚拟现实场景一般包括多个三维模型,其中有些比较大的三维模型,不会被其他物体遮挡,因此默认这种类型的三维模型是需要被渲染的。而另一些三维模型由于尺寸比较小,导致其有可能会被其他物体遮挡,这种情况下,即使对被遮挡的三维模型进行渲染,也无法被人眼看到,因此,对被遮挡的三维模型进行渲染是没有必要的。因此,需要通过人工标记的方式将不是遮挡物的三维模型标记出来,进行进一步的判断。即通过人工标记操作,对不是遮挡物的三维模型进行标记,将被标记的三维模型作为待检测模型。

步骤s20,通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。

本实施例中,通过光线检测,检测待检测模型包括的各个模型是否为可见模型,若一个或多个模型为可见模型,则将这一个或多个模型作为待渲染模型,并对待渲染模型进行渲染。当然也需要对步骤s10中未标记的不会被其他物体遮挡的大型三维模型进行渲染,这种比较大的模型未被标记,则默认为是需要渲染的。

进一步地,一实施例中,步骤s20包括:

控制摄像机向所述虚拟现实场景所处的屏幕上的每个像素点发射一条光线,将所述待检测模型中被光线照射到的模型作为待渲染模型。

本实施例中,虚拟现实场景显示在屏幕上,若屏幕有m个像素点,则控制摄像机向每个像素点发射一条光线,即总计发射出m条光线。假设待检测模型包括15个三维模型,若检测到其中10个三维模型均至少被一条光线照射到,则将这10个三维模型作为待渲染模型。

进一步地,一实施例中,将所述待检测模型中被光线照射到的模型作为待渲染模型包括:

检测所述待检测模型中的各个模型是否与至少一条光线有交点;将所述待检测模型中与至少一条光线有交点的模型作为待渲染模型。

本实施例中,通过检测各个模型是否与至少一条光线有交点来确定各个模型是否被至少一条光线照射到。若某模型与至少一条光线有交点,则确定该模型被至少一条光线照射到,则认为该模型为待渲染模型。

进一步地,一实施例中,所述检测所述待检测模型中的各个模型是否与至少一条光线有交点包括:

检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点;将至少一个面与至少一条光线有交点的模型作为与至少一条光线有交点的模型。

本实施例中,由于每个模型是三维模型,则每个模型有多个面,则对一个模型来说,需要检测该模型的每个面是否与至少一条光线有交点,若该模型包括的面中至少一个面与至少一条光线有交点,则确定该模型与至少一条光线有交点。例如,待检测模型包括15个三维模型,分别为三维模型1至三维模型15,其中,三维模型1包括5个面,分别为面1至面5,则分别检测面1是否与至少一条光线有交点,面2是否与至少一条光线有交点,面3是否与至少一条光线有交点,面4是否与至少一条光线有交点,面5是否与至少一条光线有交点。若面1至面5中至少有一个面与至少一条光线有交点,则认为三维模型1与至少一条光线有交点,即认为三维模型1被至少一条光线照射到,即认为三维模型1为待渲染模型。若三维模型2包括6个面,分别为面1至面6,通过检测,检测到面1至面6均与光线不存在交点,则认为是三维模型2没有被光线照射到,则认为该三维模型为不可见模型,则不需要将三维模型2确定为待渲染模型。以此类推,即可确定待检测模型包括的各个模型是否为待渲染模型。

进一步地,一实施例中,检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点包括:

联立任一光线的参数方程与任一面的参数方程,其中,任一光线的参数方程为:p=p0+ut,任一面的参数方程为n·(a-p)=0,得到 当t大于等于零时,所述面与所述光线有交点;其中,p0为光线的起始坐标,u为光线的方向向量,t值的不同可以取到光线的不同的点,n为面的法向量,p为法向量与面的焦点的坐标,a为面内的另一个点的坐标。

本实施例中,以待检测模型中的一个三维模型为例进行说明,若该三维模型为6面体,则该三维模型包括6个面,记作面1至面6。若屏幕有m个像素点,则总计有m条光线。以检测面1是否与至少一条光线有交点为例,假设面1与任一光线有交点,任一光线的参数方程为p=p0+ut,面1的参数方程为n·(a-p)=0,其中,p0为光线的起始坐标,u为光线的方向向量,t值的不同可以取到光线的不同的点,n为面1的法向量,p为法向量与面1的焦点的坐标,即p为面1与任一光线的交点的坐标,a为面1内的另一个点的坐标。联立任一光线的参数方程以及面1的参数方程,即可得到 通过将n、a、p0、u的具体指代入后,即可得到t的值。其中,每条光线都有对应的p0、u,则分别将光线1至光线m的p0、u代入。当代入的p0、u为光线x对应的p0、u时,t大于等于零,则说明面1与光线x存在交点,即该三维模型至少一个面与至少一条光线有交点,则确定该三维模型被至少一条光线照射到,则认为该三维模型为待渲染模型。若分别将光线1至光线m的p0、u代入后,计算得到的m个t的值均小于零,则说明面1与m条光线均不存在交点,则按照上述方式继续监测面2是否与至少一条光线有交点。若检测到面1与面6均与m条光线不存在交点,则该三维模型不被光线照射到,则认为该三维模型为无需渲染的模型。

参照图2,图2为基于现有技术对一虚拟现实场景进行渲染的效果示意图。参照图3,图3为基于本发明模型渲染方法对一虚拟现实场景进行渲染的效果示意图。通过图2与图3的对比可以看出,图2所渲染的三维模型的数量远远大于图3所渲染的三维模型的数量,图3中,有选择的对一些不可见的模型不进行渲染,减少了不必要的渲染,既不会影响显示效果,也提高了渲染效率,节省了系统资源。

参照图4,图4为基于现有技术对一虚拟现实场景进行渲染的场景示意图。如图4所示,在overdraw模式下,查看场景中物体的遮挡情况,矩形框所标注的区域亮度很高,说明这个区域物体重叠严重,也就是光线照射不到的物体很多。另外,通过状态信息面板,定量地查看场景的状态信息,从状态信息可见批次数量为296(这个值越高,越卡顿),三角形数量约42万,顶点数约62万。

参照图5,图5为基于本发明模型渲染方法对一虚拟现实场景进行渲染的场景示意图。如图5所示,在overdraw模式下,矩形框所标注的区域亮度明显降低,说明这个区域物体重叠已经消除,也就是光线照射不到的物体没有被渲染。通过状态信息面板,定量地查看场景的状态信息,从状态信息可见批次数量降至62,三角形数量降至约15万,顶点数降至约21万。通过本发明提出的模型渲染方法,降低了批次数量、三角形数量以及顶点数量,这些值越低,作品运行越流畅,否则会很卡顿。

本实施例中,接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。通过本实施例,减少了不必要的渲染,既不会影响显示效果,也提高了渲染效率,节省了系统资源。

参照图6,图6为本发明模型渲染装置一实施例的功能模块示意图。在一实施例中,模型渲染装置包括:

标记模块10,用于接收人工标记操作,基于所述人工标记操作,从虚拟现实场景包括的模型中确定待检测模型;

渲染模块20,用于通过光线检测,从所述待检测模型中确定待渲染模型,并对所述待渲染模型进行渲染。

进一步地,一实施例中,所述渲染模块20,用于:

控制摄像机向所述虚拟现实场景所处的屏幕上的每个像素点发射一条光线,将所述待检测模型中被光线照射到的模型作为待渲染模型。

进一步地,一实施例中,所述渲染模块20,用于:

检测所述待检测模型中的各个模型是否与至少一条光线有交点;

将所述待检测模型中与至少一条光线有交点的模型作为待渲染模型。

进一步地,一实施例中,所述渲染模块20,用于:

检测所述待检测模型中的各个模型的各个面是否与至少一条光线有交点;

将至少一个面与至少一条光线有交点的模型作为与至少一条光线有交点的模型。

进一步地,一实施例中,所述渲染模块20,用于:

联立任一光线的参数方程与任一面的参数方程,其中,任一光线的参数方程为:p=p0+ut,任一面的参数方程为n·(a-p)=0,得到 当t大于等于零时,所述面与所述光线有交点;其中,p0为光线的起始坐标,u为光线的方向向量,t值的不同可以取到光线的不同的点,n为面的法向量,p为法向量与面的焦点的坐标,a为面内的另一个点的坐标。

本发明模型渲染装置的具体实施例与上述模型渲染方法的各个实施例基本相同,在此不做赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

再多了解一些
当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1