CN111354066A - 渲染方法、装置 - Google Patents
渲染方法、装置 Download PDFInfo
- Publication number
- CN111354066A CN111354066A CN202010116822.1A CN202010116822A CN111354066A CN 111354066 A CN111354066 A CN 111354066A CN 202010116822 A CN202010116822 A CN 202010116822A CN 111354066 A CN111354066 A CN 111354066A
- Authority
- CN
- China
- Prior art keywords
- color
- path
- ray
- line segment
- iteration
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种渲染方法、装置;本发明实施例可以在虚拟场景中确定目标像素点并获取当前时刻的迭代次数;基于当前时刻的迭代次数对目标像素点进行路径追踪,得到目标像素点在当前时刻的光线路径;确定当前时刻的光线路径的迭代状态;当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。本发明实施例可以自动判断是否还需要继续进行迭代来精确地渲染目标像素。由此,本方案可以提升像素渲染的效率。
Description
技术领域
本发明涉及图像处理领域,具体涉及一种渲染方法、装置。
背景技术
光线跟踪(Ray Tracing)是一种在二维屏幕上呈现三维图像的方法,目前光线跟踪被广泛地应用于计算机游戏、动画、多媒体制作等领域。在光线跟踪的过程中,每一个光线的路径是指光线从原点发射,并遇到虚拟场景中的虚拟物体后进行一系列的漫反射、折射和阴影效应,每一束光线的路径在到达屏幕前遇到的多个虚拟物体,可以在漫反射、折射和阴影效应的过程中赋予该光线的路径不同的颜色贡献。
漫反射、折射和阴影效应的次数越多,则图像渲染越真实,然而,在多次漫反射、折射和阴影效应的过程中,虚拟物体赋予该光线的路径的颜色贡献越来越少,但却消耗了大量的计算资源,因此,目前采用光线跟踪的方法进行像素渲染消耗了大量的计算资源,故目前的渲染方法效率低下。
发明内容
本发明实施例提供一种渲染方法、装置,可以提升渲染方法效率。
本发明实施例提供一种渲染方法,包括:
在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;
确定所述当前时刻的光线路径的迭代状态;
当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
本发明实施例还提供一种渲染装置,包括:
目标单元,用于在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
路径单元,用于基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;状态单元,用于确定所述当前时刻的光线路径的迭代状态;
渲染单元,用于当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
在一些实施例中,所述路径单元,包括:
迭代范围子单元,用于获取迭代次数范围;
入射子单元,用于当所述当前时刻的迭代次数属于所述迭代次数范围内时,在所述目标像素点对应的预设迭代区域中,以所述目标像素点为中心发射射线,得到入射射线;
入射追踪子单元,用于基于所述入射射线进行路径追踪,得到所述目标像素点在当前时刻的光线路径。
在一些实施例中,所述入射追踪子单元,包括:
入射线段子模块,用于当所述入射射线与所述虚拟场景中的虚拟物体相交时,确定所述入射射线对应的入射线段;
第一类型子模块,用于当所述虚拟物体的物体类型为第一类型时,将所述入射线段确定为所述目标像素点在当前时刻的光线路径;
第二类型子模块,用于当所述虚拟物体的物体类型为第二类型时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段,以及基于所述入射线段和反射线段确定所述目标像素点在当前时刻的光线路径。
在一些实施例中,所述第二类型子模块,用于:
获取反射次数范围,以及确定上一反射次数;
当所述上一反射次数属于所述反射次数范围时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段;
基于所述入射线段和反射线段确定所述目标像素点在当前时刻的光线路径;
更新所述上一反射次数,得到当前反射次数。
在一些实施例中,所述第二类型子模块在基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段时,用于:
获取所述虚拟物体的物体参数,以及上一光线损失率;
基于所述物体参数和所述上一光线损失率确定积累光线损失率;
当所述积累光线损失率不属于预设损失率阈值时,将所述入射线段确定为所述目标像素点在当前时刻的光线路径;
当所述积累光线损失率属于预设损失率阈值时,以所述虚拟物体与所述入射线段之间的相交点为中心发射射线,得到当前的反射射线,并基于所述当前的反射射线进行路径追踪,得到反射线段。
在一些实施例中,所述第二类型子模块在基于所述当前的反射射线进行路径追踪,得到反射线段时,用于:
获取历史反射线段集合;
当所述当前的反射射线与所述虚拟场景中的虚拟物体相交时,确定所述当前的反射射线对应的当前反射线段;
当所述虚拟物体的物体类型为第一类型时,根据所述入射线段、所述当前反射线段和所述历史反射线段集合确定所述目标像素点在当前时刻的光线路径;
当所述虚拟物体的物体类型为第二类型时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到下一反射线段,并根据所述当前反射线段更新所述历史反射线段集合,以及基于所述入射线段、所述下一反射线段和所述历史反射线段集合确定所述目标像素点在当前时刻的光线路径。
在一些实施例中,所述第一颜色信息包括颜色均值,所述第二颜色信息包括颜色方差,所述状态单元,包括:
获取子单元,用于获取颜色置信度和最大颜色误差;
阈值子单元,用于根据所述颜色均值、颜色置信度和所述最大颜色误差计算颜色均值阈值;
继续子单元,用于当所述颜色方差不小于所述颜色均值阈值时,将所述当前时刻的光线路径的迭代状态确定为继续迭代状态;
停止子单元,用于当所述颜色方差小于所述颜色均值阈值时,将所述当前时刻的光线路径的迭代状态确定为停止迭代状态。
在一些实施例中,所述阈值子单元,用于:
根据所述颜色置信度在预设的标准正态分布表中确定颜色标准分数;
根据所述最大颜色误差和所述颜色标准分数计算颜色均值阈值。
在一些实施例中,所述渲染单元,包括:
历史子单元,用于获取历史时刻的光线路径;
贡献子单元,用于基于所述当前时刻的光线路径和所述历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息;
渲染子单元,用于基于所述颜色贡献信息渲染所述目标像素点。
在一些实施例中,所述当前时刻的光线路径中包括当前路径节点,所述历史时刻的光线路径包括历史路径节点,所述贡献子单元,用于:
确定所述当前路径节点以及所述历史路径节点在虚拟场景中对应的虚拟物体;
根据所述当前路径节点以及所述历史路径节点在虚拟场景中对应的虚拟物体,确定所述当前路径节点以及所述历史路径节点的节点颜色贡献信息;
统计所述节点颜色贡献信息,得到颜色贡献信息。
在一些实施例中,所述光线路径中包括多个路径节点,所述第一颜色信息包括颜色均值,所述第二颜色信息包括颜色方差,所述统计子单元用于:
确定所述路径节点对应的颜色信息;
根据所述颜色信息对所述颜色信息进行均值计算,得到所述光线路径的颜色均值;
根据所述颜色信息对所述颜色信息进行方差计算,得到所述光线路径的颜色方差。
在一些实施例中,所述光线路径中包括多个路径节点,所述第一颜色信息包括颜色均值,所述第二颜色信息包括颜色方差,所述统计子单元用于:
对含有所述当前时刻的光线路径的虚拟场景进行图像渲染,得到渲染图像;
对含有所述当前时刻的光线路径的所述渲染图像进行图像滤波,得到滤波图像;
在一些实施例中,所述状态单元用于:
计算所述渲染图像和所述滤波图像之间的图像均方误差;
根据所述图像均方误差确定所述渲染图像和所述滤波图像之间的图像信噪比;
当所述图像信噪比属于预设信噪比范围时,确定所述当前时刻的光线路径的迭代状态为继续迭代状态;
当所述图像信噪比不属于预设信噪比范围时,确定所述当前时刻的光线路径的迭代状态为停止迭代状态。
本发明实施例还提供一种终端,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本发明实施例所提供的任一种渲染方法中的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种渲染方法中的步骤。
本发明实施例可以在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;基于当前时刻的迭代次数对目标像素点进行路径追踪,得到目标像素点在当前时刻的光线路径;对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;根据第一颜色信息和第二颜色信息确定当前时刻的光线路径的迭代状态;当迭代状态为继续迭代状态时,则更新当前时刻的迭代次数,得到下一时刻的迭代次数;当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。
在本发明中,每次迭代都可以对当前时刻的光线路径进行颜色统计,从而确定目标像素对应的光线路径是否还需要继续进行迭代来优化该目标像素的渲染效果。由此,本方案可以自动地控制迭代次数,使得在达到优秀的渲染效果的同时降低了计算资源的消耗,故本方案提升了像素渲染的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的渲染方法的场景示意图;
图1b是本发明实施例提供的渲染方法的第一流程示意图;
图1c是本发明实施例提供的渲染方法的光线反弹示意图;
图1d是本发明实施例提供的渲染方法的预设迭代区域示意图;
图2a是本发明实施例提供的渲染方法应用在三维建模场景中的示意图;
图2b是本发明实施例提供的渲染方法的第二流程示意图;
图3是本发明实施例提供的渲染装置的结构示意图;
图4是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种渲染方法、装置、终端和存储介质。
其中,该渲染装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该渲染装置还可以集成在多个电子设备中,比如,渲染装置可以集成在多个服务器中,由多个服务器来实现本发明的渲染方法。
在一些实施例中,服务器也可以以终端的形式来实现。
例如,参考图1a,虚拟场景中可以包括视点和多个虚拟物体,该电子设备可以在虚拟场景中确定目标像素点a,该目标像素点a在虚拟物体A上,并获取当前时刻的迭代次数;然后,基于当前时刻的迭代次数对目标像素点a进行路径追踪,得到目标像素点在当前时刻的光线路径,其中,该当前时刻的光线路径是图1a中的虚线,该当前时刻的光线路径包括5个节点,依次是视点、目标像素点a、路径节点b、路径节点c、路径节点d;然后,对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息,再根据第一颜色信息和第二颜色信息确定当前时刻的光线路径的迭代状态;当迭代状态为继续迭代状态时,则更新当前时刻的迭代次数,得到下一时刻的迭代次数;当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
在本实施例中,提供了一种渲染方法,如图1b所示,该渲染方法的具体流程可以如下:
101、在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数。
虚拟场景是指计算机勾勒出的数字化场景,虚拟场景可以包括二维虚拟场景、三维虚拟场景,等等。
常见的虚拟场景可以包括虚拟游戏场景、虚拟住宅小区场景、虚拟现实实验室场景,等等。
例如,在基于智能手机的虚拟游戏场景中,虚拟游戏场景中可以包括虚拟游戏角色、虚拟天气环境、虚拟粒子效果、虚拟自然环境,等等。
例如,在虚拟住宅小区场景中可以包括虚拟建筑物环境、虚拟自然环境,等等。
三维的虚拟场景需要经过一系列的渲染,使其内容以二维的形式表现到屏幕中。
三维的虚拟场景可以由多个像素点构成,目标像素点是指需要被渲染的像素点,该目标像素点的颜色值、亮度值、深度值等像素信息需要由其虚拟环境确定,比如,目标像素点的亮度值和颜色值与其所在环境的光线密集程度、周围遮挡光线的虚拟物体的数量等等有关。
在第一次进行迭代时,迭代次数可以初始化为0,每次对该目标像素点进行迭代时,需要确定当前时刻的迭代次数,该当前时刻的迭代次数可以从本地内存中读取,也可以通过网络从数据库中获取,等等。
102、基于当前时刻的迭代次数对目标像素点进行路径追踪,得到目标像素点在当前时刻的光线路径。
光在均匀介质中可以沿直线传播,且不受引力影响,但光线在传播的过程中遇到物体时可能会发生反射、散射、漫反射、被吸收等情况,比如,光线传播到镜面时会发生反射,其光线传播的路径可以是V子形;比如,光线传播到桌面时,会发生漫反射,其光线传播的路径可以参考图1c,其中,实线是入射的光线,虚线是漫反射后出射的光线。
不同的物体具有不同的材质,对于不同的材质,其反弹通过率不同,该反弹通过率可以指的是光线通过一个材质后有多大的比例会反弹出去,比如,镜面的反弹通过率可以是100%,木制桌面的反弹通过率可以是70%。
路径追踪(Path Tracing)是指在虚拟场景中对光线传播路径的追踪,,可以得到该光线在传播过程中的光线路径。
路径追踪是一种无偏(Unbiased)的渲染方法,其基本思想是从视点发出一条光线,光线与物体表面相交时根据表面的材质属性继续采样一个方向,发出另一条光线,如此迭代,直到光线打到光源上(或逃逸出场景),然后用蒙特卡洛方法,计算光线的贡献,作为像素的颜色值,故只要迭代的次数足够多、渲染的时间足够长,最终渲染的图像能收敛到一个正确的结果。
本方案可以自动地对迭代次数进行控制,从而使得最终渲染的图像能收敛到一个正确的结果的同时,不需要再次进行迭代,从而提高渲染效率,减少渲染资源的消耗,如下:
在一些实施例中,步骤102可以包括步骤A、步骤B、步骤C,如下:
步骤A:获取迭代次数范围;
步骤B:当当前时刻的迭代次数属于迭代次数范围内时,在目标像素点对应的预设迭代区域中,以目标像素点为中心发射射线,得到入射射线;
步骤C:基于入射射线进行路径追踪,得到目标像素点在当前时刻的光线路径。
以目标像素点为中心发射射线时,可以发射一条射线,也可以同时发射多条射线,故得到的入射射线可以为一条也可以为多条。
其中,迭代次数范围可以用于控制从目标像素点中要发射光线的最小值和最大值。
目标像素点对应的预设迭代区域是指以目标像素点为中心,以目标像素点的法线方向为面向方向的预设三维区域,该预设三维区域可以为多种三维形状,比如,球形、半球形、方形、金字塔形,等等。比如,参考图1d,预设迭代区域是以目标像素点a为中心,目标像素点的法线方向为面向方向的半球。
在一些实施例中,参考图1d,在步骤B中,可以是以视点为起点向目标像素点发射射线wi,再根据射线wi以目标像素点为中心发射射线,得到入射射线wo。
在一些实施例中,虚拟物体可以是发光的光源,也可以是不发光的非光源,入射射线接触到不同类型的虚拟物体会有不同的反射表现,故步骤C可以包括如下步骤:
当入射射线与虚拟场景中的虚拟物体相交时,确定入射射线对应的入射线段;
当虚拟物体的物体类型为第一类型时,将入射线段确定为目标像素点在当前时刻的光线路径;
当虚拟物体的物体类型为第二类型时,基于虚拟物体对入射线段进行光线反射预测,得到反射线段,以及基于入射线段和反射线段确定目标像素点在当前时刻的光线路径。
其中,第一类型时是指光源类型,比如,第一类型的虚拟物体可以包括灯、太阳、篝火、光粒、荧光体等发光物体。
其中,第二类型时是指非光源类型,比如,第一类型的虚拟物体可以包括桌子、笔、衣柜等不发光的物体。
例如,参考图1a,当入射射线与虚拟场景中的虚拟物体C相交时,确定入射射线对应的入射线段为线段b-c,当虚拟物体C的物体类型为第二类型时,将入射线段b-c确定为目标像素点在当前时刻的光线路径;当入射射线与虚拟场景中的虚拟物体-太阳相交时,确定入射射线对应的入射线段为线段c-d,当虚拟物体-太阳的物体类型为第一类型时,将入射线段c-d确定为目标像素点在当前时刻的光线路径。
在一些实施例中,为了防止光线无限地在虚拟场景中反射、消耗过多的计算资源,故步骤“基于虚拟物体对入射线段进行光线反射预测,得到反射线段,以及基于入射线段和反射线段确定目标像素点在当前时刻的光线路径”可以包括如下步骤:
获取反射次数范围,以及确定上一反射次数;
当上一反射次数属于反射次数范围时,基于虚拟物体对入射线段进行光线反射预测,得到反射线段;
基于入射线段和反射线段确定目标像素点在当前时刻的光线路径;
更新上一反射次数,得到当前反射次数。
反射次数范围可以表现最大和最小的迭代次数,可以防止迭代次数过少导致的渲染效果不佳的为题,也可以防止迭代次数过多导致的渲染耗时过长、渲染消耗资源过多的问题,从而提高渲染效果和渲染效率。
在一些实施例中,为了进一步地防止光线无限地在虚拟场景中反射、消耗过多的计算资源,故步骤“基于虚拟物体对入射线段进行光线反射预测,得到反射线段”可以包括如下步骤:
获取虚拟物体的物体参数,以及上一光线损失率;
基于物体参数和上一光线损失率确定积累光线损失率;
当积累光线损失率不属于预设损失率阈值时,将入射线段确定为目标像素点在当前时刻的光线路径;
当积累光线损失率属于预设损失率阈值时,以虚拟物体与入射线段之间的相交点为中心发射射线,得到当前的反射射线,并基于当前的反射射线进行路径追踪,得到反射线段。
虚拟物体的物体参数可以包括虚拟物体的材质参数、位置参数、颜色参数、光线损失率,等等。其中,光线损失率是指光线与虚拟物体碰撞前后产生损失的概率,光线损失率可以包括反弹通过率、反射率、反照率(Albedo),等等。
积累光线损失率可以包括累积反弹通过率,累积反弹通过率光线在每次反弹过程中的反弹通过率的乘积。
当积累光线损失率不属于预设损失率阈值时,说明该光线在多次反弹、反射的过程中几乎消耗殆尽,无需继续进行迭代,从而降低渲染时间,提高渲染效率。
在一些实施例中,步骤“基于当前的反射射线进行路径追踪,得到反射线段”包括如下步骤:
获取历史反射线段集合;
当当前的反射射线与虚拟场景中的虚拟物体相交时,确定当前的反射射线对应的当前反射线段;
当虚拟物体的物体类型为第一类型时,根据入射线段、当前反射线段和历史反射线段集合确定目标像素点在当前时刻的光线路径;
当虚拟物体的物体类型为第二类型时,基于虚拟物体对入射线段进行光线反射预测,得到下一反射线段,并根据当前反射线段更新历史反射线段集合,以及基于入射线段、下一反射线段和历史反射线段集合确定目标像素点在当前时刻的光线路径。
历史反射线段集合是指历史时刻得到的目标像素点的反射线段,比如,参考图图1a,假设当前时刻的反射线段c-d,则历史反射线段集合中的历史反射线段包括历史反射线段b-c、历史反射线段a-b,当虚拟物体-太阳的物体类型为第一类型时,可以根据入射线段视点-a、当前反射线段c-d和历史反射线段集合确定目标像素点在当前时刻的光线路径为[视点-a-b-c-d]。
103、确定当前时刻的光线路径的迭代状态。
在一些实施例中,步骤103包括以下步骤:
对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;
根据第一颜色信息和第二颜色信息确定当前时刻的光线路径的迭代状态。
其中,对当前时刻的光线路径进行颜色统计是指对光线路径中的光线节点进行颜色统计,比如,当前时刻的光线路径为[视点-a-b-c-d],其光线的路径节点包括视点、a、b、c和d。
其中,路径节点的颜色值是指该路径节点所在虚拟物体的颜色、材质等物理信息。
在一些实施例中,第一颜色信息可以包括渲染图像,第二颜色信息可以包括滤波图像,对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息,可以包括如下步骤:
对含有当前时刻的光线路径的虚拟场景进行图像渲染,得到渲染图像;
对含有当前时刻的光线路径的渲染图像进行图像滤波,得到滤波图像。在一些实施例中,第一颜色信息可以包括颜色均值,第二颜色信息可以包括颜色方差,故步骤104包括如下步骤:
获取颜色置信度和最大颜色误差;
根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值;
当颜色方差不小于颜色均值阈值时,将当前时刻的光线路径的迭代状态确定为继续迭代状态;
当颜色方差小于颜色均值阈值时,将当前时刻的光线路径的迭代状态确定为停止迭代状态。
其中,最大颜色误差是一种最大误差率(Max Error Factor),其用于控制最大误差值与平均数据的比值。
获取颜色置信度和最大颜色误差的方法具有多种,比如,可以直接从本地内存中读取,也可以通过网络从数据库获取,等等。
其中,根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值的方法具有多种,比如,在一些实施例中,步骤“根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值”可以包括如下步骤:
根据颜色置信度在预设的标准正态分布表中确定颜色标准分数;
根据最大颜色误差和颜色标准分数计算颜色均值阈值。
其中,颜色标准分数是指颜色置信度的Z分数,比如,当颜色置信度为95%时,其对应的Z分数为1.96。
在一些实施例中,光线路径中可以包括如下步骤多个路径节点,第一颜色信息可以包括如下步骤颜色均值,第二颜色信息可以包括如下步骤颜色方差,对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息,可以包括如下步骤:
确定路径节点对应的颜色信息;
根据颜色信息对颜色信息进行均值计算,得到光线路径的颜色均值;
根据颜色信息对颜色信息进行方差计算,得到光线路径的颜色方差。
比如,当颜色置信度为95%时,其对应的Z分数为1.96,此时,置信区间为(颜色均值-1.96*颜色方差,颜色均值+1.96*颜色方差),根据最大颜色误差,可知置信区间的下限MinLimit为:
MinLimit=Mean-Mean*Max Error Factor
其中,Mean为颜色均值,Max Error Factor为最大颜色误差。
根据置信区间的定义可知当前数据满足置信区间的最小值Min为:
Min=Mean–1.96*SEM
其中,1.96为颜色置信度对应的Z分数,SEM为颜色方差。
若要使当前的数据满足置信区间,则需满足Min>Max Error Factor,即:
Mean–1.96*SEM>Mean–Mean*Max Error Factor
通过代数变换后可得迭代状态的判断方式:
SEM<Mean*MaxErrorFactor/1.96
其中,定义颜色均值阈值Threshold=Mean*MaxErrorFactor/1.96
则当SEM不小于Threshold时,将当前时刻的光线路径的迭代状态确定为继续迭代状态;当SEM小于Threshold时,将当前时刻的光线路径的迭代状态确定为停止迭代状态。
在一些实施例中,还可以使用基于图像信噪比的方法来确定迭代状态,其中,信噪比越高表明图像的噪音越小,越接近真实图像,只有图像信噪比达到期望阀值,就可以停止路径跟踪的迭代。
比如,在一些实施例中,第一颜色信息可以包括渲染图像,第二颜色信息可以包括滤波图像,在步骤103可以得到渲染图像和滤波图像,故步骤104可以包括如下步骤:
计算渲染图像和滤波图像之间的图像均方误差;
根据图像均方误差确定渲染图像和滤波图像之间的图像信噪比;
当图像信噪比属于预设信噪比范围时,确定当前时刻的光线路径的迭代状态为继续迭代状态;
当图像信噪比不属于预设信噪比范围时,确定当前时刻的光线路径的迭代状态为停止迭代状态。
其中,信噪比(Peak Signal to Noise Ratio,PNSR)的计算公式如下:
PNSR=10*log10(255*255/MSE)
其中,MSE为颜色均方误差(Mean Standard Error)。
当迭代状态为继续迭代状态时,则更新当前时刻的迭代次数,得到下一时刻的迭代次数。
比如,当迭代状态为继续迭代状态时,将当前时刻的迭代次数+1,得到下一时刻的迭代次数。
104、当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。
在本实施例中,可以采用多种方法进行像素点的渲染,比如,采用蒙特卡洛积分法(Monte Carlo)基于当前时刻的光线路径渲染目标像素点。
其中,采用蒙特卡洛积分法计算目标像素点的光照数据FN如下:
其中,N是最终执行的迭代次数,f(xi)是光线路径每次迭代获取的颜色贡献值,pdf(xi)是每条光线路径对应的概率分布函数。
在一些实施例中,为了优化渲染效果、提高渲染效率,可以采用统计模拟方法来进行步骤106,故步骤106可以包括如下步骤:
获取历史时刻的光线路径;
基于当前时刻的光线路径和历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息;
基于颜色贡献信息渲染目标像素点。
其中,颜色贡献信息是指每条光线路径对目标像素点颜色的影响、贡献,其可以由光线路径的路径节点所在虚拟物体的颜色、材质等物理信息中获得。
在一些实施例中,为了优化渲染效果、提高渲染效率,可以采用蒙特卡洛方法进行像素渲染,故当前时刻的光线路径中可以包括当前路径节点,历史时刻的光线路径可以包括历史路径节点,步骤“基于当前时刻的光线路径和历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息”可以包括如下步骤:
确定当前路径节点以及历史路径节点在虚拟场景中对应的虚拟物体;
根据当前路径节点以及历史路径节点在虚拟场景中对应的虚拟物体,确定当前路径节点以及历史路径节点的节点颜色贡献信息;
统计节点颜色贡献信息,得到颜色贡献信息。
由上可知,本发明实施例可以在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
基于当前时刻的迭代次数对目标像素点进行路径追踪,得到目标像素点在当前时刻的光线路径;确定当前时刻的光线路径的迭代状态;当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。
在本发明中,每次迭代的过程中都可以对当前时刻的光线路径进行颜色统计和分析,从而判断目标像素对应的光线路径是否还需要继续进行迭代来优化该目标像素的渲染效果。由此,本方案可以自动地控制迭代次数,使得在达到优秀的渲染效果的同时降低了计算资源的消耗,故本方案提升了像素渲染的效率。
根据上述实施例所描述的方法,以下将以虚拟三维场景建模的渲染为例,对本发明实施例的方法进行详细说明。
如同图2a,本方案可以作为扩展程序(比如插件、扩展工具)用于虚拟三维场景建模的应用程序中,在该扩展程序中,用户可以点击Build按钮来使用扩展程序设置渲染时的迭代次数范围、预设损失率阈值、最大颜色误差、颜色置信度、自动检测步数、自动检测起始参数,等等。
其中,自动检测起始参数用于设置迭代多少次之后采用本方案进行像素渲染,自动检测步数用于设置每经过多少次迭代采用本方案进行像素渲染。
如图2b所示,一种渲染方法具体流程如下:
201、在虚拟场景中确定目标像素点。
202、初始化迭代次数。
比如,将迭代次数初始化为0。
203、获取当前时刻的迭代次数。
比如,获取当前时刻的迭代次数i。
204、当前时刻的迭代次数属于迭代次数范围时,在目标像素点对应的预设迭代区域中,以目标像素点为中心发射一条射线。
比如,用户设置的迭代次数范围为[0,15],当前时刻的迭代次数i属于迭代次数范围[0,15]时,在目标像素点对应的预设迭代区域中,以目标像素点为中心发射一条射线。
205、当射线与虚拟物体相交,且虚拟物体的物体类型为非光源类型时,获取虚拟物体的物体参数,以及上一光线损失率,并基于物体参数和上一光线损失率确定积累光线损失率,以及更新历史反射线段集合。
比如,假设上一光线损失率为lossn-1,则基于物体参数和上一光线损失率lossn-1确定积累光线损失率∑loss。
若不存在上一光线损失率,则将当前时刻的光线损失率lossn初始化为1。
其中,物体参数可以包括材质通过率、材质颜色、材质形状,等等物理参数。
206、当积累光线损失率属于预设损失率阈值时,以射线与虚拟物体相交点为中心发射一条射线。
假设用户设置的预设损失率阈值为0.3,则当积累光线损失率∑loss不小于0.3时,以射线与虚拟物体相交点为中心发射一条射线。
207、当积累光线损失率不属于预设损失率阈值,或虚拟物体的物体类型为光源类型,或当前时刻的迭代次数不属于迭代次数范围时,对当前时刻的光线路径进行颜色统计,得到颜色均值和颜色方差。
其中,n指当前时刻,n-1指当前时刻的上一时刻,xn是当前时刻光线路径的颜色值。
208、获取颜色置信度和最大颜色误差,并根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值。
假设用户在扩展程序中设置的颜色置信度为X,颜色置信度为X对应的Z分数为Z[X],最大颜色误差为MaxErrorFactor,则计算颜色均值阈值Threshold为:
Threshold=MaxErrorFactor/Z[X]
209、根据颜色方差和颜色均值阈值确定当前时刻的光线路径的迭代状态。
210、当迭代状态为停止迭代状态时,采用蒙特卡洛法基于当前时刻的光线路径渲染目标像素点。
参考步骤106,在此不做赘述。
211、当迭代状态为继续迭代状态时,更新当前时刻的迭代次数,得到下一时刻的迭代次数。
比如,当迭代状态为继续迭代状态时,更新当前时刻的迭代次数i,得到下一时刻的迭代次数i+1。
本方案发明人在实验过程中发现,通过上述步骤201~211,采用512次固定迭代次数渲染出的虚拟场景画面需要耗时7分钟,而本方案在渲染出相同效果的虚拟场景画面仅需要耗时5分30秒。
经过多次实验,本方案发明人发现,相比于现有技术,本方案的渲染性能可提升20%-50%左右。
由上可知,本方案实施例可以在虚拟场景中确定目标像素点;初始化迭代次数;获取当前时刻的迭代次数;当前时刻的迭代次数属于迭代次数范围时,在目标像素点对应的预设迭代区域中,以目标像素点为中心发射一条射线;当射线与虚拟物体相交,且虚拟物体的物体类型为非光源类型时,获取虚拟物体的物体参数,以及上一光线损失率,并基于物体参数和上一光线损失率确定积累光线损失率,以及更新历史反射线段集合;当积累光线损失率属于预设损失率阈值时,以射线与虚拟物体相交点为中心发射一条射线;当积累光线损失率不属于预设损失率阈值,或虚拟物体的物体类型为光源类型,或当前时刻的迭代次数不属于迭代次数范围时,对当前时刻的光线路径进行颜色统计,得到颜色均值和颜色置信度;获取颜色置信度和最大颜色误差,并根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值;根据颜色方差和颜色均值阈值确定当前时刻的光线路径的迭代状态;当迭代状态为停止迭代状态时,采用蒙特卡洛法基于当前时刻的光线路径渲染目标像素点;当迭代状态为继续迭代状态时,更新当前时刻的迭代次数,得到下一时刻的迭代次数。
目前的渲染方式是通过尽量多地提高迭代次数来提高渲染效果,但此时的渲染性能严重下降,渲染耗时大幅度提高,然而,不同虚拟场景下不同的虚拟物体要达到渲染效果和性能之间达到最优值,其迭代次数是不同的。
由此,本方案在生成光线路径时可以根据该光线路径的累计通过率自动地调整光线路径的长度,以及,自动地控制迭代次数来控制生成光线路径的数量,故本方案在保证了渲染效果的同时,提升了像素渲染的效率。
为了更好地实施以上方法,本发明实施例还提供一种渲染装置,该渲染装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以渲染装置具体集成在XX为例,对本发明实施例的方法进行详细说明。
例如,如图3所示,该渲染装置可以包括目标单元301、路径单元302、状态单元303、以及渲染单元304,如下:
(一)目标单元301:
目标单元301可以用于在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数。
(二)路径单元302:
路径单元302可以用于基于当前时刻的迭代次数对目标像素点进行路径追踪,得到目标像素点在当前时刻的光线路径。
在一些实施例中,路径单元302可以包括迭代范围子单元、入射子单元以及入射追踪子单元,如下:
(1)迭代范围子单元:
迭代范围子单元可以用于获取迭代次数范围。
(2)入射子单元:
入射子单元可以用于当当前时刻的迭代次数属于迭代次数范围内时,在目标像素点对应的预设迭代区域中,以目标像素点为中心发射射线,得到入射射线。
(3)入射追踪子单元:
入射追踪子单元可以用于基于入射射线进行路径追踪,得到目标像素点在当前时刻的光线路径。
在一些实施例中,入射追踪子单元,可以包括入射线段子模块、第一类型子模块、第二类型子模块,如下:
a.入射线段子模块:
入射线段子模块可以用于当入射射线与虚拟场景中的虚拟物体相交时,确定入射射线对应的入射线段。
b.第一类型子模块:
第一类型子模块可以用于当虚拟物体的物体类型为第一类型时,将入射线段确定为目标像素点在当前时刻的光线路径。
c.第二类型子模块:
第二类型子模块可以用于当虚拟物体的物体类型为第二类型时,基于虚拟物体对入射线段进行光线反射预测,得到反射线段,以及基于入射线段和反射线段确定目标像素点在当前时刻的光线路径。
在一些实施例中,第二类型子模块,可以用于:
获取反射次数范围,以及确定上一反射次数;
当上一反射次数属于反射次数范围时,基于虚拟物体对入射线段进行光线反射预测,得到反射线段;
基于入射线段和反射线段确定目标像素点在当前时刻的光线路径;
更新上一反射次数,得到当前反射次数。
在一些实施例中,第二类型子模块在用于基于虚拟物体对入射线段进行光线反射预测,得到反射线段时,具体可以用于:
获取虚拟物体的物体参数,以及上一光线损失率;
基于物体参数和上一光线损失率确定积累光线损失率;
当积累光线损失率不属于预设损失率阈值时,将入射线段确定为目标像素点在当前时刻的光线路径;
当积累光线损失率属于预设损失率阈值时,以虚拟物体与入射线段之间的相交点为中心发射射线,得到当前的反射射线,并基于当前的反射射线进行路径追踪,得到反射线段。
在一些实施例中,第二类型子模块在用于基于当前的反射射线进行路径追踪,得到反射线段时,具体可以用于:
获取历史反射线段集合;
当当前的反射射线与虚拟场景中的虚拟物体相交时,确定当前的反射射线对应的当前反射线段;
当虚拟物体的物体类型为第一类型时,根据入射线段、当前反射线段和历史反射线段集合确定目标像素点在当前时刻的光线路径;
当虚拟物体的物体类型为第二类型时,基于虚拟物体对入射线段进行光线反射预测,得到下一反射线段,并根据当前反射线段更新历史反射线段集合,以及基于入射线段、下一反射线段和历史反射线段集合确定目标像素点在当前时刻的光线路径。
(三)状态单元303:
状态单元303可以用于确定当前时刻的光线路径的迭代状态。
在一些实施例中,状态单元303包括统计子单元和状态子单元,如下:
统计子单元可以用于对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;
状态子单元可以用于根据第一颜色信息和第二颜色信息确定当前时刻的光线路径的迭代状态。
在一些实施例中,第一颜色信息包括颜色均值,第二颜色信息包括颜色方差,状态子单元可以包括获取子模块、阈值子模块、继续子模块以及停止子模块,如下:
(1)获取子模块:
获取子模块可以用于获取颜色置信度和最大颜色误差。
(2)阈值子模块:
阈值子模块可以用于根据颜色均值、颜色置信度和最大颜色误差计算颜色均值阈值。
(3)继续子模块:
继续子模块可以用于当颜色方差不小于颜色均值阈值时,将当前时刻的光线路径的迭代状态确定为继续迭代状态。
(4)停止子模块:
停止子模块可以用于当颜色方差小于颜色均值阈值时,将当前时刻的光线路径的迭代状态确定为停止迭代状态。
在一些实施例中,阈值子模块可以用于:
根据颜色置信度在预设的标准正态分布表中确定颜色标准分数;
根据最大颜色误差和颜色标准分数计算颜色均值阈值。
在一些实施例中,状态子模块可以用于:
计算渲染图像和滤波图像之间的图像均方误差;
根据图像均方误差确定渲染图像和滤波图像之间的图像信噪比;
当图像信噪比属于预设信噪比范围时,确定当前时刻的光线路径的迭代状态为继续迭代状态;
当图像信噪比不属于预设信噪比范围时,确定当前时刻的光线路径的迭代状态为停止迭代状态。
(四)渲染单元304:
渲染单元304可以用于当迭代状态为停止迭代状态时,基于当前时刻的光线路径渲染目标像素点。
在一些实施例中,渲染单元304,可以包括历史子单元、贡献子单元以及渲染子单元,如下:
(1)历史子单元:
历史子单元可以用于获取历史时刻的光线路径。
(2)贡献子单元:
贡献子单元可以用于基于当前时刻的光线路径和历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息。
(3)渲染子单元:
渲染子单元可以用于基于颜色贡献信息渲染目标像素点。
在一些实施例中,当前时刻的光线路径中包括当前路径节点,历史时刻的光线路径包括历史路径节点,贡献子单元可以用于:
确定当前路径节点以及历史路径节点在虚拟场景中对应的虚拟物体;
根据当前路径节点以及历史路径节点在虚拟场景中对应的虚拟物体,确定当前路径节点以及历史路径节点的节点颜色贡献信息;
统计节点颜色贡献信息,得到颜色贡献信息。
在一些实施例中,光线路径中包括多个路径节点,第一颜色信息包括颜色均值,第二颜色信息包括颜色方差,状态单元303可以用于:
确定路径节点对应的颜色信息;
根据颜色信息对颜色信息进行均值计算,得到光线路径的颜色均值;
根据颜色信息对颜色信息进行方差计算,得到光线路径的颜色方差。
故在一些实施例中,光线路径中包括多个路径节点,第一颜色信息包括颜色均值,第二颜色信息包括颜色方差,此时的状态单元303可以用于:
对含有当前时刻的光线路径的虚拟场景进行图像渲染,得到渲染图像;
对含有当前时刻的光线路径的渲染图像进行图像滤波,得到滤波图像;
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的渲染装置由目标单元在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;由路径单元基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;由状态单元确定所述当前时刻的光线路径的迭代状态;由渲染单元当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
由此,本发明实施例可以提升像素渲染的效率。
本发明实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该渲染装置还可以集成在多个电子设备中,比如,渲染装置可以集成在多个服务器中,由多个服务器来实现本发明的渲染方法。
在本实施例中,将以本实施例的电子设备是终端为例进行详细描述,比如,如图4所示,其示出了本发明实施例所涉及的终端的结构示意图,具体来讲:
该终端可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入模块404以及通信模块405等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
终端还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该终端还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该终端还可包括通信模块405,在一些实施例中通信模块405可以包括无线模块,终端可以通过该通信模块405的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,终端还可以包括显示单元等,在此不再赘述。具体在本实施例中,终端中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;
对所述当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;
根据所述第一颜色信息和第二颜色信息确定所述当前时刻的光线路径的迭代状态;
当所述迭代状态为继续迭代状态时,则更新所述当前时刻的迭代次数,得到下一时刻的迭代次数;
当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本方案实施例可以提升像素渲染的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种渲染方法中的步骤。例如,该指令可以执行如下步骤:
在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;
对所述当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;
根据所述第一颜色信息和第二颜色信息确定所述当前时刻的光线路径的迭代状态;
当所述迭代状态为继续迭代状态时,则更新所述当前时刻的迭代次数,得到下一时刻的迭代次数;
当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种渲染方法中的步骤,因此,可以实现本发明实施例所提供的任一种渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种渲染方法、装置、终端和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种渲染方法,其特征在于,包括:
在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;
确定所述当前时刻的光线路径的迭代状态;
当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
2.如权利要求1所述的渲染方法,其特征在于,所述基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径,包括:
获取迭代次数范围;
当所述当前时刻的迭代次数属于所述迭代次数范围内时,在所述目标像素点对应的预设迭代区域中,以所述目标像素点为中心发射射线,得到入射射线;
基于所述入射射线进行路径追踪,得到所述目标像素点在当前时刻的光线路径。
3.如权利要求2所述的渲染方法,其特征在于,所述基于所述入射射线进行路径追踪,得到所述目标像素点在当前时刻的光线路径,包括:
当所述入射射线与所述虚拟场景中的虚拟物体相交时,确定所述入射射线对应的入射线段;
当所述虚拟物体的物体类型为第一类型时,将所述入射线段确定为所述目标像素点在当前时刻的光线路径;
当所述虚拟物体的物体类型为第二类型时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段,以及基于所述入射线段和反射线段确定所述目标像素点在当前时刻的光线路径。
4.如权利要求3所述的渲染方法,其特征在于,所述基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段,以及基于所述入射线段和反射线段确定所述目标像素点在当前时刻的光线路径,包括:
获取反射次数范围,以及确定上一反射次数;
当所述上一反射次数属于所述反射次数范围时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段;
基于所述入射线段和反射线段确定所述目标像素点在当前时刻的光线路径;
更新所述上一反射次数,得到当前反射次数。
5.如权利要求4所述的渲染方法,其特征在于,所述基于所述虚拟物体对所述入射线段进行光线反射预测,得到反射线段,包括:
获取所述虚拟物体的物体参数,以及上一光线损失率;
基于所述物体参数和所述上一光线损失率确定积累光线损失率;
当所述积累光线损失率不属于预设损失率阈值时,将所述入射线段确定为所述目标像素点在当前时刻的光线路径;
当所述积累光线损失率属于预设损失率阈值时,以所述虚拟物体与所述入射线段之间的相交点为中心发射射线,得到当前的反射射线,并基于所述当前的反射射线进行路径追踪,得到反射线段。
6.如权利要求4所述的渲染方法,其特征在于,所述基于所述当前的反射射线进行路径追踪,得到反射线段,包括:
获取历史反射线段集合;
当所述当前的反射射线与所述虚拟场景中的虚拟物体相交时,确定所述当前的反射射线对应的当前反射线段;
当所述虚拟物体的物体类型为第一类型时,根据所述入射线段、所述当前反射线段和所述历史反射线段集合确定所述目标像素点在当前时刻的光线路径;
当所述虚拟物体的物体类型为第二类型时,基于所述虚拟物体对所述入射线段进行光线反射预测,得到下一反射线段,并根据所述当前反射线段更新所述历史反射线段集合,以及基于所述入射线段、所述下一反射线段和所述历史反射线段集合确定所述目标像素点在当前时刻的光线路径。
7.如权利要求1所述的渲染方法,其特征在于,所述确定当前时刻的光线路径的迭代状态,包括:
所述对当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息;
根据第一颜色信息和第二颜色信息确定当前时刻的光线路径的迭代状态。
8.如权利要求7所述的渲染方法,其特征在于,所述光线路径中包括多个路径节点,所述第一颜色信息包括颜色均值,所述第二颜色信息包括颜色方差,所述对所述当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息,包括:
确定所述路径节点对应的颜色信息;
根据所述颜色信息对所述颜色信息进行均值计算,得到所述光线路径的颜色均值;
根据所述颜色信息对所述颜色信息进行方差计算,得到所述光线路径的颜色方差。
9.如权利要求7所述的渲染方法,其特征在于,所述第一颜色信息包括渲染图像,所述第二颜色信息包括滤波图像,所述对所述当前时刻的光线路径进行颜色统计,得到第一颜色信息和第二颜色信息,包括:
对含有所述当前时刻的光线路径的虚拟场景进行图像渲染,得到渲染图像;
对含有所述当前时刻的光线路径的所述渲染图像进行图像滤波,得到滤波图像。
10.如权利要求7所述的渲染方法,其特征在于,所述第一颜色信息包括渲染图像,所述第二颜色信息包括滤波图像,所述根据所述第一颜色信息和第二颜色信息确定所述当前时刻的光线路径的迭代状态,包括:
计算所述渲染图像和所述滤波图像之间的图像均方误差;
根据所述图像均方误差确定所述渲染图像和所述滤波图像之间的图像信噪比;
当所述图像信噪比属于预设信噪比范围时,确定所述当前时刻的光线路径的迭代状态为继续迭代状态;
当所述图像信噪比不属于预设信噪比范围时,确定所述当前时刻的光线路径的迭代状态为停止迭代状态。
11.如权利要求7所述的渲染方法,其特征在于,所述第一颜色信息包括颜色均值,所述第二颜色信息包括颜色方差,所述根据所述第一颜色信息和第二颜色信息确定所述当前时刻的光线路径的迭代状态,包括:
获取颜色置信度和最大颜色误差;
根据所述颜色均值、颜色置信度和所述最大颜色误差计算颜色均值阈值;
当所述颜色方差不小于所述颜色均值阈值时,将所述当前时刻的光线路径的迭代状态确定为继续迭代状态;
当所述颜色方差小于所述颜色均值阈值时,将所述当前时刻的光线路径的迭代状态确定为停止迭代状态。
12.如权利要求11所述的渲染方法,其特征在于,所述根据所述颜色均值、颜色置信度和所述最大颜色误差计算颜色均值阈值,包括:
根据所述颜色置信度在预设的标准正态分布表中确定颜色标准分数;
根据所述最大颜色误差和所述颜色标准分数计算颜色均值阈值。
13.如权利要求1所述的渲染方法,其特征在于,所述基于所述当前时刻的光线路径渲染所述目标像素点,包括:
获取历史时刻的光线路径;
基于所述当前时刻的光线路径和所述历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息;
基于所述颜色贡献信息渲染所述目标像素点。
14.如权利要求13所述的渲染方法,其特征在于,所述当前时刻的光线路径中包括当前路径节点,所述历史时刻的光线路径包括历史路径节点,所述基于所述当前时刻的光线路径和所述历史时刻的光线路径进行路径贡献统计,得到颜色贡献信息,包括:
确定所述当前路径节点以及所述历史路径节点在虚拟场景中对应的虚拟物体;
根据所述当前路径节点以及所述历史路径节点在虚拟场景中对应的虚拟物体,确定所述当前路径节点以及所述历史路径节点的节点颜色贡献信息;
统计所述节点颜色贡献信息,得到颜色贡献信息。
15.一种渲染装置,其特征在于,包括:
目标单元,用于在虚拟场景中确定目标像素点,并获取当前时刻的迭代次数;
路径单元,用于基于所述当前时刻的迭代次数对所述目标像素点进行路径追踪,得到所述目标像素点在当前时刻的光线路径;
状态单元,用于确定所述当前时刻的光线路径的迭代状态;渲染单元,用于当所述迭代状态为停止迭代状态时,基于所述当前时刻的光线路径渲染所述目标像素点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116822.1A CN111354066B (zh) | 2020-02-25 | 2020-02-25 | 渲染方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116822.1A CN111354066B (zh) | 2020-02-25 | 2020-02-25 | 渲染方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111354066A true CN111354066A (zh) | 2020-06-30 |
CN111354066B CN111354066B (zh) | 2022-03-08 |
Family
ID=71197262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010116822.1A Active CN111354066B (zh) | 2020-02-25 | 2020-02-25 | 渲染方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111354066B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184873A (zh) * | 2020-10-19 | 2021-01-05 | 网易(杭州)网络有限公司 | 分形图形创建方法、装置、电子设备和存储介质 |
CN116612225A (zh) * | 2023-07-18 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894390A (zh) * | 2010-06-29 | 2010-11-24 | 浙江大学 | 一种非常数折射率介质中的光线跟踪方法 |
US20140313198A1 (en) * | 2013-04-22 | 2014-10-23 | Nvidia Corporation | System, method, and computer program product for performing path space filtering |
CN104239332A (zh) * | 2013-06-18 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 网页内容处理方法、装置及浏览器客户端 |
CN104658029A (zh) * | 2015-01-29 | 2015-05-27 | 浙江传媒学院 | 基于mcmc的镜面光线的渲染方法 |
US20160343161A1 (en) * | 2015-05-22 | 2016-11-24 | Gianluca Paladini | Coherent Memory Access in Monte Carlo Volume Rendering |
US20180315251A1 (en) * | 2016-09-27 | 2018-11-01 | Adobe Systems Incorporated | Rendering virtual environments utilizing full path space learning |
-
2020
- 2020-02-25 CN CN202010116822.1A patent/CN111354066B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894390A (zh) * | 2010-06-29 | 2010-11-24 | 浙江大学 | 一种非常数折射率介质中的光线跟踪方法 |
US20140313198A1 (en) * | 2013-04-22 | 2014-10-23 | Nvidia Corporation | System, method, and computer program product for performing path space filtering |
CN104239332A (zh) * | 2013-06-18 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 网页内容处理方法、装置及浏览器客户端 |
CN104658029A (zh) * | 2015-01-29 | 2015-05-27 | 浙江传媒学院 | 基于mcmc的镜面光线的渲染方法 |
US20160343161A1 (en) * | 2015-05-22 | 2016-11-24 | Gianluca Paladini | Coherent Memory Access in Monte Carlo Volume Rendering |
US20180315251A1 (en) * | 2016-09-27 | 2018-11-01 | Adobe Systems Incorporated | Rendering virtual environments utilizing full path space learning |
Non-Patent Citations (5)
Title |
---|
BOCHANG MOON ET AL: ""Robust image denoising using a virtual flash image for Monte Carlo?ray tracing"", 《COMPUTER GRAPHICS FORUM》 * |
刘成浩: "路径追踪中出射光线方向的快速采样方法", 《中国图象图形学报》 * |
湛少胜: ""基于Metropolis光线追踪的高逼真渲染方法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
袁雪: ""基于GPU集群的高度真实感并行渲染系统设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈熠韬: ""基于光线追踪的飞机红外图像仿真"", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184873A (zh) * | 2020-10-19 | 2021-01-05 | 网易(杭州)网络有限公司 | 分形图形创建方法、装置、电子设备和存储介质 |
CN112184873B (zh) * | 2020-10-19 | 2024-04-26 | 网易(杭州)网络有限公司 | 分形图形创建方法、装置、电子设备和存储介质 |
CN116612225A (zh) * | 2023-07-18 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN116612225B (zh) * | 2023-07-18 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111354066B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111354066B (zh) | 渲染方法、装置 | |
WO2021228031A1 (zh) | 渲染方法、设备以及系统 | |
CN108520552A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
US9892548B2 (en) | Lighting simulation analysis using light path expressions | |
CN111210497B (zh) | 模型渲染方法、装置、计算机可读介质及电子设备 | |
CN110478898B (zh) | 游戏中虚拟场景的配置方法及装置、存储介质及电子设备 | |
WO2024021557A1 (zh) | 反射光照确定、全局光照确定方法、装置、介质和设备 | |
WO2021190651A1 (zh) | 渲染质量调整方法以及相关设备 | |
WO2024078179A1 (zh) | 光照贴图降噪方法、装置、设备和介质 | |
CN111282271A (zh) | 移动终端游戏中的声音渲染方法、装置和电子设备 | |
CN115082611B (zh) | 光照渲染方法、装置、设备和介质 | |
WO2022025772A1 (en) | Path guiding for path-traced rendering | |
CN110930497A (zh) | 一种全局光照相交加速方法、装置及计算机存储介质 | |
CN113298924A (zh) | 一种场景的渲染方法、计算设备及存储介质 | |
Bashford‐Rogers et al. | A significance cache for accelerating global illumination | |
CN112015439B (zh) | 用户app兴趣的嵌入方法、装置、设备以及存储介质 | |
CN114596401A (zh) | 渲染方法、设备以及系统 | |
WO2006040691A2 (en) | Method to improve photorealistic 3d rendering of dynamic viewing angle by embedding shading results into the model surface representation | |
CN108280887B (zh) | 一种阴影图确定方法及装置 | |
US20160071308A1 (en) | Distribution Caching for Direct Lights | |
CN113313809A (zh) | 一种渲染方法和装置 | |
WO2023165175A1 (zh) | 渲染处理方法、装置、设备以及存储介质 | |
CN106327565B (zh) | 一种改进的高维空间自适应采样方法 | |
CN109089040A (zh) | 图像处理方法、图像处理装置及终端设备 | |
CN115212575B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024668 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |