CN113936097B - 体积云渲染方法、设备及存储介质 - Google Patents
体积云渲染方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113936097B CN113936097B CN202111165918.8A CN202111165918A CN113936097B CN 113936097 B CN113936097 B CN 113936097B CN 202111165918 A CN202111165918 A CN 202111165918A CN 113936097 B CN113936097 B CN 113936097B
- Authority
- CN
- China
- Prior art keywords
- volume cloud
- target scene
- point
- cloud
- distance field
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种体积云渲染方法、设备及存储介质。其中,在目标场景中渲染体积云时,获取目标场景的距离场信息,该距离场信息包括目标场景中的点到体积云的表面的最小距离。基于该距离场信息,可控制目标场景中的虚拟摄像机向屏幕上的多个像素点发出的射线进行步进,直至多条射线分别到达体积云的表面。在这种实施方式中,在进行光线步进时,利用了目标场景的距离场信息,可快速确定合适的步进长度,一方面可避免光线步进至体积云的内部,另一方面可加速光线步进至体积云的表面的速度。基于这种体积云渲染方法,可降低计算资源的消耗,有利于提升渲染性能,并有利于流畅地在终端设备上运行大场景巨型的体积云。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种体积云渲染方法、设备及存储介质。
背景技术
体积云(Volumetric Cloud)又可称为容积云或者体积雾,在渲染虚拟场景(例如游戏场景)时,通常使用图像引擎来模拟真实云雾半透明、无规则的表现效果。但是现有的渲染体积云的方式往往产生大量的性能消耗。因此,有待提出一种解决方案。
发明内容
本申请的多个方面提供一种体积云渲染方法、设备及存储介质,用以在降低体积云的渲染操作对渲染引擎的性能消耗的前提下,提升体积云的渲染效果。
本申请实施例提供一种体积云渲染方法,包括:获取待渲染的目标场景的距离场信息;所述距离场信息包括所述目标场景中的点到体积云的表面的最小距离;从所述目标场景中的虚拟摄像机所在的位置向屏幕上的多个像素点分别发射一条射线;根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面;根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状;根据所述体积云在所述三维空间中的形状,对所述体积云进行渲染。
进一步可选地,获取待渲染的目标场景的距离场信息,包括:获取所述目标场景的3D距离场贴图;所述3D距离场贴图中的任一贴图单元保存有所述贴图单元对应的点到所述体积云的表面的最小距离;从所述3D距离场贴图中,读取所述目标场景中的点到所述体积云的表面的最小距离,得到所述目标场景中的点的距离场信息。
进一步可选地,获取待渲染的目标场景的距离场信息之前,还包括:获取所述体积云的形状模型以及所述体积云在所述目标场景中的位置;根据所述体积云的形状模型以及所述体积云在所述目标场景中的位置,计算目标场景中的任意一点到所述体积云的表面的最小距离,得到所述目标场景的距离场信息。
进一步可选地,根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面,包括:针对所述多条射线中的任意一条射线,根据所述虚拟摄像机所在的点到所述体积云的表面的最小距离,沿所述射线对应的视线方向进行光线步进,到达步进点;根据所述步进点到所述体积云表面的最小距离,判断所述步进点是否位于所述体积云的表面上;若所述步进点位于所述体积云的表面上,则停止所述射线的步进操作,并根据所述虚拟摄像机到所述步进点的距离,确定所述虚拟摄像机在所述射线对应的视线方向上与所述体积云的表面的距离。
进一步可选地,还包括:若所述步进点未在所述体积云的表面上,则根据所述步进点到所述体积云的表面的最小距离,沿所述射线对应的视线方向继续进行光线步进,直至所述射线到达的新的步进点位于所述体积云的表面上。
进一步可选地,根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面,包括:获取所述目标场景的3D噪声贴图;对所述目标场景的距离场信息以及所述目标场景的3D噪声贴图进行叠加,得到所述目标场景的侵蚀后的距离场信息;根据所述侵蚀后的距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面。
进一步可选地,根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状,包括:根据所述多条射线的长度以及所述多条射线各自的视线方向对应的夹角,计算所述屏幕上的多个像素点到所述体积云的表面的深度值;根据所述屏幕上的多个像素点到所述体积云的表面的深度值,确定所述体积云在所述三维空间中的形状。
本申请实施例还提供一种电子设备,包括:存储器以及处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的体积云渲染方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现本申请实施例提供的方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的方法中的步骤。
本申请实施例提供的体积云渲染方法中,在目标场景中渲染体积云时,获取目标场景的距离场信息,该距离场信息包括目标场景中的点到体积云的表面的最小距离。基于该距离场信息,可控制目标场景中的虚拟摄像机向屏幕上的多个像素点发出的射线进行步进,直至多条射线分别到达体积云的表面。在这种实施方式中,在进行光线步进时,利用了目标场景的距离场信息,可快速确定合适的步进长度,一方面可避免光线步进至体积云的内部,另一方面可加速光线步进至体积云的表面的速度。基于这种体积云渲染方法,可降低计算资源的消耗,有利于提升渲染性能,并有利于流畅地在终端设备上运行大场景巨型的体积云。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的体积云渲染方法的流程示意图;
图2为本申请一示例性实施例提供的虚拟摄像机向屏幕上的多个像素点发射射线的示意图;
图3为本申请一示例性实施例提供的基于距离场的光线步进的示意图;
图4为本申请一示例性实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
体积云(Volumetric Cloud)又可称为容积云或者体积雾,在渲染虚拟场景(例如游戏场景)时,通常使用图像引擎来模拟真实云雾半透明、无规则的表现效果。
在一些方案中,可使用光线步进(Ray Marching)的方式进行体积云的渲染。在这种方式中,可通过将射线等长地向前拓展,采样3D噪声图,并将多次采样结果叠加,生成体积云。但是,这种光线步进的方式,往往需要大量的光线步进次数,且需要在体积云的内部计算浓度积分,因而产生大量的性能消耗。因此,有待提出一种解决方案。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,以下将结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的体积云渲染方法的流程示意图,如图1所示,该方法包括:
步骤101、获取待渲染的目标场景的距离场信息;所述距离场信息包括所述目标场景中的点到体积云的表面的最小距离。
步骤102、从所述目标场景中的虚拟摄像机所在的位置向屏幕上的多个像素点分别发射一条射线。
步骤103、根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面。
步骤104、根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状。
步骤105、根据所述体积云在所述三维空间中的形状,对所述体积云进行渲染。
本实施例可由电子设备实现,该电子设备可以是智能手机、平板电脑、计算机等终端设备,也可以是服务器设备,本实施例不做限制。其中,电子设备上可运行有可执行虚拟场景的渲染操作的渲染引擎。
其中,目标场景,可包括场景建模得到的任意的虚拟3D(3-dimensional,3维)场景,可以是游戏场景(例如大地图场景),或者可以动画场景等等,本实施例不做限制。目标场景中,包含体积云。
其中,距离场(Signed Distance Field),是一种计算距离的函数,输入一点的位置,基于距离场函数可输出该点到场景中的任意物体表面的最小距离。当该点位于物体内部时,距离场输出的值为负数;当该点位于物体外部时,距离场输出的值为正数;当该点位于物体表面时,该距离场输出的值为0。
在本实施例中,目标场景中的点的距离场信息,根据目标场景中的点与体积云的相对位置关系计算得到的。该距离场信息,包含了目标场景中的任意一点到目标场景中的体积云的表面的最小距离。即,目标场景的距离场信息,包含目标场景中的所有点各自的距离场信息。
在体积云的渲染过程中,可采用(Sphere marching,球体步进)算法,以距离场信息为步长进行光线步进。首先,可从目标场景中的虚拟摄像机所在的位置向屏幕上的多个像素点分别发射一条射线,该射线用于模拟像素点对应的光线(视线)。其中,不同像素点对应的射线的角度不同,即不同像素点的视线方向不同,如图2所示的射线L1、L2以及L3。
在执行Sphere marching算法时,可根据目标场景中的点的距离场信息,控制该多个像素点对应的多条射线分别沿视线方向进行步进,直至该多条射线分别到达体积云的表面。其中,每次步进的距离,可视为球体的半径,步进的过程可视为基于半径沿视线方向绘制球体的过程。虚拟摄像机位于目标场景中,虚拟摄像机所在的位置(即视点)到体积云的表面的最小距离,可从目标场景中的点的距离场信息中获取。在首次进行光线步进时,根据虚拟相机所在的点到体积云的表面的最小距离进行第一次步进。其中,每一次步进操作在目标空间中到达的点,可称为一个步进点。每到达一个步进点,可从目标场景的距离场信息中读取该步进点到体积云的表面的最小距离,并根据该距离判断射线是否步进到体积云的表面。若射线步进到体积云的表面,则停止步进。若射线未步进到体积云的表面,则根据步进点到体积云的表面的最小距离继续步进,直至射线步进到体积云的表面。
由于距离场信息表达的是目标场景中的点到体积云的表面的最小距离,因此,在根据距离场信息进行光线步进时,即使体积云的为不规则的物体,也可确保光线不会进入体积云的内部,并会最终到达体积云的表面。同时,根据距离场信息进行光线步进,无需通过大量计算即可快速确定合适的步进长度,从而加速光线步进至体积云的表面的速度。
在多个像素点对应的多条射线分别步进到体积云的表面时,可根据多条射线各自的长度,确定体积云在目标场景所在的三维空间中的形状。基于该体积云在三维空间中的形状,可对该体积云进行渲染。
在本实施例中,在渲染体积云时,在进行光线步进时,利用了目标场景的距离场信息,可快速确定合适的步进长度,一方面可避免光线步进至体积云的内部,另一方面可加速光线步进至体积云的表面的速度。基于这种体积云渲染方法,可降低计算资源的消耗,有利于提升渲染性能,并有利于流畅地在终端设备上运行大场景巨型的体积云。
除此之外,在本实施例中,基于距离场信息渲染体积云时,入射至体积云内的光线可在体积云的内部(即内表面上)进行不断散射。体积云的表面的不规则性可使得光线在体积云的内部具有较强的散射能力,从各个方向散射出的光可穿透体积云的表面,从而形成体积云的“自放光”的效果。这种效果使得体积云的具有较强的半透感、透光感。同时,在体积云的凹陷处,透光感更强。
在一些可选的实施例中,获取待渲染的目标场景的距离场信息之前,可预先计算目标场景的距离场信息。可选地,可获取体积云的形状模型以及体积云在目标场景中的位置,并根据体积云的形状模型以及体积云在目标场景中的位置,计算目标场景中的任意一点到体积云的表面的最小距离,得到目标场景的距离场信息。其中,计算任意一点到体积云的表面的最小距离时,可基于距离场函数进行计算。计算得到的距离场信息,可存储到目标场景的资源文件中。其中,距离场信息可采用数组结构进行存储,或者采用键值存储方式进行存储,本实施例不做限制。
在一些可选的实施例中,目标场景的距离场信息,可通过目标场景的3D距离场贴图进行存储。其中,3D距离场贴图中的任一贴图单元保存有该贴图单元对应的点到体积云的表面的最小距离。3D距离场贴图中,贴图单元的坐标与目标场景中的点的坐标一一对应,每一贴图单元,对应于目标场景中的一个点。基于此,获取待渲染的目标场景的距离场信息时,渲染引擎可获取目标场景的3D距离场贴图,从该3D距离场贴图中,读取目标场景中的点到体积云的表面的最小距离,得到目标场景中的点的距离场信息。
例如,确定虚拟摄像机的视点后,可根据该视点在目标场景中的位置,从3D距离场贴图中,确定该视点对应的贴图单元,并从该贴图单元存储的信息中,读取该视点到体积云的表面的最小距离。又例如,光线步进到某一步进点时,可根据该步进点在目标场景中的位置,从3D距离场贴图中,确定该步进点对应的贴图单元,并从该贴图单元存储的信息中,读取该步进点到体积云的表面的最小距离。
以下将以任意一个像素点对应的射线为例,示例性地介绍根据距离场信息进行光线步进的实施方式。
可选地,针对多条射线中的任意一条射线,首先可根据虚拟摄像机所在的点(即视点)在目标场景中的位置,从目标场景的距离场信息中,确定虚拟摄像机到体积云的表面的最小距离。接下来,根据虚拟摄像机所在的点到体积云的表面的最小距离,沿该射线对应的视线方向进行光线步进,到达步进点。其中,该射线对应的视线方向,可视为虚拟摄像机与该射线对应的像素点的连线方向,如图2所示。
到达步进点后,可根据步进点在目标场景中的位置,从目标场景的距离场信息中,确定步进点到体积云的表面的最小距离。基于步进点到体积云表面的最小距离,可判断该步进点是否位于体积云的表面上。基于距离场的定义可知,若步进点到体积云表面的最小距离大于0,则步进点位于体积云之外,并未到达体积云的表面上。若步进点到体积云的表面的最小距离等于0,则步进点位于体积云的表面上。若步进点到体积云的表面的最小距离小于0,则步进点位于体积云的内部(本方案并不会出现如此情形)。
因此,基于步进点到体积云表面的最小距离,可判断该步进点是否位于体积云的表面上时,可判断该最小距离是否大于0,若大于0,则确定还未步进到体积云的表面上,若等于0,则确定已步进到体积云的表面上。
若步进点位于所述体积云的表面上,则可停止该射线的步进操作,并根据虚拟摄像机到步进点的距离,确定虚拟摄像机在该射线对应的视线方向上与所述体积云的表面的距离。
可选地,若该步进点未在体积云的表面上,则可根据该步进点到体积云的表面的最小距离,沿射线对应的视线方向继续进行光线步进,直至射线到达的新的步进点位于体积云的表面上。其中,在射线每到达一个步进点时,可根据该步进点对应的距离场信息,判断到达体积云的表面,从而判断是否需要继续步进。
例如,在一些实施例中,如图3所示,第一次步进时,可根据摄像机与体积云的表面的最小距离进行步进,射线到达第一步进点A;第一步进点A与体积云的表面的距离大于0,此时,可根据第一步进点A与体积云的表面的最小距离进行第二次步进,射线到达第二步进点B;第二步进点B与体积云的表面的距离大于0,此时,可根据第二步进点B与体积云的表面的最小距离进行第三次步进,射线到达第三步进点C;第三步进点C与体积云的表面的距离大于0,此时,可根据第三步进点C与体积云的表面的最小距离进行第四次步进,射线到达第四步进点D;第四步进点D与体积云的表面的距离大于0,此时,可根据第四步进点D与体积云的表面的最小距离进行第五次步进,射线到达第五步进点E;第四步进点E与体积云的表面的距离等于0,此时,可确定光线步进至体积云的表面上。
如图3所示,在每次步进时,以视点的距离场或者步进点的距离场作为步进距离,相当于以视点或者步进点为球心,绘制以距离场为半径的圆球。该绘制得到的圆球与体积云相切,并与射线产生新的交点。若该新的交点位于体积云的表面上,则不再继续步进。若该新的交点位于体积云外,则继续以该新的交点为球心,绘制以该新的交点的距离场为半径的圆球,直至下一个交点位于体积云的表面上。
在这种实施方式中,光线每次步进时采用的步进长度,可使得绘制出的圆与体积云相切,可确保光线不会进入体积云的内部,且每次步进均可获取一个合适的步进长度,从而可加速步进的计算过程。
在一些可选的实施例中,为进一步丰富体积云表面的细节,可使用噪声对距离场表示的体积云的表面进行侵蚀,并采用侵蚀结果作为Sphere Marching时的距离场采样采样结果。以下将进行示例性说明。
可选地,根据目标场景的距离场信息,控制多个像素点对应的多条射线分别沿视线方向进行步进时,可获取目标场景的3D噪声贴图,并对目标场景的距离场信息以及目标场景的3D噪声贴图进行叠加,得到目标场景的侵蚀后的距离场信息。接下来,可根据侵蚀后的距离场信息,控制多个像素点对应的多条射线分别沿视线方向进行步进,直至多条射线分别到达体积云的表面。
也就是说,每条射线的步进长度,是从目标场景的侵蚀后的距离场信息中获取的。当距离场信息采用3D距离场贴图进行表示时,侵蚀后的距离场贴图=距离场贴图+设定系数*3D噪声贴图。其中,设定系数可以根据需求进行设置,本实施例不做限制。基于这种实施方式,可通过设置3D噪声贴图,设计体积云的细节信息,从而渲染得到真实性更高的体积云。
通过上述实施例提供的基于距离场以及光线步进的方法,可计算得到虚拟摄像机在每条射线对应的视线方向上与体积云的表面的距离。接下来,可对上述多条射线进行空间转换,得到体积云在目标场景所在的三维空间(即世界空间)中的形状。
可选地,可根据该多条射线的长度以及该多条射线各自的视线方向对应的夹角,计算屏幕上的多个像素点到体积云的表面的深度值;根据该屏幕上的多个像素点到体积云的表面的深度值,确定体积云在该三维空间中的形状。
以图3中的一条射线L0为例。L0对应的射线步进到点E时,到达体积云的表面,L0的长度D(L0)=OE。其中O表示虚拟摄像机的视点,射线L0对应的视线方向相对于垂直方向的夹角为α,像素点P到体积云表面的深度D(PE)=D(L0)*sinα。
基于上述方法,可计算得到每个像素点到达体积云表面的深度信息,从而确定体积云在三维空间中的形状,并根据体积云在三维空间中的形状进行渲染展示。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤103的执行主体可以为设备A;又比如,步骤101和102的执行主体可以为设备A,步骤103的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4是本申请一示例性实施例提供的电子设备的结构示意图,该电子设备可用于执行前述各实施例记载的体积云渲染方法。如图4所示,该电子设备包括:存储器401以及处理器402。
存储器401,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,第一资源等。
其中,存储器401可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器402,与存储器401耦合,用于执行存储器401中的计算机程序,以用于:获取待渲染的目标场景的距离场信息;所述距离场信息包括所述目标场景中的点到体积云的表面的最小距离;从所述目标场景中的虚拟摄像机所在的位置向屏幕上的多个像素点分别发射一条射线;根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面;根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状;根据所述体积云在所述三维空间中的形状,对所述体积云进行渲染。
进一步可选地,处理器402在获取待渲染的目标场景的距离场信息时,具体用于:获取所述目标场景的3D距离场贴图;所述3D距离场贴图中的任一贴图单元保存有所述贴图单元对应的点到所述体积云的表面的最小距离;从所述3D距离场贴图中,读取所述目标场景中的点到所述体积云的表面的最小距离,得到所述目标场景中的点的距离场信息。
进一步可选地,处理器402在获取待渲染的目标场景的距离场信息之前,还用于:获取所述体积云的形状模型以及所述体积云在所述目标场景中的位置;根据所述体积云的形状模型以及所述体积云在所述目标场景中的位置,计算目标场景中的任意一点到所述体积云的表面的最小距离,得到所述目标场景的距离场信息。
进一步可选地,处理器402在根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面时,具体用于:针对所述多条射线中的任意一条射线,根据所述虚拟摄像机所在的点到所述体积云的表面的最小距离,沿所述射线对应的视线方向进行光线步进,到达步进点;根据所述步进点到所述体积云表面的最小距离,判断所述步进点是否位于所述体积云的表面上;若所述步进点位于所述体积云的表面上,则停止所述射线的步进操作,并根据所述虚拟摄像机到所述步进点的距离,确定所述虚拟摄像机在所述射线对应的视线方向上与所述体积云的表面的距离。
进一步可选地,处理器402还用于:若所述步进点未在所述体积云的表面上,则根据所述步进点到所述体积云的表面的最小距离,沿所述射线对应的视线方向继续进行光线步进,直至所述射线到达的新的步进点位于所述体积云的表面上。
进一步可选地,处理器402在根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面时,具体用于:获取所述目标场景的3D噪声贴图;对所述目标场景的距离场信息以及所述目标场景的3D噪声贴图进行叠加,得到所述目标场景的侵蚀后的距离场信息;根据所述侵蚀后的距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面。
进一步可选地,处理器402在根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状时,具体用于:根据所述多条射线的长度以及所述多条射线各自的视线方向对应的夹角,计算所述屏幕上的多个像素点到所述体积云的表面的深度值;根据所述屏幕上的多个像素点到所述体积云的表面的深度值,确定所述体积云在所述三维空间中的形状。
进一步,如图4所示,该电子设备还包括:显示组件403、通信组件404、电源组件405、音频组件406等其它组件。图4中仅示意性给出部分组件,并不意味着电子设备只包括图4所示组件。
其中,显示组件403包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
其中,通信组件404被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
其中,电源组件405,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
其中,音频组件406,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本实施例中,在目标场景中渲染体积云时,获取目标场景的距离场信息,该距离场信息包括目标场景中的点到体积云的表面的最小距离。基于该距离场信息,可控制目标场景中的虚拟摄像机向屏幕上的多个像素点发出的射线进行步进,直至多条射线分别到达体积云的表面。在这种实施方式中,在进行光线步进时,利用了目标场景的距离场信息,可快速确定合适的步进长度,一方面可避免光线步进至体积云的内部,另一方面可加速光线步进至体积云的表面的速度。基于这种体积云渲染方法,可降低计算资源的消耗,有利于提升渲染性能,并有利于流畅地在终端设备上运行大场景巨型的体积云。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由电子设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序被处理器执行时,致使处理器实现上述方法实施例中可由电子设备执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种体积云渲染方法,其特征在于,包括:
获取待渲染的目标场景的距离场信息;所述距离场信息包括所述目标场景中的点到体积云的表面的最小距离;所述距离场信息通过所述目标场景的3D距离场贴图进行存储;所述3D距离场贴图中的任一贴图单元保存有所述贴图单元对应的所述目标场景中的一个点到体积云的表面的最小距离;所述3D距离场贴图中,所述任一贴图单元对应于所述目标场景中的一个点;所述任一贴图单元的坐标与所述目标场景中的一个点的坐标一一对应;
从所述目标场景中的虚拟摄像机所在的位置向屏幕上的多个像素点分别发射一条射线;
根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面;
根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状;
根据所述体积云在所述三维空间中的形状,对所述体积云进行渲染;
根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面,包括:获取所述目标场景的3D噪声贴图;所述3D噪声贴图用于:设计所述体积云的细节信息;对所述目标场景的距离场信息以及所述目标场景的3D噪声贴图进行叠加,得到所述目标场景的侵蚀后的距离场信息;根据所述侵蚀后的距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面。
2.根据权利要求1所述的方法,其特征在于,获取待渲染的目标场景的距离场信息,包括:
获取所述目标场景的3D距离场贴图;所述3D距离场贴图中的任一贴图单元保存有所述贴图单元对应的点到所述体积云的表面的最小距离;
从所述3D距离场贴图中,读取所述目标场景中的点到所述体积云的表面的最小距离,得到所述目标场景中的点的距离场信息。
3.根据权利要求1所述的方法,其特征在于,获取待渲染的目标场景的距离场信息之前,还包括:
获取所述体积云的形状模型以及所述体积云在所述目标场景中的位置;
根据所述体积云的形状模型以及所述体积云在所述目标场景中的位置,计算目标场景中的任意一点到所述体积云的表面的最小距离,得到所述目标场景的距离场信息。
4.根据权利要求1所述的方法,其特征在于,根据所述距离场信息,控制所述多个像素点对应的多条射线分别沿视线方向进行步进,直至所述多条射线分别到达所述体积云的表面,包括:
针对所述多条射线中的任意一条射线,根据所述虚拟摄像机所在的点到所述体积云的表面的最小距离,沿所述射线对应的视线方向进行光线步进,到达步进点;
根据所述步进点到所述体积云表面的最小距离,判断所述步进点是否位于所述体积云的表面上;
若所述步进点位于所述体积云的表面上,则停止所述射线的步进操作,并根据所述虚拟摄像机到所述步进点的距离,确定所述虚拟摄像机在所述射线对应的视线方向上与所述体积云的表面的距离。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述步进点未在所述体积云的表面上,则根据所述步进点到所述体积云的表面的最小距离,沿所述射线对应的视线方向继续进行光线步进,直至所述射线到达的新的步进点位于所述体积云的表面上。
6.根据权利要求1-5任一项所述的方法,其特征在于,根据所述多条射线的长度,确定所述体积云在所述目标场景所在的三维空间中的形状,包括:
根据所述多条射线的长度以及所述多条射线各自的视线方向对应的夹角,计算所述屏幕上的多个像素点到所述体积云的表面的深度值;
根据所述屏幕上的多个像素点到所述体积云的表面的深度值,确定所述体积云在所述三维空间中的形状。
7.一种电子设备,其特征在于,包括:存储器、中央处理器以及图形处理器;
所述存储器用于存储一条或多条计算机指令;
所述中央处理器用于执行所述一条或多条计算机指令以用于:调用所述图形处理器执行权利要求1-6任一项所述的方法中的步骤。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被执行时能够实现权利要求1-6任一项所述的方法中的步骤。
9.一种计算机程序产品,包括计算机程序/指令,其特征在于,当计算机程序被处理器执行时,致使处理器实现权利要求1-6任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165918.8A CN113936097B (zh) | 2021-09-30 | 2021-09-30 | 体积云渲染方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165918.8A CN113936097B (zh) | 2021-09-30 | 2021-09-30 | 体积云渲染方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113936097A CN113936097A (zh) | 2022-01-14 |
CN113936097B true CN113936097B (zh) | 2023-10-20 |
Family
ID=79277913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111165918.8A Active CN113936097B (zh) | 2021-09-30 | 2021-09-30 | 体积云渲染方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113936097B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051713B (zh) * | 2022-08-04 | 2023-10-31 | 荣耀终端有限公司 | 渲染方法、电子设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968216A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
CN111968215A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN112200900A (zh) * | 2020-12-02 | 2021-01-08 | 成都完美时空网络技术有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
CN112190935A (zh) * | 2020-10-09 | 2021-01-08 | 网易(杭州)网络有限公司 | 动态体积云的渲染方法、装置及电子设备 |
CN112263837A (zh) * | 2020-11-16 | 2021-01-26 | 腾讯科技(深圳)有限公司 | 虚拟环境中的天气渲染方法、装置、设备及存储介质 |
CN112669432A (zh) * | 2020-12-23 | 2021-04-16 | 北京像素软件科技股份有限公司 | 容积云渲染方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090040220A1 (en) * | 2007-02-05 | 2009-02-12 | Jonathan Gibbs | Hybrid volume rendering in computer implemented animation |
-
2021
- 2021-09-30 CN CN202111165918.8A patent/CN113936097B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968216A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
CN111968215A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN112190935A (zh) * | 2020-10-09 | 2021-01-08 | 网易(杭州)网络有限公司 | 动态体积云的渲染方法、装置及电子设备 |
CN112263837A (zh) * | 2020-11-16 | 2021-01-26 | 腾讯科技(深圳)有限公司 | 虚拟环境中的天气渲染方法、装置、设备及存储介质 |
CN112200900A (zh) * | 2020-12-02 | 2021-01-08 | 成都完美时空网络技术有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
CN112669432A (zh) * | 2020-12-23 | 2021-04-16 | 北京像素软件科技股份有限公司 | 容积云渲染方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
动态体积云的建模、实时渲染及移动端加速方法;兰未;《中国优秀硕士论文全文数据库 信息科技辑》;20200815;正文第3-5章 * |
基于三维体积纹理的云渲染研究;邹坤宇 等;《信息与电脑》;20210531;正文第68-70页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113936097A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11605204B2 (en) | Image processing for augmented reality | |
US10909394B2 (en) | Real-time multiple vehicle detection and tracking | |
CN112073748B (zh) | 全景视频的处理方法、装置及存储介质 | |
CN113741698A (zh) | 一种确定和呈现目标标记信息的方法与设备 | |
CN111260766A (zh) | 虚拟光源处理方法、装置、介质及电子设备 | |
TWI752473B (zh) | 圖像處理方法及裝置、電子設備和電腦可讀儲存媒體 | |
CN114677386A (zh) | 特效图像处理方法、装置、电子设备及存储介质 | |
CN106097428B (zh) | 三维模型测量信息的标注方法及装置 | |
CN113936097B (zh) | 体积云渲染方法、设备及存储介质 | |
CN114757837A (zh) | 目标模型的渲染方法、设备及存储介质 | |
CN113936096A (zh) | 体积云的定制化渲染方法、设备及存储介质 | |
CN109816791B (zh) | 用于生成信息的方法和装置 | |
CN113936098B (zh) | 体积云交互时的渲染方法、设备及存储介质 | |
KR102551914B1 (ko) | 인터랙티브 객체 뷰어 생성 방법 및 시스템 | |
US11217011B2 (en) | Providing semantic-augmented artificial-reality experience | |
CN110659024A (zh) | 图形资源转换方法、装置、电子设备及存储介质 | |
CN113694518B (zh) | 一种冰冻效果的处理方法、装置、存储介质及电子设备 | |
CN114170359A (zh) | 体积雾渲染方法、装置、设备及存储介质 | |
CN112308766B (zh) | 一种图像数据展示方法、装置、电子设备及存储介质 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN111862342A (zh) | 增强现实的纹理处理方法、装置、电子设备及存储介质 | |
CN114117161A (zh) | 展示方法及装置 | |
CN114332347A (zh) | 体积云的数据存储方法、设备及存储介质 | |
WO2021160071A1 (en) | Feature spatial distribution management for simultaneous localization and mapping | |
CN117389502A (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 |