CN114581589A - 图像处理方法及相关装置 - Google Patents
图像处理方法及相关装置 Download PDFInfo
- Publication number
- CN114581589A CN114581589A CN202011379098.8A CN202011379098A CN114581589A CN 114581589 A CN114581589 A CN 114581589A CN 202011379098 A CN202011379098 A CN 202011379098A CN 114581589 A CN114581589 A CN 114581589A
- Authority
- CN
- China
- Prior art keywords
- image
- rendered
- ray tracing
- target object
- color
- 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.)
- Pending
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/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种图像处理方法,应用于算力受限的电子设备。该方法包括:获取待渲染数据;对所述待渲染数据进行光栅化处理,得到第一图像;通过标识标记第一图像中的目标物体,并对该目标物体进行光线追踪处理,得到第二图像。由于只对图像中的局部物体进行光线追踪处理,降低了图像渲染的算力要求,使得算力受限的设备也能够采用光线追踪方法实现图像渲染,提高了图像渲染的效果。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种图像处理方法及相关装置。
背景技术
随着计算机行业的迅速发展,人们对图像的要求日益增高。采用传统的渲染方法对三维场景进行渲染所得到的图像的品质一般,往往难以呈现逼真的画面。基于此,光线追踪技术应运而生。
光线追踪(Ray Tracing,RT)技术是指通过追踪从摄像机发出的每条光线来实现反射、折射、阴影或焦散等效果,从而模拟出真实的虚拟场景,进而渲染得到逼真的图像。然而,由于光线追踪过程中需要追踪场景中的每一条光线,其计算开销很大。
在相关技术中,光线追踪技术往往应用于算力较强的设备(例如搭载有独立显卡的个人电脑)上,而算力受限的设备(例如移动设备)上往往无法应用该光线追踪技术,从而导致算力受限的设备上难以获得较佳的渲染效果。
发明内容
本申请提供了一种图像处理方法,通过采用光栅化处理对待渲染数据进行一次渲染,得到第一图像,再对第一图像中具有标识的物体通过光线追踪处理进行二次渲染,以提高渲染效果。由于只对图像中的局部物体进行光线追踪处理,降低了图像渲染的算力要求,使得算力受限的设备也能够采用光线追踪方法实现图像渲染,提高了图像渲染的效果。
本申请第一方面提供一种图像处理方法,该方法可以应用于算力受限的电子设备中,该电子设备能够执行图像渲染过程。该方法包括:电子设备获取待渲染数据,该待渲染数据可以包括3D场景中的模型以及模型的属性信息,例如天空、房屋等模型以及这些模型的颜色、材质等属性信息。电子设备通过前向渲染方法或延迟渲染方法对所述待渲染数据进行光栅化处理,得到第一图像。电子设备对第一图像中具有标识的目标物体进行光线追踪处理,得到第二图像,所述标识用于标记待执行光线追踪处理的物体,即具有该标识的目标物体为待执行光线追踪处理的物体。示例性地,该目标物体例如可以为能够显示较明显的光影效果的物体,例如地板、镜子或车窗等物体。
也就是说,电子设备只对第一图像中具有标识的目标物体进行光线追踪处理,对没有标识的物体,电子设备则不进行光线追踪处理。其中,目标物体具有标识可以通过多种方式来实现,在一种方式中,目标物体具有对应的特定字段,则可以认为目标物体具有标识;在另一种方式中,目标物体具有对应的特定字段且该特定字段的值为预设值,则可以认为目标物体具有标识。
本方案中,通过采用光栅化处理对待渲染数据进行一次渲染,得到第一图像,再对第一图像中具有标识的物体通过光线追踪处理进行二次渲染,以提高渲染效果。由于只对图像中的局部物体进行光线追踪处理,降低了图像渲染的算力要求,使得算力受限的设备也能够采用光线追踪方法实现图像渲染,提高了图像渲染的效果。
在一种可能的实现方式中,所述标识还用于标记光线追踪处理方式,该光线追踪处理方式例如可以包括反射、折射、阴影或焦散等方式。这样,在电子设备对第一图像中的目标物体进行光线追踪处理的过程中,电子设备可以根据目标物体的标识确定该目标物体需要执行的光线追踪处理方式,并基于该光线追踪处理方式实现光线追踪处理。例如,在第一图像中的目标物体为地板,且该地板的标识的值为0时,电子设备可以对地板执行光线追踪,且光线追踪处理方式为反射。
通过采用标识标记光线追踪处理方式,可以避免电子设备对目标物体的材质进行分析后再基于目标物体的材质选择光线追踪处理方法,提高了电子设备执行光线追踪处理的效率。
在一种可能的实现方式中,所述待渲染数据包括所述目标物体和所述目标物体的材质参数;电子设备可以是根据所述目标物体的材质参数确定所述目标物体的标识。例如,在地板的材质参数中的粗糙度为0时,电子设备可以确定并生成地板的标识,且该标识的值为0,即地板对应的光线追踪方式为反射。通过由电子设备基于目标物体的材质参数确定目标物体的标识,能够省去人工为目标物体添加标识的过程,节省了人力物力。
在一种可能的实现方式中,电子设备对第一图像中的目标物体进行光线追踪处理,包括:电子设备获取所述第一图像中的目标物体在三维场景中的位置,即电子设备通过坐标系变换的方式将目标物体在第一图像中的坐标系变换为三维场景中的坐标系,以得到目标物体在三维场景中的位置。根据所述目标物体在三维场景中的位置,电子设备执行光线追踪处理,得到光线追踪结果。最后,电子设备根据所述光线追踪结果更新所述第一图像中的目标物体的颜色,得到所述第二图像。
本方案中,电子设备通过获取图像中的目标物体在三维场景中的位置,来执行光线追踪处理,从而实现在光栅化处理后得到的图像的基础上,对图像中的目标物体进行光线追踪处理,有效地提高了图像的整体渲染效果,且算力要求低。
在一种可能的实现方式中,电子设备对第一图像中的目标物体进行光线追踪处理,得到第二图像,包括:电子设备根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果;电子设备根据所述光线追踪结果,更新所述目标物体在所述第一图像中的颜色,得到第二图像。
本方案中,电子设备通过基于光线追踪的结果来更新目标物体在第一图像中的颜色来实现光线追踪处理,能够尽可能减少对现有技术的改动,提高方案的可实现性。
在一种可能的实现方式中,电子设备根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果,可以包括:电子设备确定所述第一图像中的目标像素,所述目标像素具有所述标识,所述目标物体包括一个或多个所述目标像素;电子设备通过坐标变换的方式获取所述目标像素在三维场景中的目标位置,并根据所述目标位置以及所述标识进行光线追踪,以得到光线与所述三维场景的交点。在确定交点之后,电子设备可以计算该交点的颜色,然后基于光线追踪方式将该交点的颜色与目标像素原先的颜色进行融合,从而更新得到目标像素的新的颜色。也就是说,在光线追踪处理的实际过程中,电子设备可以是以第一图像中的像素为单位,对每个像素进行光线追踪处理,从而实现对目标物体的光线追踪处理。
本实施例中,电子设备通过对具有标识的每个像素进行光线追踪处理,并且基于光线追踪所得到的交点确来更新像素的颜色,从而实现光线追踪处理,有效提高图像的整体渲染效果。
在一种可能的实现方式中,所述电子设备根据所述交点的颜色,更新所述目标像素的颜色,包括:电子设备根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影;若所述交点在所述第一图像或第三图像上具有对应的投影像素,则根据所述投影像素的颜色更新所述目标像素的颜色;若所述交点在所述第一图像或第三图像上不具有对应的投影像素,则计算所述交点的颜色,并根据所述交点的颜色更新所述目标像素的颜色;其中,所述第三图像为所述第二图像的前一帧图像。
简单来说,在电子设备进行图像渲染的过程中,电子设备并不会实时对3D场景中的所有物体进行渲染。电子设备通常是对当前要显示于屏幕上的物体进行渲染,以得到渲染好的图像并显示于屏幕上。如果该交点已在渲染前一帧图像的过程中进行了渲染并显示于图像上(即第三图像),或者该交点已在渲染当前帧图像的过程中进行了渲染并显示于图像上(即第一图像),则可以基于该交点在前一帧图像或当前帧图像上对应的像素点的颜色,确定该交点的颜色。即,通过复用前一帧图像或当前帧图像上像素的颜色来获得交点的颜色,从而避免重新计算该交点的颜色,减少了计算量。
在一种可能的实现方式中,所述电子设备根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点,包括:电子设备获取加速结构,所述加速结构是基于所述三维场景得到的,所述加速结构例如可以包括但不限于层次包围盒(BoundingVolume Hierarchy,BVH)、均匀网格(Uniform grid)或k维树(k-dimensional tree,kd-tree)等结构;根据所述目标位置以及所述标识,通过所述加速结构进行光线追踪,得到光线与所述三维场景的交点。通过加速结构来实现光线追踪处理,加快电子设备寻找交点的速度,提高电子设备执行光线追踪的效率。
在一种可能的实现方式中,所述电子设备对所述待渲染数据进行光栅化处理,得到第一图像,包括:电子设备对所述待渲染数据进行无光照渲染,得到第四图像;电子设备根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,所述几何缓冲区用于存储像素对应的属性参数;电子设备根据所述几何缓冲区对所述第四图像中的像素进行光照计算,得到所述第一图像。
在一种可能的实现方式中,所述电子设备根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,包括:若第四图像中的待渲染物体为所述目标物体,则根据所述待渲染物体的属性信息和第一分辨率生成所述待渲染物体对应的第一几何缓冲区;若第四图像中的待渲染物体位于所述目标物体的周边区域,则根据所述待渲染物体的属性信息和第二分辨率生成所述待渲染物体对应的第二几何缓冲区若第四图像中的待渲染物体位于背景区域,则根据所述待渲染物体的属性信息和第三分辨率生成所述待渲染物体对应的第三几何缓冲区;其中,所述待渲染数据包括所述待渲染物体,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率,所述第一几何缓冲区、所述第二几何缓冲区和所述第三几何缓冲区用于存储颜色属性参数。
在一种可能的实现方式中,所述电子设备根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,还包括:电子设备根据所述待渲染物体的属性信息和第四分辨率生成所述待渲染物体对应的第四几何缓冲区,所述第四几何缓冲区用于存储的属性参数不为颜色属性参数;所述第四分辨率小于所述第一分辨率。
简单来说,电子设备在生成第四图像中的像素点对应的G-buffer之前,电子设备可以确定相应的待渲染物体,即需显示在第四图像中的物体,然后根据待渲染物体的具体信息,确定生成G-buffer的分辨率,最后基于该分辨率生成待渲染物体对应的G-buffer,从而得到第四图像中的像素点对应的G-buffer。通过采用不同的分辨率来生成待渲染物体对应的G-buffer,可以减少非目标物体对应的G-buffer,能够有效降低电子设备的计算量,并且节省存储空间,降低对电子设备的输入输出(input output,I/O)带宽的要求。
在一种可能的实现方式中,所述电子设备获取待渲染数据,包括:电子设备获取三维场景数据以及服务器发送的第五图像,所述第五图像为由服务器渲染好的背景图像。这样,电子设备可以只渲染3D场景中非背景区域的部分,并将渲染好的图像与服务器下发的背景图像进行融合,即可得到完整的且渲染好的图像。其中,服务器所发送的背景图像是指只包括有背景区域的图像,即该背景图像中只包括有远处的背景。例如,服务器可以对天空、山峰、大海或远处的高楼大厦等背景进行渲染,得到对应的背景图像。
示例性地,在一种可能的场景下,电子设备中可以运行有游戏应用,服务器实时渲染3D场景中的背景区域,得到背景图像并将该背景图像下发给电子设备。电子设备在运行游戏应用的过程中,对3D场景中的非背景区域进行渲染,并结合服务器下发的背景图像,得到渲染好的图像,以显示在屏幕上。
可选的,在电子设备所运行的游戏应用为多用户同时在线的网络游戏时,服务器所渲染得到的背景图像还可以分别下发给多个不同的电子设备。不同的电子设备根据实际需要显示的内容,分别进行个性化渲染,以在屏幕上显示不同的图像。
通过由服务器实现背景区域的渲染,可以减少电子设备的渲染计算量,降低对电子设备的算力要求。
本申请第二方面提供一种电子设备,包括获取单元和处理单元;所述获取单元,用于获取待渲染数据;所述处理单元,用于对所述待渲染数据进行光栅化处理,得到第一图像;所述处理单元,还用于对第一图像中的目标物体进行光线追踪处理,得到第二图像;其中,所述目标物体具有标识,所述标识用于标记待执行光线追踪处理的物体。
在一种可能的实现方式中,所述标识还用于标记光线追踪处理方式。
在一种可能的实现方式中,所述光线追踪处理方式包括反射、折射、阴影或焦散。
在一种可能的实现方式中,所述获取单元,还用于获取所述第一图像中的目标物体在三维场景中的位置;所述处理单元,还用于根据所述目标物体在三维场景中的位置,执行光线追踪处理,得到光线追踪结果;所述处理单元,还用于根据所述光线追踪结果更新所述第一图像中的目标物体的颜色,得到所述第二图像。
在一种可能的实现方式中,所述处理单元,还用于:根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果;根据所述光线追踪结果,更新所述目标物体在所述第一图像中的颜色,得到第二图像。
在一种可能的实现方式中,所述处理单元,还用于确定所述第一图像中的目标像素,所述目标像素具有所述标识,所述目标物体包括一个或多个所述目标像素;所述获取单元,还用于获取所述目标像素在三维场景中的目标位置;所述处理单元,还用于根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点;处理单元,还用于根据所述交点的颜色,更新所述目标像素的颜色。
在一种可能的实现方式中,处理单元,还用于:根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影;若所述交点在所述第一图像或第三图像上具有对应的投影像素,则根据所述投影像素的颜色更新所述目标像素的颜色;若所述交点在所述第一图像或第三图像上不具有对应的投影像素,则计算所述交点的颜色,并根据所述交点的颜色更新所述目标像素的颜色;其中,所述第三图像为所述第二图像的前一帧图像。
在一种可能的实现方式中,所述获取单元,还用于获取加速结构,所述加速结构是基于所述三维场景得到的;所述处理单元,还用于根据所述目标位置以及所述标识,通过所述加速结构进行光线追踪,得到光线与所述三维场景的交点。
在一种可能的实现方式中,所述处理单元,还用于:对所述待渲染数据进行无光照渲染,得到第四图像;根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,所述几何缓冲区用于存储像素对应的属性参数;根据所述几何缓冲区对所述第四图像中的像素进行光照计算,得到所述第一图像。
在一种可能的实现方式中,所述处理单元,还用于:若第四图像中的待渲染物体为所述目标物体,则根据所述待渲染物体的属性信息和第一分辨率生成所述待渲染物体对应的第一几何缓冲区;若第四图像中的待渲染物体位于所述目标物体的周边区域,则根据所述待渲染物体的属性信息和第二分辨率生成所述待渲染物体对应的第二几何缓冲区若第四图像中的待渲染物体位于背景区域,则根据所述待渲染物体的属性信息和第三分辨率生成所述待渲染物体对应的第三几何缓冲区;其中,所述待渲染数据包括所述待渲染物体,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率,所述第一几何缓冲区、所述第二几何缓冲区和所述第三几何缓冲区用于存储颜色属性参数。
在一种可能的实现方式中,所述处理单元,还用于:根据所述待渲染物体的属性信息和第四分辨率生成所述待渲染物体对应的第四几何缓冲区,所述第四几何缓冲区用于存储的属性参数不为颜色属性参数;所述第四分辨率小于所述第一分辨率。
在一种可能的实现方式中,所述获取单元,还用于获取三维场景数据以及服务器发送的第五图像,所述第五图像为渲染好的背景图像。
在一种可能的实现方式中,所述待渲染数据包括所述目标物体和所述目标物体的材质参数;所述处理单元,还用于根据所述目标物体的材质参数确定所述目标物体的标识。
本申请第三方面提供一种电子设备,该电子设备包括:处理器、非易失性存储器和易失性存储器;其中,非易失性存储器或易失性存储器中存储有计算机可读指令;处理器读取计算机可读指令以使电子设备实现如第一方面任意一种实现方式的方法。
本申请第四方面提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面任意一种实现方式的方法。
本申请第五方面提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面任意一种实现方式的方法。
本申请第六方面提供一种芯片,包括一个或多个处理器。处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。本申请提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
附图说明
图1a为光线追踪的原理示意图;
图1b为光栅化处理的原理示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种图像处理方法300的流程示意图;
图4为本申请实施例提供的一种对图像进行光线追踪处理的流程示意图;
图5为本申请实施例提供的一种BVH的示意图;
图6为本申请实施例提供的一种反射场景的示意图;
图7为本申请实施例提供的一种确定交点颜色的示意图;
图8为本申请实施例提供的一种光线追踪处理的流程示意图;
图9为本申请实施例提供的一种对待渲染数据进行光栅化处理的流程示意图;
图10为本申请实施例提供的一种基于自适应分辨率生成G-buffer的流程示意图;
图11为本申请实施例提供的一种在服务器上渲染并下发背景图像的流程示意图;
图12为本申请实施例提供的一种预过滤的环境光贴图的示意图;
图13为本申请实施例提供的一种端云结合的图像渲染方法的流程示意图;
图14为本申请实施例提供的一种混合渲染管线的示意图;
图15(a)为本申请实施例提供的一种光栅化处理后的第一图像;
图15(b)为本申请实施例提供的一种光线追踪处理后的第二图像;
图16为本申请实施例提供的一种电子设备1600的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
随着计算机技术的发展,越来越多的应用程序,例如游戏应用或者视频应用等应用程序,要求在电子设备上显示画质精美的图像。这些图像通常是由电子设备基于三维(three dimensional,3D)场景中的模型进行渲染得到的。
在传统的图像处理方法中,通常采用光栅化处理对3D场景进行渲染,以得到能够显示3D场景的图像。然而,采用光栅化处理方法进行渲染所得到的图像的品质一般,往往难以呈现逼真的画面。例如,渲染得到的图像中通常难以真实还原场景中的光线反射、折射以及阴影等效果。有鉴于此,一种新的渲染技术--光线追踪技术应运而生。光线追踪与光栅化处理都是用于实现图像渲染的方法,其主要目的是通过计算着色,将3D空间的物体,投影到二维的屏幕空间进行显示。
可以参阅图1a,图1a为光线追踪的原理示意图。如图1a所示,光线追踪的原理为:从摄影机的位置,通过图像平面上的像素位置,发射一束光线到3D场景中,求光线和几何图形间最近的交点,再求该交点的着色。如果该交点的材质是反射性的,可以在该交点向的反射方向继续追踪,并且继续求取反射后的交点的着色。也就是说,光线追踪方法是通过追踪光线在三维场景中的传播过程,来计算投影与全局光照,从而渲染得到二维图像。
可以参阅图1b,图1b为光栅化处理的原理示意图。如图1b所示,光栅化处理的原理为:将3D场景中的模型采用三角形进行分割,通过坐标变化计算将三角形顶点的三维坐标变换为图像上的二维坐标,最后在图像上的三角形内填充纹理,以实现图像的渲染。
由于光栅化处理是将屏幕空间上可见的内容直接投影至屏幕空间上,而得到相应的图像,其处理难度较低,所提供的光影效果也较差。光线追踪方法则是通过追踪从摄像机发出的每条光线来实现如反射、折射、阴影以及环境光遮蔽等真实效果,因此光线追踪方法能够提供真实逼真的光影效果。与此同时,由于光线追踪方法需要追踪每一条光线的去向,其计算量非常复杂,需要执行光线追踪方法的设备具有较高的计算能力。
在相关技术中,光线追踪技术主要应用于算力较强的设备上,例如搭载有独立显卡的个人电脑(personal computer,PC),而算力受限的设备,例如手机、平板电脑等移动设备,往往无法应用该光线追踪技术,从而导致算力受限的设备上难以获得较佳的渲染效果。
有鉴于此,本申请实施例提供了一种图像处理方法,通过采用光栅化处理对待渲染数据进行一次渲染,得到第一图像,再对第一图像中具有标识的物体通过光线追踪处理进行二次渲染,以提高渲染效果。由于只对图像中的局部物体进行光线追踪处理,降低了图像渲染的算力要求,使得算力受限的设备也能够采用光线追踪方法实现图像渲染,提高了图像渲染的效果。
本申请实施例中的图像处理方法可以由电子设备来执行。该电子设备中包括CPU和GPU,能够对图像进行渲染处理。示例性地,该电子设备例如可以是手机(mobile phone)、平板电脑、笔记本电脑、PC、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线电子设备、无人驾驶(self driving)中的无线电子设备、远程手术(remote medical surgery)中的无线电子设备、智能电网(smart grid)中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备、智慧家庭(smart home)中的无线电子设备等。该电子设备可以是运行安卓系统、IOS系统、windows系统以及其他系统的设备。在该电子设备中可以运行有需要对3D场景进行渲染而得到二维图像的应用程序,例如游戏应用、锁屏应用、地图应用或监控应用等应用。
为了便于理解,下面结合图2对电子设备的具体结构进行详细的介绍。可以参阅图2,图2为本申请实施例提供的一种电子设备的结构示意图。
在一个可能的实施例中,如图2所示,电子设备2000可以包括:中央处理器2001、图形处理器2002、显示设备2003和存储器2004。可选地,该电子设备2000还可以包括至少一个通信总线(图2中未示出),用于实现各个组件之间的连接通信。
应当理解,电子设备2000中的各个组件还可以通过其他连接器相耦合,其他连接器可包括各类接口、传输线或总线等。电子设备2000中的各个组件还可以是以中央处理器2001为中心的放射性连接方式。在本申请的各个实施例中,耦合是指通过相互电连接或连通,包括直接相连或通过其他设备间接相连。
中央处理器2001和图形处理器2002的连接方式也有多种,并不局限于图2所示的方式。电子设备2000中的中央处理器2001和图形处理器2002可以位于同一个芯片上,也可以分别为独立的芯片。
下面对中央处理器2001、图形处理器2002、显示设备2003和存储器2004的作用进行简单的介绍。
中央处理器2001:用于运行操作系统2005和应用程序2006。应用程序2006可以为图形类应用程序,比如游戏、视频播放器等等。操作系统2005提供了系统图形库接口,应用程序2006通过该系统图形库接口,以及操作系统2005提供的驱动程序,比如图形库用户态驱动和/或图形库内核态驱动,生成用于渲染图形或图像帧的指令流,以及所需的相关渲染数据。其中,系统图形库包括但不限于:嵌入式开放图形库(open graphics library forembedded system,OpenGL ES)、柯罗诺斯平台图形界面(the khronos platform graphicsinterface)或Vulkan(一个跨平台的绘图应用程序接口)等系统图形库。指令流包含一些列的指令,这些指令通常为对系统图形库接口的调用指令。
可选地,中央处理器2001可以包括以下至少一种类型的处理器:应用处理器、一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、微控制器(microcontroller unit,MCU)或人工智能处理器等。
中央处理器2001还可进一步包括必要的硬件加速器,如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、或者用于实现逻辑运算的集成电路。处理器2001可以被耦合到一个或多个数据总线,用于在电子设备2000的各个组件之间传输数据和指令。
图形处理器2002:用于接收处理器2001发送的图形指令流,通过渲染管线(pipeline)生成渲染目标,并通过操作系统的图层合成显示模块将渲染目标显示到显示设备2003。其中,渲染管线也可以称为渲染流水线、像素流水线或像素管线,是图形处理器2002内部用于处理图形信号的并行处理单元。图形处理器2002中可以包括多个渲染管线,多个渲染管线之间可以相互独立地并行处理图形信号。例如,渲染管线可以在渲染图形或图像帧的过程中执行一些列操作,典型的操作可以包括:顶点处理(Vertex Processing)、图元处理(Primitive Processing)、光栅化(Rasterization)、片段处理(FragmentProcessing)等等。
可选地,图形处理器2002可以包括执行软件的通用图形处理器,如GPU或其他类型的专用图形处理单元等。
显示设备2003:用于显示由电子设备2000生成的各种图像,该图像可以为操作系统的图形用户界面(graphical user interface,GUI)或由图形处理器2002处理的图像数据(包括静止图像和视频数据)。
可选地,显示设备2003可以包括任何合适类型的显示屏。例如液晶显示器(liquidcrystal display,LCD)或等离子显示器或有机发光二极管(organic light-emittingdiode,OLED)显示器等。
存储器2004,是中央处理器2001和图形处理器2002之间的传输通道,可以为双倍速率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)或者其它类型的缓存。
以上介绍了本申请实施例提供的图像处理方法所应用的电子设备的具体结构,以下将详细介绍本申请实施例所提供的图像处理方法的流程。
可以参阅图3,图3为本申请实施例提供的一种图像处理方法300的流程示意图。如图3所示,该图像处理方法300包括以下的步骤。
步骤301,获取待渲染数据。
本实施例中,该待渲染数据可以包括3D场景中的模型以及模型的属性信息。示例性地,该3D场景中的模型例如可以包括天空、房屋、桥梁、人物、箱子或者树木等模型。模型的属性信息则可以包括模型的颜色、材质等属性信息。
应理解,电子设备在下载安装应用的过程中,会将应用中相关的待渲染数据下载并保存在电子设备中。电子设备在运行应用的过程中,可以通过载入该应用相关的数据,获取该待渲染数据。此外,电子设备也可以是在浏览网页的过程中,通过接收到服务器所发送数据,来获取到待渲染数据,以使得电子设备能够基于待渲染数据实现图像的渲染。
也就是说,电子设备可以通过读取本地的数据来获取待渲染数据,也可以是通过接收其他设备实时发送的数据来获取待渲染数据,本实施例并不对电子设备获取待渲染数据的方式做具体限定。
步骤302,对所述待渲染数据进行光栅化处理,得到第一图像。
本实施例中,对待渲染数据进行光栅化处理的方式可以有多种。
方式一,通过前向渲染(Forward Rendering)的方式对待渲染数据进行光栅化处理。
前向渲染是指通过将待渲染数据中的几何体投影并拆解成顶点,然后将顶点转换并拆分为片段或像素,并且在这些片段或像素传递到屏幕之前进行最终的渲染处理。前向渲染的特征是一个几何体从开始处理到最后屏幕显示图像的整个过程是不间断的,即前向渲染是一个线性的处理过程。
简单来说,在3D场景中,电子设备中的GPU根据所有光源对于一个物体进行光照计算以实现该物体的渲染之后,再渲染下一个物体,以此类推。然而,对于每一个需要渲染的物体,CPU需要在片段着色器中对该物体中的每一个需要渲染的片段进行迭代渲染,从而得到每一个片段的着色结果。由于大部分片段的着色结果都会被后续的片段的着色结果所覆盖,因此前向渲染往往可能会将大量的时间浪费在无用的片段渲染上。
方式二,通过延迟渲染的方式对待渲染数据进行光栅化处理。
延迟渲染是指通过将待渲染数据中的几何体投影并拆解成顶点,将顶点转换并拆分为片段或像素之后,获取这些片段或像素的各种几何信息,并将几何信息储存在几何缓冲(geometry buffer,G-buffer)中。其中,这些几何信息可以包括位置向量(PositionVector)、颜色向量(Color Vector)和/或法向量(Normal Vector)等信息。最后,再基于这些储存在G-buffer中的几何信息,对片段或像素进行光照计算,以得到最终的渲染结果。在光照计算阶段中,根据屏幕空间需要显示的片段或像素,使用G-buffer中的几何信息对相应的片段或像素进行场景的光照计算,以输出用于显示在屏幕空间上的图像。相较于前向渲染,延迟渲染不需要再重复地对大量的片段或像素进行光照计算,而是仅对屏幕空间需要显示的片段或像素进行光照计算,能够节省大量无用的光照计算步骤。
步骤303,对第一图像中的目标物体进行光线追踪处理,得到第二图像。
其中,第一图像中的目标物体具有标识,该标识用于标记待执行光线追踪处理的物体,即具有该标识的目标物体为待执行光线追踪处理的物体。例如,该标识可以为一个字段,该字段的值为0或1时,即表示该目标物体需要执行光线追踪处理。又例如,该标识可以为一个字段中特定的值,该字段的值为0时,用于表示该标识,即该标识对应的目标物体需要执行光线追踪处理;该字段的值为1时,该字段对应的物体不需要执行光线追踪处理。简单来说,目标物体具有标识可以通过多种方式来实现,在一种方式中,目标物体具有对应的特定字段,则可以认为目标物体具有标识;在另一种方式中,目标物体具有对应的特定字段且该特定字段的值为预设值,则可以认为目标物体具有标识,本实施例并不限定目标具有标识的实现方式。
可选地,该标识还可以用于标记光线追踪处理方式,该光线追踪处理方式例如可以包括反射、折射、阴影或焦散等方式。其中,反射是指光线在传播到不同物质时,在分界面上改变传播方向又返回原来物质中的现象。例如,在第一图像中的地板的标识用于标记反射的情况下,电子设备追踪到从地板出去的光线与汽车底盘相交时,即光线交点为汽车底盘,则可以认为地板上反射了汽车底盘的颜色。反射可以包括漫反射或镜面反射。漫反射是指光投向漫反射体后,在物体表面或内部发生方向不定的反射。镜面反射是指平行入射的一束光线射到表面较为光滑的反射面时,这束光线仍会平行地向一个方向反射出来。折射是指光线从一种透明介质斜射入另一种透明介质时,传播方向发生变化的现象。阴影是指光线直进时遇不透光物体而形成的一个暗区。焦散是指当光线穿过一个透明物体时,由于对象表面的不平整,使得光线折射并没有平行发生,出现漫折射,投影表面出现光子分散。
示例性地,该标识可以为一个字段,该字段的值为0时,表示光线追踪处理方式为反射;该字段的值为1时,表示光线追踪处理方式为折射;该字段的值为2时,表示光线追踪处理方式为阴影;该字段的值为3时,表示光线追踪处理方式为焦散。简单来说,电子设备可以通过判断第一图像中的物体是否具有标识,来确定该物体是否为目标物体;并且,电子设备可以通过确定目标物体的标识的值,来获知目标物体需要执行的光线追踪处理方式。
这样,在电子设备对第一图像中的目标物体进行光线追踪处理的过程中,电子设备可以根据目标物体的标识确定该目标物体需要执行的光线追踪处理方式,并基于该光线追踪处理方式实现光线追踪处理。例如,在第一图像中的目标物体为地板,且该地板的标识的值为0时,电子设备可以对地板执行光线追踪,且光线追踪处理方式为反射。
可选地,在该标识仅用于标记待执行光线追踪处理的物体,而没有标记光线追踪处理方式的情况下,电子设备在执行光线追踪处理的过程中,可以基于待渲染数据中所包括的目标物体的材质参数,对目标物体进行光线追踪处理。一般来说,待渲染数据中包括有模型的属性信息,模型的属性信息包括模型的材质参数,而模型通常是以物体的种类来划分,因此目标物体的材质参数可以是通过目标物体对应的模型的属性信息来获得。
在一个可能的示例中,在电子设备获取到的待渲染数据中,模型的属性信息中可以包括该模型对应的标识,该标识用于标记待执行光线追踪处理。在电子设备对渲染数据进行光栅化处理的过程中,电子设备可以根据待渲染数据中模型对应的标识生成第一图像中的目标物体的标识,即电子设备在将模型投影到屏幕空间形成第一图像中的目标物体时,电子设备基于该模型的标识记录该目标物体的标识。示例性地,模型的标识可以是在该模型的设计过程中添加的,例如在模型的设计过程中,地板模型被添加了值为0的标识,钻石模型被添加了值为1的标识,墙壁模型没有被添加标识。通过在设计过程中根据期望的光影效果为特定模型添加相应的标识,例如只为能够有效提高光影效果的模型添加标识,能够有选择性地确定需要做光线追踪的模型,避免对所有的模型均做光线追踪处理,降低渲染设备的算力要求。
在另一个可能的示例中,在电子设备获取到的待渲染数据中包括了上述目标物体的模型,该目标物体的模型的属性信息中包括目标物体的材质参数。电子设备可以根据目标物体的材质参数确定并生成该目标物体的标识。这样,电子设备在执行光栅化处理并得到第一图像之后,电子设备可以获取到第一图像中的目标物体的标识。
例如,在地板的材质参数中的粗糙度为0时,电子设备可以确定并生成地板的标识,且该标识的值为0,即地板对应的光线追踪方式为反射。又例如,在银制餐具的材质参数中的金属度为1时,电子设备可以确定并生成银制餐具的标识,且该标识的值为0,即银制餐具对应的光线追踪方式为反射。
应理解,在电子设备采用前向渲染的方式实现光栅化处理的情况下,电子设备可以分配特定的存储空间,以用于存储第一图像中的目标物体的标识。一般来说,一个目标物体可以由一个或多个像素构成,对于目标物体的每个像素,都需要存储其对应的标识。
在电子设备采用延迟渲染的方式实现光栅化处理的情况下,电子设备可以在生成G-buffer的过程中,基于目标物体模型的标识,生成用于存储目标物体的标识的G-buffer。也就是说,对于第一图像中的每个像素来说,除了具有用于存储该像素的位置向量、颜色向量和/或法向量的G-buffer之外,还具有用于存储该像素对应的标识的G-buffer。
本实施例中,通过采用光栅化处理对待渲染数据进行一次渲染,得到第一图像,再对第一图像中具有标识的物体通过光线追踪处理进行二次渲染,以提高渲染效果。由于只对图像中的局部物体进行光线追踪处理,降低了图像渲染的算力要求,使得算力受限的设备也能够采用光线追踪方法实现图像渲染,提高了图像渲染的效果。
以上介绍了电子设备基于光栅化处理和光线追踪处理对图像进行混合渲染的过程,为便于理解,以下将详细介绍电子设备对图像进行光线追踪处理的具体过程。
可以参阅图4,图4为本申请实施例提供的一种对图像进行光线追踪处理的流程示意图。如图4所示,在一个可能的示例中,上述的步骤303还可以包括以下的步骤。
步骤3031,确定所述第一图像中的目标像素。
本实施例中,所述目标物体可以包括一个或多个所述目标像素,所述目标像素具有所述标识。对于同一个目标物体来说,该目标物体所包括的一个或多个目标像素具有相同的标识。在光线追踪处理的实际过程中,可以是以第一图像中的像素为单位,对每个像素进行光线追踪处理,从而实现对目标物体的光线追踪处理。
应理解,对于一个待渲染数据中的模型来说,该模型可能包括多个部件,不同的部件可以具有不同的标识,或者一些部件具有标识,另一些部件不具有标识,此时,目标物体则可以理解为该模型的某一个部件。简单来说,同一个目标物体上的任意部位的材质参数均是相同的,该目标物体对应的一个或多个像素均具有相同的标识。例如,对于一个汽车模型来说,包括车窗、车外壳、轮胎等部件,车窗可以具有对应的标识且该标识的值为0,而车外壳以及轮胎等部件则可以是不具有对应的标识。
步骤3032,获取所述目标像素在三维场景中的目标位置。
由于目标像素实际上是二维图像(即第一图像)中的一个像素点,而该目标像素是由3D场景中的某一个部位经过投影变换得到的,因此可以对目标像素进行坐标变换,以得到该目标像素在3D场景中的目标位置。示例性地,电子设备可以对目标像素在第一图像中的二维坐标进行坐标变化,得到其在3D场景中的世界坐标,从而确定其在3D场景中的目标位置。
步骤3033,根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点。
在确定了目标像素在3D场景中的目标位置之后,可以基于目标像素的标识确定对应的光线。例如在目标像素的标识为0时,确定待追踪光线为反射光线;在目标像素的标识为1时,确定待追踪的光线为折射光线。通过追踪目标像素对应的待追踪光线在3D场景中的路线,可以得到该待追踪光线从目标位置出来之后,与3D场景中其他物体的交点。例如,通过追踪发现从地板出来的反射光线与3D场景中的汽车底盘相交,则可以确定交点为汽车底盘。
应理解,在光线追踪处理过程中,为了检测得到光线与物体的交点,对于每条光线都需要和场景中的所有物体,例如球体、三角形等复杂物体,进行相交检测。在相关技术中,通过遍历场景中的每个物体,然后找出与光线交点距离光线起始点最近的物体作为该光线的交点。在3D场景较为复杂,物体数量很多的情况下,光线追踪的过程需要耗费大量的时间。事实上,大部分的物体距离光线都是非常远的,只有一小部分的物体有可能与光线相交,所以并没有必要遍历场景中的所有物体。
基于此,在一个可能的示例中,电子设备可以获取加速结构,所述加速结构是基于所述三维场景得到的,该加速结构用于快速求取光线的交点;然后,电子设备根据所述目标位置以及所述标识,通过所述加速结构进行光线追踪,得到光线与所述三维场景的交点。
示例性地,该加速结构可以包括层次包围盒(Bounding Volume Hierarchy,BVH)、均匀网格(Uniform grid)或k维树(k-dimensional tree,kd-tree)等结构,本实施例并不对加速结构做具体限定。该加速结构通过利用空间划分结构,可以快速地将无关物体去除掉,从而只遍历很小的一部分子集,就可以找到最近的交点。
例如,对于上述的BVH,简单来说就是通过一个简单的包围盒把物体包围起来,射线和场景中的物体求交之前,会先和这个包围盒进行求交,如果该射线没有碰到该包围盒,表明该射线一定不会和包围盒里的物体相交;如果该射线碰到该包围盒,那么再计算射线是否和包围盒中的物体相交。
一般地,3D场景中会有很多物体,采用BVH实际上就是用二叉树的结构来管理3D场景中的物体。可以参阅图5,图5为本申请实施例提供的一种BVH的示意图。如图5所示,通过大小不一样的包围盒将不同的物体进行包围,并形成相应的二叉树结构。在检测每一条射线与场景中的物体是否相交的时候,实际上就是按顺序遍历该二叉树。例如,在检测到射线与二叉树中的B包围盒不相交时,则表示该射线一定不会和B包围盒中的四个物体相交,因此,可以免去检测射线是否与B包围盒中的四个物体相交的步骤,从而仅检测射线是否与C包围盒中的两个物体相交。
步骤3034,根据所述交点的颜色,更新所述目标像素的颜色。
在追踪得到光线与三维场景的交点之后,电子设备可以计算该交点的颜色,然后基于光线追踪方式将该交点的颜色与目标像素原先的颜色进行融合,从而更新得到目标像素的新的颜色。
示例性地,可以参阅图6,图6为本申请实施例提供的一种反射场景的示意图。在目标物体为地板的情况下,其光线追踪方式为反射,且光线交点为汽车的车外壳;那么,在车外壳的颜色为红色,目标像素的颜色为淡黄色的情况下,可以基于车外壳的红色以及目标像素原先的淡黄色,更新得到目标像素的颜色。
在实时光线追踪处理中,由于算力限制,通常都会限制每个像素采样光线的数量,但这样通常会引入噪点,影响渲染效果。其解决方案主要是通过缓存历史图像帧,并将历史图像帧与当前图像帧进行投影累加,以增加采样点数目。在本申请实施例中,可以通过利用缓存的历史图像帧以及当前图像帧,来减少光线交点的着色计算量。
在一个可能的实施例中,电子设备可以根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影,即通过坐标变换,计算3D场景中的交点在二维图像上对应的像素点。若所述交点在所述第一图像或第三图像上具有对应的投影像素,则根据所述投影像素的颜色更新所述目标像素的颜色;若所述交点在所述第一图像或第三图像上不具有对应的投影像素,则计算所述交点的颜色,并根据所述交点的颜色更新所述目标像素的颜色;其中,所述第三图像为所述第二图像的前一帧图像。应理解,电子设备通过将渲染好的图像逐帧逐帧地显示于屏幕上,可以得到连续的视频画面,而第二图像作为当前要显示于屏幕上的图像,第三图像则为显示在第二图像前的一帧图像。
简单来说,在电子设备进行图像渲染的过程中,电子设备并不会实时对3D场景中的所有物体进行渲染。电子设备通常是对当前要显示于屏幕上的物体进行渲染,以得到渲染好的图像并显示于屏幕上。如果该交点已在渲染前一帧图像的过程中进行了渲染并显示于图像上(即第三图像),或者该交点已在渲染当前帧图像的过程中进行了渲染并显示于图像上(即第一图像),则可以基于该交点在前一帧图像或当前帧图像上对应的像素点的颜色,确定该交点的颜色。即,通过复用前一帧图像或当前帧图像上像素的颜色来获得交点的颜色,从而避免重新计算该交点的颜色,减少了计算量。
示例性地,可以参阅图7,图7为本申请实施例提供的一种确定交点颜色的示意图。如图7所示,左侧的图像为上一帧图像,右侧的图像为当前帧图像。在前一帧图像和当前帧图像中,电子设备均对汽车的车身进行了渲染,图像中显示了汽车侧面的车身。
对于右侧当前帧图像中的矩形框所标记的地板区域,在对该区域执行光线追踪处理的过程中,从地板上出去的反射光线与场景的交点为汽车的车身侧面,即电子设备需要确定该汽车的车身侧面的颜色。此时,电子设备可以计算该汽车的车身侧面在图像上的投影像素点。由于汽车的车身侧面在前一帧图像和当前帧图像均能够找到对应的投影像素点,因此电子设备可以通过复用该汽车的车身侧面在前一帧图像或当前帧图像上的投影像素点的颜色,确定反射光线与场景的交点的颜色,最终实现对地板的着色渲染。
如右侧当前帧图像中的蓝色椭圆框所标记的地板区域,在对该区域执行光线追踪处理的过程中,从地板上出去的反射光线与场景的交点为汽车的底盘,即电子设备需要确定该汽车的底盘颜色。然而,由于在前一帧图像和当前帧图像都没有汽车底盘对应的投影像素点,因此电子设备需要重新计算光线追踪的交点(即汽车底盘)的颜色。
为便于理解,以下将结合处理流程图详细介绍电子设备进行光线追踪处理的过程。
可以参阅图8,图8为本申请实施例提供的一种光线追踪处理的流程示意图。如图8所示,光线追踪处理的流程包括以下的步骤。
步骤801,计算反射/折射光线。
在电子设备确定了目标像素之后,电子设备可以获取该目标像素对应的G-buffer,以获取G-buffer中所存储的位置向量、法向量以及标识。其中,位置向量用于确定目标像素的位置信息,法向量用于确定反射/折射光线的方向,标识则用于确定光线是反射光线还是折射光线。基于G-buffer上所存储的信息,电子设备可以计算得到由目标像素所在的目标位置出去的反射/折射光线。
步骤802,基于加速结构求光线与场景的交点。
其中,加速结构可以包括但不限于上述的BVH、Uniform grid或kd-tree等结构。
步骤803,判断光线与场景是否存在交点。
步骤804,如果光线与场景不存在交点,则显示当前像素点的颜色。
如果计算得到光线与场景并不存在交点,即代表目标像素所在的目标位置并没有产生反射或折射,因此不需要对目标像素点进行进一步的渲染处理,基于当前图像帧的G-buffer中所存储的颜色向量渲染该目标像素点的颜色即可。
步骤805,如果光线与场景存在交点,则对交点进行投影计算。
具体地,电子设备可以根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影,即通过坐标变换,计算3D场景中的交点在二维图像上对应的像素点。
步骤806,判断投影像素点是否位于当前图像帧。
电子设备判断在当前图像帧上是否存在有该交点对应的投影像素点。
步骤807,如果投影像素点位于当前图像帧,则将投影像素点的颜色作为反射/折射的颜色。
如果确定在当前图像帧中存在有交点对应的投影像素点,则将该投影像素点的颜色作为反射/折射的颜色,即将该投影像素点的颜色与目标像素的颜色进行融合,以更新目标像素的颜色。其中,该投影像素点的颜色可以基于当前图像帧中的G-buffer获得。
步骤808,如果投影像素点不位于当前图像帧,则判断投影像素点是否位于前一图像帧。
电子设备判断在前一图像帧上是否存在有该交点对应的投影像素点。
步骤809,如果投影像素点位于前一图像帧,则将投影像素点的颜色作为反射/折射的颜色。
如果确定在前一图像帧中存在有交点对应的投影像素点,则将该投影像素点的颜色作为反射/折射的颜色,即将该投影像素点的颜色与目标像素的颜色进行融合,以更新目标像素的颜色。其中,该投影像素点的颜色可以基于前一图像帧中的G-buffer获得。
步骤810,如果投影像素点不位于前一图像帧,则重新计算交点的颜色作为反射/折射的颜色。
如果确定在前一图像帧中也不存在有交点对应的投影像素点,则重新计算该交点的颜色,以作为反射/折射的颜色。即将该重新计算得到的该交点的颜色与目标像素的颜色进行融合,以更新目标像素的颜色。
以上介绍了电子设备进行光线追踪处理的过程,为进一步降低渲染过程中的计算量,以下将介绍本实施例所提供的一种电子设备对待渲染数据进行光栅化处理的过程。
在一个可能的示例中,可以参阅图9,图9为本申请实施例提供的一种对待渲染数据进行光栅化处理的流程示意图。如图9所示,所述步骤302具体可以包括:
3021,对所述待渲染数据进行无光照渲染,得到第四图像。
本实施例中,电子设备采用延迟渲染的方式来执行光栅化处理。在获得待渲染数据之后,电子设备可以对待渲染数据进行初步渲染,即无光照计算的渲染,以得到第四图像。具体步骤可以参考上述步骤302的介绍,此处不再赘述。
3022,根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,所述几何缓冲区用于存储像素对应的属性参数。
在无光照渲染阶段,电子设备可以根据待渲染数据的属性信息,生成第四图像中的每个像素对应的G-buffer,G-buffer上可以存储每个像素点对应的位置向量、法向量以及颜色向量等属性参数。
在一个可能的实施例中,电子设备可以通过多种方式来生成G-buffer。
首先,电子设备在生成第四图像中的像素点对应的G-buffer之前,电子设备可以确定相应的待渲染物体,即需显示在第四图像中的物体,然后根据待渲染物体的具体信息,确定生成G-buffer的分辨率,最后基于该分辨率生成待渲染物体对应的G-buffer,从而得到第四图像中的像素点对应的G-buffer。
情况一,若第四图像中的待渲染物体为所述目标物体,则根据所述待渲染物体的属性信息和第一分辨率生成所述待渲染物体对应的第一G-buffer,第一G-buffer用于存储颜色属性参数。
如果待渲染物体为目标物体,则基于目标物体渲染得到的像素位于第四图像中的感兴趣区域。因此,对于待渲染物体,电子设备可以根据第一分辨率来生成待渲染物体对应的G-buffer,其中,第一分辨率可以与第四图像本身的分辨率相同,即电子设备以全分辨率来生成待渲染物体对应的G-buffer。这样,对于待渲染物体在第四图像上对应的每个像素,均生成有对应的G-buffer。例如,在第四图像的分辨率为1000*1000的情况下,电子设备基于1000*1000的分辨率来生成待渲染物体对应的第一G-buffer。
情况二,若第四图像中的待渲染物体位于所述目标物体的周边区域,则根据所述待渲染物体的属性信息和第二分辨率生成所述待渲染物体对应的第二G-buffer,第二G-buffer用于存储颜色属性参数。
如果待渲染物体位于目标物体的周边区域,则可以认为基于待渲染物体渲染得到的像素位于感兴趣区域的周边区域。因此,对于待渲染物体,电子设备可以根据第二分辨率来生成待渲染物体对应的第二G-buffer,其中,第二分辨率小于第一分辨率。例如,第二分辨率可以为第一分辨率的3/4,即在第一分辨率为1000*1000分辨率的情况下,第二分辨率可以为750*750分辨率。此外,第二分辨率也可以是小于第一分辨率的其他具体数值,此处不对第二分辨率做具体限定。
具体地,判断待渲染物体位于目标物体的周边区域的方式可以是:通过确定待渲染物体对应的像素与目标物体对应的像素相隔的距离,来判断待渲染物体是否位于目标物体的周边区域。示例性地,如果待渲染物体对应的像素与目标物体对应的像素之间的距离小于第一预设阈值,则可以确定待渲染物体位于目标物体的周边区域。该第一预设阈值例如可以为10个像素,即待渲染物体对应的像素距离目标物体对应的像素小于10个像素时,则可以确定该待渲染物体位于目标物体的周边区域。
情况三,若第四图像中的待渲染物体位于背景区域,则根据所述待渲染物体的属性信息和第三分辨率生成所述待渲染物体对应的第三G-buffer,第三G-buffer用于存储颜色属性参数。
如果待渲染物体位于目标物体的背景区域,则可以认为基于待渲染物体渲染得到的像素位于背景区域。因此,对于待渲染物体,电子设备可以根据第三分辨率来生成待渲染物体对应的第三G-buffer,其中,第三分辨率小于第二分辨率。例如,第三分辨率可以为第一分辨率的1/2,即在第一分辨率为1000*1000分辨率的情况下,第二分辨率可以为500*500分辨率。此外,第三分辨率也可以是小于第一分辨率的其他具体数值,此处不对第三分辨率做具体限定。
应理解,通过确定待渲染物体对应的像素与目标物体对应的像素相隔的距离,来判断待渲染物体是否位于背景区域。示例性地,如果待渲染物体对应的像素与目标物体对应的像素之间的距离小于第二预设阈值,则可以确定待渲染物体位于目标物体的周边区域。该第二预设阈值例如可以为50个像素,即待渲染物体对应的像素距离目标物体对应的像素大于50个像素时,则可以确定该待渲染物体位于背景区域。
其中,所述待渲染数据包括所述待渲染物体,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率,所述第一G-buffer、所述第二G-buffer和所述第三G-buffer均用于存储颜色属性参数,即颜色向量。也就是说,电子设备只是在生成待渲染物体对应的用于存储颜色属性参数的G-buffer时,才基于待渲染物体的具体信息,在上述的三种分辨率中选择相应的分辨率来生成待渲染物体对应的G-buffer。
以上三种情况介绍了电子设备生成用于存储颜色属性参数的G-buffer的方式,以下将介绍电子设备生成用于存储其他属性参数的G-buffer的方式。
情况四,根据所述待渲染物体的属性信息和第四分辨率生成所述待渲染物体对应的第四G-buffer,所述第四G-buffer用于存储的属性参数不为颜色属性参数,且所述第四分辨率小于所述第一分辨率。
简单来说,在电子设备生成不是用于存储颜色属性参数的G-buffer时,电子设备则采用第四分辨率来生成G-buffer。例如,电子设备在生成用于存储位置属性参数或法向量属性参数的G-buffer时,无论待渲染物体是目标物体还是位于目标物体的周边区域,电子设备均是采用第四分辨率来生成待渲染物体对应的G-buffer。
应理解,用于生成G-buffer的分辨率越高,相同面积的图像内对应的G-buffer就越多,即渲染精度越高;相反,用于生成G-buffer的分辨率越低,相同面积的图像内对应的G-buffer就越少,即渲染精度越低。例如,对于由1000*1000个像素构成的图像,如果以1000*1000分辨率来生成G-buffer,则可以得到1000*1000个G-buffer;如果以500*500分辨率来生成G-buffer,则可以得到500*500个G-buffer。也就是说,对于图像中的目标物体,可以以较高的分辨率来生成G-buffer,以保证目标物体的渲染精度;对于图像中的目标物体的周边区域和背景区域,则可以是以较低的分辨率来生成G-buffer,以降低电子设备的计算量,并且节省存储空间,降低对电子设备的输入输出(input output,I/O)带宽的要求。
3023,根据所述G-buffer对所述第四图像中的像素进行光照计算,得到所述第一图像。
在得到第四图像中各个像素对应的G-buffer之后,电子设备可以基于G-buffer中所存储的位置向量、法向量以及颜色向量等属性参数对第四图像进行光照计算,以得到渲染后的第一图像。
可以理解的是,在电子设备在以较低分辨率生成G-buffer时,对于第四图像中的部分像素来说,可能并不具有对应的G-buffer,即电子设备中并不保存有这部分像素对应的属性参数。此时,电子设备在对第四图像进行光照计算的过程中,可以通过插值的方式来获得不具有G-buffer的像素对应的属性参数,从而实现对这部分像素的光照计算。
可以参阅图10,图10为本申请实施例提供的一种基于自适应分辨率生成G-buffer的流程示意图。如图10所示,基于自适应分辨率生成G-buffer的过程包括以下的步骤。
步骤1001,判断待生成的G-buffer是否用于存储颜色属性参数。
由于电子设备需要生成分别用于存储不同属性参数的G-buffer,因此在电子设备生成待渲染物体对应的G-buffer的过程中,电子设备可以先判断当前待生成的G-buffer是否用于存储颜色属性参数。
步骤1002,如果待生成的G-buffer不是用于存储颜色属性参数,则以1/2分辨率生成G-buffer。
在待生成的G-buffer不是用于存储颜色属性参数的情况下,例如待生成的G-buffer是用于存储位置属性参数或法向量属性参数等属性参数,电子设备可以以较低的分辨率来生成G-buffer。例如,电子设备可以以待生成图像的原分辨率的1/2(即上述的1/2分辨率)来生成该G-buffer。示例性地,在待生成图像的原分辨率为1000*1000的情况下,1/2分辨率即为500*500分辨率。
步骤1003,如果待生成的G-buffer是用于存储颜色属性参数,则判断待渲染物体是否为目标物体。
其中,电子设备判断待渲染物体是否为目标物体的方式可以是判断待渲染物体是否具有对应的标识。如果待渲染物体具有对应的标识,则可以确定该待渲染物体为目标物体;如果待渲染物体没有对应的标识,则可以确定该待渲染物体不是目标物体。
步骤1004,如果待渲染物体为目标物体,则以全分辨率生成G-buffer。
如果待渲染物体为目标物体,基于目标物体渲染得到的像素位于图像中的感兴趣区域。因此,对于待渲染物体,不需要降低渲染的精度。其中,全分辨率是指待生成图像的原分辨率,即电子设备在生成待渲染物体的G-buffer时,以正常的分辨率来生成G-buffer,保证目标物体的渲染精度。
步骤1005,如果待渲染物体不是目标物体,则判断待渲染物体是否位于目标物体的周边区域。
步骤1006,如果待渲染物体位于目标物体的周边区域,则以3/4分辨率生成G-buffer。
如果待渲染物体位于目标物体的周边区域,则可以认为基于待渲染物体渲染得到的像素位于感兴趣区域的周边区域。因此,对于待渲染物体,电子设备可以稍微降低渲染的精度,以降低电子设备的计算量。例如,电子设备可以以待生成图像的原分辨率的3/4(即上述的3/4分辨率)来生成该G-buffer。示例性地,在待生成图像的原分辨率为1000*1000的情况下,1/2分辨率即为750*750分辨率。
步骤1007,如果待渲染物体不位于目标物体的周边区域,则判断待渲染物体是否位于背景区域。
步骤1008,如果待渲染物体位于背景区域,则以1/2分辨率来生成G-buffer。
如果待渲染物体位于背景区域,则可以认为基于待渲染物体渲染得到的像素位于关注度较低的背景区域。因此,对于待渲染物体,电子设备可以进一步降低渲染的精度,以降低电子设备的计算量。例如,电子设备可以以待生成图像的原分辨率的1/2来生成该G-buffer,以进一步降低电子设备的计算量。
以上介绍了电子设备对待渲染数据进行光栅化处理的过程,为进一步降低渲染过程中的计算量,以下将介绍本实施例所提供的一种电子设备获取待渲染数据的过程。
在一个可能的实施例中,电子设备获取待渲染数据,可以包括:电子设备获取3D场景数据以及服务器发送的第五图像,所述第五图像为渲染好的背景图像。也就是说,服务器可以对3D场景中的背景区域进行渲染,并且通过网络向电子设备下发渲染好的背景图像。这样,电子设备可以只渲染3D场景中非背景区域的部分,并将渲染好的图像与服务器下发的背景图像进行融合,即可得到完整的且渲染好的图像。
其中,服务器所发送的背景图像是指只包括有背景区域的图像,即该背景图像中只包括有远处的背景。例如,服务器可以对天空、山峰、大海或远处的高楼大厦等背景进行渲染,得到对应的背景图像。
示例性地,在一种可能的场景下,电子设备中可以运行有游戏应用,服务器可以实时渲染3D场景中的背景区域,得到背景图像并将该背景图像下发给电子设备。电子设备在运行游戏应用的过程中,对3D场景中的非背景区域进行渲染,并结合服务器下发的背景图像,得到渲染好的图像,以显示在屏幕上。
可选的,在电子设备所运行的游戏应用为多用户同时在线的网络游戏时,服务器所渲染得到的背景图像还可以分别下发给多个不同的电子设备。不同的电子设备根据实际需要显示的内容,分别进行个性化渲染,以在屏幕上显示不同的图像。
具体参阅图11,图11为本申请实施例提供的一种在服务器上渲染并下发背景图像的流程示意图。如图11所示,在服务器上渲染并下发背景图像的过程包括以下的步骤。
步骤1101,服务器渲染3D场景中的背景区域,得到背景图像。
在一个可能的示例中,服务器对3D场景中的背景区域进行渲染,可以生成六张贴图,该六张贴图可以用于组成一张立方体贴图,以作为背景图像。简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面,从而形成了一个有纹理的立方体。该立方体贴图可以包含了3D场景中的所有背景区域,即可以认为3D场景的物体包裹于该立方体贴图中。示例性地,可以参阅图11,服务器所生成的背景图像由6张贴图所构成,且每张贴图都可以组成立方体的一个面,从而形成了一个立方体贴图。该立方体贴图中包括了远处的高楼大厦、灯光以及夜空等背景区域,3D场景中非背景区域的物体均被包裹于该立方体贴图中。
可选地,在3D场景的光源发生变化或者3D场景的背景区域发生更新时,服务器可以重新渲染变化后的3D场景,得到新的背景图像,以实时更新背景图像。
步骤1102,服务器计算背景图像对应的漫反射辐照度。
由于电子设备在进行渲染的过程中,还有可能需要进行光线追踪,以确定光线与背景区域中的物体是否有交点。因此,电子设备除了需要获得背景区域对应的背景图像之外,还可能需要获取背景图像中的背景物体对应的漫反射辐照度,以使得电子设备能够实现光线追踪处理。
具体地,可以基于反射方程来计算背景图像对应的辐照度,由于漫反射kd和镜面ks是相互独立的,因此反射方程可以积分成如公式1所示的两部分:
其中,Lo表示了从ωo方向上观察,光线投射到点p上反射出来的辐照度。Li()代表通过某个无限小的立体角ωi在某个点上的辐射率,而立体角可以视作是入射方向向量ωi。Li(p,wi)表示p点的入射光亮度。wi表示立体角的入射光线向量。N表示法线。(wi*n)表示入射角带来的入射光衰减,并且,这里的乘法符号表示点乘。∫Ω....dwi表示对入射方向半球的入射光线向量的半球积分。ks代表镜面缩放系数,kd代表漫反射缩放系数,且ks+kd小于或等于1。
步骤1103,服务器计算预过滤的环境光贴图。
在本实施例中,由于电子设备是对目标物体做特定方式的光线追踪处理,因此实际上主要关注反射方程中的镜面反射部分,即公式1等号右边的后半部分。通过对公式1等号右边的后半部分进行转换,可以得到公式2:
其中,fr被称为反射率方程,一般使用双向反射分布函数(BidirectionalReflectance Distribution Function,BRDF)。由于积分项不仅依赖于输入光线wi,还依赖于输出光线wo,因此无法利用两个方向向量来采样立方图贴图。本实施中采用分割求和近似法将预计算分成两个单独的部分求解,再将两部分组合起来得到,以计算预计算结果。具体地,分割求和近似法将预计算分成两个单独的部分求解的方式可以如公式3所示:
其中,预计算结果可以如图12所示,图12为本申请实施例提供的一种预过滤的环境光贴图的示意图。卷积计算的第一部分被称为预过滤的环境贴图,可以提前预计算,本实施例中电子设备可以通过粗糙度的值来获取不同层级的过滤贴图。
步骤1104,服务器计算BRDF的积分贴图对应的查找表(Lookup Table,LUT)。
公式3的后半部分是镜面反射积分的BRDF部分也可以预计算,得到预计算结果,即BRDF的积分贴图对应的LUT。从而使得电子设备在使用时可以通过给定表面的粗糙度,入射光线与法线夹角nwi来在LUT中查找到对应的BRDF积分贴图。
步骤1105,服务器向电子设备发送背景图像和相关数据。
服务器在渲染得到背景图像并计算得到相应的预计算结果之后,可以向电子设备发送背景图像和相应的预计算结果。
步骤1106,电子设备基于背景图像和相关数据进行图像渲染,得到待显示的图像。
最后,电子设备可以基于背景图像进行初步渲染,得到上述的第一图像,并且基于相关数据和第一图像进行光线追踪处理,得到用于显示的第二图像。
为便于理解,以下将结合附图对本申请实施例提供的端云结合的图像渲染方法进行介绍。可以参阅图13,图13为本申请实施例提供的一种端云结合的图像渲染方法的流程示意图。如图13所示,该端云结合的图像渲染方法包括以下的步骤。
步骤1301,云端的服务器对3D场景中的背景区域进行渲染,得到渲染后的环境光贴图。
本实施例中,云端的服务器可以确定3D场景中的背景区域,然后基于静态光源以及动态光源等光源对3D场景中的背景区域进行渲染,得到环境光贴图,该环境光贴图可以为上文所述的立方体贴图。可选地,在3D场景的光源发生变化或者3D场景的背景区域发生更新时,服务器可以重新渲染变化后的3D场景,得到新的环境光贴图,以实时更新环境光贴图。
步骤1302,电子设备基于3D场景的待渲染数据和服务器下发的环境光贴图进行光栅化处理,得到第一图像和存储第一图像中像素的属性参数的G-buffer。
在获得服务器下发的环境光贴图之后,电子设备可以基于本地的3D场景的待渲染数据和接收到的环境光贴图进行光栅化处理,得到第一图像和G-buffer,该G-buffer中存储有第一图像中的像素的属性参数,例如位置向量属性参数、颜色向量属性参数、法向量属性参数等属性参数。
步骤1303,电子设备构建加速结构。
为了加快电子设备执行光线追踪处理的过程,电子设备可以基于3D场景进行加速结构的构建,该加速结构例如可以包括BVH、Uniform grid或kd-tree等结构。
其中,步骤1303可以在步骤1302之前执行,也可以是在步骤1302之后执行,本实施例并不对步骤1303的执行顺序做具体限定。
步骤1304,电子设备基于第一图像和环境光贴图进行光线追踪处理,得到第二图像。
在构建得到加速结构之后,电子设备可以基于第一图像和环境光贴图,通过加速结构来进行光线追踪处理,求取光线与3D场景的交点。然后,基于交点的颜色更新第一图像中对应的像素的颜色,从而得到第二图像。
步骤1305,电子设备对第二图像进行去噪,得到待显示图像。
由于在执行光线追踪处理的过程中,电子设备通常会限制每个像素对应的采样光线的数量,从而使得第二图像会引入噪点。因此,电子设备可以通过去噪算法对第二图像进行去噪处理,以得到去噪后的图像(即待显示图像),并将该去噪后的图像显示于屏幕上。其中,去噪算法例如可以包括时域去噪算法。
可以参阅图14,图14为本申请实施例提供的一种混合渲染管线的示意图。
在模块1401中,由顶点着色器和片段着色器执行第一个渲染流程,即光栅化处理。顶点着色器和片段着色器对待渲染数据进行初步渲染,得到第一图像。即模块1401中的顶点着色器和片段着色器执行上述的步骤1302,得到第一图像和存储第一图像中像素的属性参数的G-buffer。可以参阅图15(a),图15(a)为本申请实施例提供的一种光栅化处理后的第一图像。如图15(a)所示,执行光栅化处理后所得到的第一图像中,地板上并没有车辆的倒影,地板的反射效果并没有渲染在第一图像上。
在模块1402中,电子设备生成并存储有第一图像对应的G-buffer。在该G-buffer中,可以存储有第一图像中的像素对应的标识、世界坐标、法向量以及颜色等信息。其中,第一图像中的像素对应的世界坐标可以保存为一张屏幕空间贴图,也可以利用渲染管线中自带的深度贴结合视投影矩阵(view project)的逆矩阵反推得到。
在模块1403中,电子设备的CPU或GPU构建加速结构,以及获取全局的顶点信息,以用于光线追踪处理的着色。
在模块1404中,由计算着色器或片段着色器执行第二个渲染流程,即光线追踪处理。通过计算着色器或片段着色器实现局部物体的反射、折射或阴影等光线追踪效果。可以参阅图15(b),图15(b)为本申请实施例提供的一种光线追踪处理后的第二图像。如图15(a)所示,执行光线追踪处理后所得到的第二图像中,地板上存在有车辆的倒影,地板的反射效果渲染在第二图像上。
可选地,在电子设备基于计算着色器来实现光线追踪处理的情况下,在模块1405中,由全屏的顶点着色器以及全屏的片段着色器对渲染后的图像作进一步处理,以得到用于在屏幕上显示的图像。
在图1至图15(b)所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体可以参阅图16,图16为本申请实施例提供的一种电子设备1600的结构示意图,该电子设备1600包括:获取单元1601和处理单元1602。所述获取单元1601,用于获取待渲染数据;所述处理单元1602,用于对所述待渲染数据进行光栅化处理,得到第一图像;所述处理单元1602,还用于对第一图像中的目标物体进行光线追踪处理,得到第二图像;其中,所述目标物体具有标识,所述标识用于标记待执行光线追踪处理的物体。
在一种可能的实现方式中,所述标识还用于标记光线追踪处理方式。
在一种可能的实现方式中,所述光线追踪处理方式包括反射、折射、阴影或焦散。
在一种可能的实现方式中,所述处理单元1602,还用于:根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果;根据所述光线追踪结果,更新所述目标物体在所述第一图像中的颜色,得到第二图像。
在一种可能的实现方式中,所述处理单元1602,还用于确定所述第一图像中的目标像素,所述目标像素具有所述标识,所述目标物体包括一个或多个所述目标像素;所述获取单元1601,还用于获取所述目标像素在三维场景中的目标位置;所述处理单元1602,还用于根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点;处理单元1602,还用于根据所述交点的颜色,更新所述目标像素的颜色。
在一种可能的实现方式中,处理单元1602,还用于:根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影;若所述交点在所述第一图像或第三图像上具有对应的投影像素,则根据所述投影像素的颜色更新所述目标像素的颜色;若所述交点在所述第一图像或第三图像上不具有对应的投影像素,则计算所述交点的颜色,并根据所述交点的颜色更新所述目标像素的颜色;其中,所述第三图像为所述第二图像的前一帧图像。
在一种可能的实现方式中,所述获取单元1601,还用于获取加速结构,所述加速结构是基于所述三维场景得到的;所述处理单元1602,还用于根据所述目标位置以及所述标识,通过所述加速结构进行光线追踪,得到光线与所述三维场景的交点。
在一种可能的实现方式中,所述处理单元1602,还用于:对所述待渲染数据进行无光照渲染,得到第四图像;根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,所述几何缓冲区用于存储像素对应的属性参数;根据所述几何缓冲区对所述第四图像中的像素进行光照计算,得到所述第一图像。
在一种可能的实现方式中,所述处理单元1602,还用于:若第四图像中的待渲染物体为所述目标物体,则根据所述待渲染物体的属性信息和第一分辨率生成所述待渲染物体对应的第一几何缓冲区;若第四图像中的待渲染物体位于所述目标物体的周边区域,则根据所述待渲染物体的属性信息和第二分辨率生成所述待渲染物体对应的第二几何缓冲区若第四图像中的待渲染物体位于背景区域,则根据所述待渲染物体的属性信息和第三分辨率生成所述待渲染物体对应的第三几何缓冲区;其中,所述待渲染数据包括所述待渲染物体,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率,所述第一几何缓冲区、所述第二几何缓冲区和所述第三几何缓冲区用于存储颜色属性参数。
在一种可能的实现方式中,所述处理单元1602,还用于:根据所述待渲染物体的属性信息和第四分辨率生成所述待渲染物体对应的第四几何缓冲区,所述第四几何缓冲区用于存储的属性参数不为颜色属性参数;所述第四分辨率小于所述第一分辨率。
在一种可能的实现方式中,所述获取单元1601,还用于获取三维场景数据以及服务器发送的第五图像,所述第五图像为渲染好的背景图像。
在一种可能的实现方式中,所述待渲染数据包括所述目标物体和所述目标物体的材质参数;所述处理单元1602,还用于根据所述目标物体的材质参数确定所述目标物体的标识。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种图像处理方法,其特征在于,包括:
获取待渲染数据;
对所述待渲染数据进行光栅化处理,得到第一图像;
对第一图像中的目标物体进行光线追踪处理,得到第二图像;
其中,所述目标物体具有标识,所述标识用于标记待执行光线追踪处理的物体。
2.根据权利要求1所述的图像处理方法,其特征在于,所述标识还用于标记光线追踪处理方式。
3.根据权利要求2所述的图像处理方法,其特征在于,所述光线追踪处理方式包括反射、折射、阴影或焦散。
4.根据权利要求1-3任意一项所述的图像处理方法,其特征在于,所述对第一图像中的目标物体进行光线追踪处理,包括:
获取所述第一图像中的目标物体在三维场景中的位置;
根据所述目标物体在三维场景中的位置,执行光线追踪处理,得到光线追踪结果;
根据所述光线追踪结果更新所述第一图像中的目标物体的颜色,得到所述第二图像。
5.根据权利要求2或3所述的图像处理方法,其特征在于,所述对第一图像中的目标物体进行光线追踪处理,得到第二图像,包括:
根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果;
根据所述光线追踪结果,更新所述目标物体在所述第一图像中的颜色,得到第二图像。
6.根据权利要求5所述的图像处理方法,其特征在于,所述根据所述目标物体的所述标识,对所述第一图像中的目标物体进行光线追踪,得到光线追踪结果包括:
确定所述第一图像中的目标像素,所述目标像素具有所述标识,所述目标物体包括一个或多个所述目标像素;
获取所述目标像素在三维场景中的目标位置;
根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点;
所述根据所述光线追踪结果,更新所述目标物体在所述第一图像中的颜色,包括:
根据所述交点的颜色,更新所述目标像素的颜色。
7.根据权利要求6所述的图像处理方法,其特征在于,所述根据所述交点的颜色,更新所述目标像素的颜色,包括:
根据所述交点在所述三维场景中的位置,计算所述交点在图像上的投影;
若所述交点在所述第一图像或第三图像上具有对应的投影像素,则根据所述投影像素的颜色更新所述目标像素的颜色;
若所述交点在所述第一图像或第三图像上不具有对应的投影像素,则计算所述交点的颜色,并根据所述交点的颜色更新所述目标像素的颜色;
其中,所述第三图像为所述第二图像的前一帧图像。
8.根据权利要求6或7所述的图像处理方法,其特征在于,所述根据所述目标位置以及所述标识进行光线追踪,得到光线与所述三维场景的交点,包括:
获取加速结构,所述加速结构是基于所述三维场景得到的;
根据所述目标位置以及所述标识,通过所述加速结构进行光线追踪,得到光线与所述三维场景的交点。
9.根据权利要求1-8任意一项所述的图像处理方法,其特征在于,所述对所述待渲染数据进行光栅化处理,得到第一图像,包括:
对所述待渲染数据进行无光照渲染,得到第四图像;
根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,所述几何缓冲区用于存储像素对应的属性参数;
根据所述几何缓冲区对所述第四图像中的像素进行光照计算,得到所述第一图像。
10.根据权利要求9所述的图像处理方法,其特征在于,所述根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,包括:
若第四图像中的待渲染物体为所述目标物体,则根据所述待渲染物体的属性信息和第一分辨率生成所述待渲染物体对应的第一几何缓冲区;
若第四图像中的待渲染物体位于所述目标物体的周边区域,则根据所述待渲染物体的属性信息和第二分辨率生成所述待渲染物体对应的第二几何缓冲区
若第四图像中的待渲染物体位于背景区域,则根据所述待渲染物体的属性信息和第三分辨率生成所述待渲染物体对应的第三几何缓冲区;
其中,所述待渲染数据包括所述待渲染物体,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率,所述第一几何缓冲区、所述第二几何缓冲区和所述第三几何缓冲区用于存储颜色属性参数。
11.根据权利要求10所述的图像处理方法,其特征在于,所述根据所述待渲染数据的属性信息,得到所述第四图像中的像素对应的几何缓冲区,还包括:
根据所述待渲染物体的属性信息和第四分辨率生成所述待渲染物体对应的第四几何缓冲区,所述第四几何缓冲区用于存储的属性参数不为颜色属性参数;
所述第四分辨率小于所述第一分辨率。
12.根据权利要求1-11任意一项所述的图像处理方法,其特征在于,所述获取待渲染数据,包括:
获取三维场景数据以及服务器发送的第五图像,所述第五图像为渲染好的背景图像。
13.根据权利要求1-12任意一项所述的图像处理方法,其特征在于,所述待渲染数据包括所述目标物体和所述目标物体的材质参数;
所述方法还包括:
根据所述目标物体的材质参数确定所述目标物体的标识。
14.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述电子设备执行如权利要求1至13任一所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至13中任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至13任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011379098.8A CN114581589A (zh) | 2020-11-30 | 2020-11-30 | 图像处理方法及相关装置 |
PCT/CN2021/133414 WO2022111619A1 (zh) | 2020-11-30 | 2021-11-26 | 图像处理方法及相关装置 |
EP21897119.0A EP4242973A1 (en) | 2020-11-30 | 2021-11-26 | Image processing method and related apparatus |
US18/323,977 US20230316633A1 (en) | 2020-11-30 | 2023-05-25 | Image processing method and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011379098.8A CN114581589A (zh) | 2020-11-30 | 2020-11-30 | 图像处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114581589A true CN114581589A (zh) | 2022-06-03 |
Family
ID=81753721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011379098.8A Pending CN114581589A (zh) | 2020-11-30 | 2020-11-30 | 图像处理方法及相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230316633A1 (zh) |
EP (1) | EP4242973A1 (zh) |
CN (1) | CN114581589A (zh) |
WO (1) | WO2022111619A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051704A (zh) * | 2022-08-29 | 2023-05-02 | 荣耀终端有限公司 | 渲染方法及装置 |
CN116051713A (zh) * | 2022-08-04 | 2023-05-02 | 荣耀终端有限公司 | 渲染方法、电子设备和计算机可读存储介质 |
CN116402935A (zh) * | 2023-03-28 | 2023-07-07 | 北京拙河科技有限公司 | 一种基于光线追踪算法的图像合成方法及装置 |
CN116681811A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 图像渲染方法、电子设备及可读介质 |
CN116681814A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
CN116704101A (zh) * | 2022-09-09 | 2023-09-05 | 荣耀终端有限公司 | 一种基于光线追踪渲染的像素填充方法和终端 |
WO2024027286A1 (zh) * | 2022-08-04 | 2024-02-08 | 荣耀终端有限公司 | 渲染方法、装置、设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021013615A1 (en) * | 2019-07-19 | 2021-01-28 | Basf Coatings Gmbh | Method and system for simulating texture features of a coating |
US20230154101A1 (en) * | 2021-11-16 | 2023-05-18 | Disney Enterprises, Inc. | Techniques for multi-view neural object modeling |
CN115952139B (zh) * | 2023-03-14 | 2023-06-30 | 武汉芯云道数据科技有限公司 | 一种移动设备多帧三维图像处理方法及系统 |
CN116091684B (zh) * | 2023-04-06 | 2023-07-07 | 杭州片段网络科技有限公司 | 基于WebGL的图像渲染方法、装置、设备及存储介质 |
CN116563445B (zh) * | 2023-04-14 | 2024-03-19 | 深圳崇德动漫股份有限公司 | 基于虚拟现实的动漫场景渲染方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8570322B2 (en) * | 2009-05-12 | 2013-10-29 | Nvidia Corporation | Method, system, and computer program product for efficient ray tracing of micropolygon geometry |
KR20100132605A (ko) * | 2009-06-10 | 2010-12-20 | 삼성전자주식회사 | 하이브리드 렌더링 장치 및 방법 |
CN102855655A (zh) * | 2012-08-03 | 2013-01-02 | 吉林禹硕动漫游戏科技股份有限公司 | Gpu并行光线追踪渲染方法 |
JP2016071733A (ja) * | 2014-09-30 | 2016-05-09 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
US10262456B2 (en) * | 2015-12-19 | 2019-04-16 | Intel Corporation | Method and apparatus for extracting and using path shading coherence in a ray tracing architecture |
CN107256574A (zh) * | 2017-05-31 | 2017-10-17 | 宝珑珠宝设计(北京)有限公司 | 一种真实3d实时混合渲染方法 |
-
2020
- 2020-11-30 CN CN202011379098.8A patent/CN114581589A/zh active Pending
-
2021
- 2021-11-26 WO PCT/CN2021/133414 patent/WO2022111619A1/zh unknown
- 2021-11-26 EP EP21897119.0A patent/EP4242973A1/en active Pending
-
2023
- 2023-05-25 US US18/323,977 patent/US20230316633A1/en active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051713A (zh) * | 2022-08-04 | 2023-05-02 | 荣耀终端有限公司 | 渲染方法、电子设备和计算机可读存储介质 |
CN116051713B (zh) * | 2022-08-04 | 2023-10-31 | 荣耀终端有限公司 | 渲染方法、电子设备和计算机可读存储介质 |
WO2024027286A1 (zh) * | 2022-08-04 | 2024-02-08 | 荣耀终端有限公司 | 渲染方法、装置、设备及存储介质 |
CN116051704A (zh) * | 2022-08-29 | 2023-05-02 | 荣耀终端有限公司 | 渲染方法及装置 |
CN116704101A (zh) * | 2022-09-09 | 2023-09-05 | 荣耀终端有限公司 | 一种基于光线追踪渲染的像素填充方法和终端 |
CN116704101B (zh) * | 2022-09-09 | 2024-04-09 | 荣耀终端有限公司 | 一种基于光线追踪渲染的像素填充方法和终端 |
CN116681811A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 图像渲染方法、电子设备及可读介质 |
CN116681814A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
CN116681811B (zh) * | 2022-09-19 | 2024-04-19 | 荣耀终端有限公司 | 图像渲染方法、电子设备及可读介质 |
CN116402935A (zh) * | 2023-03-28 | 2023-07-07 | 北京拙河科技有限公司 | 一种基于光线追踪算法的图像合成方法及装置 |
CN116402935B (zh) * | 2023-03-28 | 2024-01-19 | 北京拙河科技有限公司 | 一种基于光线追踪算法的图像合成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022111619A1 (zh) | 2022-06-02 |
EP4242973A1 (en) | 2023-09-13 |
US20230316633A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114581589A (zh) | 图像处理方法及相关装置 | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
AU2014363213B2 (en) | Image rendering of laser scan data | |
US6567083B1 (en) | Method, system, and computer program product for providing illumination in computer graphics shading and animation | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US10614619B2 (en) | Graphics processing systems | |
US10049486B2 (en) | Sparse rasterization | |
CN114820906B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN111311723A (zh) | 像素点识别及光照渲染方法、装置、电子设备和存储介质 | |
US11954169B2 (en) | Interactive path tracing on the web | |
US9153065B2 (en) | System and method for adjusting image pixel color to create a parallax depth effect | |
US20110043523A1 (en) | Graphics processing apparatus for supporting global illumination | |
CN107209951B (zh) | 单遍表面溅射 | |
WO2022143367A1 (zh) | 一种图像渲染方法及其相关设备 | |
KR20150117662A (ko) | 깊이 맵의 컨텐츠를 강화하기 위한 방법 및 디바이스 | |
US7158133B2 (en) | System and method for shadow rendering | |
US10497150B2 (en) | Graphics processing fragment shading by plural processing passes | |
US8248405B1 (en) | Image compositing with ray tracing | |
US6690369B1 (en) | Hardware-accelerated photoreal rendering | |
KR101118597B1 (ko) | 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템 | |
CN115359172A (zh) | 渲染方法及相关装置 | |
CN111739074B (zh) | 一种场景多点光源渲染方法及装置 | |
CN115298699A (zh) | 使用阴影信息进行渲染 | |
KR101208826B1 (ko) | 깊이 텍스처의 등고선을 기반으로 한 실시간 다각형 앰비언트 오클루전 방법 |
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 |