CN114758051A - 一种图像渲染方法及其相关设备 - Google Patents
一种图像渲染方法及其相关设备 Download PDFInfo
- Publication number
- CN114758051A CN114758051A CN202011585918.9A CN202011585918A CN114758051A CN 114758051 A CN114758051 A CN 114758051A CN 202011585918 A CN202011585918 A CN 202011585918A CN 114758051 A CN114758051 A CN 114758051A
- Authority
- CN
- China
- Prior art keywords
- image
- reflecting
- rendering information
- reflecting object
- rendering
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 484
- 238000000034 method Methods 0.000 title claims abstract description 123
- 238000001465 metallisation Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 19
- 238000012545 processing Methods 0.000 description 44
- 239000012634 fragment Substances 0.000 description 39
- 238000004364 calculation method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 14
- 239000000463 material Substances 0.000 description 11
- 239000002184 metal Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004040 coloring Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- 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
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- 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/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Image Generation (AREA)
Abstract
本申请公开一种图像渲染方法及其相关设备,可避免在信息传输的过程中产生大量的I/O开销,从而降低图像渲染的功耗。本申请的方法包括:根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像;从第一帧缓冲区中获取反射物体中的倒影的图像,将反射物体中的倒影的图像存储于第二帧缓冲区中,以使得反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像完成融合,得到目标图像。
Description
技术领域
本申请涉及计算机图形学技术领域,尤其涉及一种图像渲染方法及其相关设备。
背景技术
随着计算机行业的迅速发展,用户对图像的要求日益增高。当前,通常采用光栅化技术结合光线追踪技术对三维场景进行渲染,从而得到较为逼真的图像,以提高用户体验。
具体地,中央处理器(central processing unit,CPU)将三维场景的渲染信息发送至图形处理器(graphics processing unit,GPU)后,GPU可先基于渲染信息进行光栅化,并将得到的G-buffer(包含场景中各个物体的图像以及各个物体在屏幕空间的几何信息)存储在第一帧缓冲区中,第一帧缓冲区用于存储暂时不需显示的图像以及其余信息。然后,GPU从第一帧缓冲区获取G-buffer,并基于G-buffer进行光线追踪,从而得到某些物体中的倒影(例如,地面上的人影、镜子中的人像等等)的图像。如此一来,则GPU可以得到模拟三维场景的目标图像,该目标图像包含场景中各个物体的图像以及某些物体中的倒影的图像,并将目标图像存储于第二帧缓冲区中。由于第二帧缓冲区用于存储即将显示的图像,故CPU可从第二帧缓冲区中获取目标图像,使其在屏幕中显示,以供用户观看。
上述过程中,在得到送显的目标图像之前,GPU需要完成G-buffer的传输(即将G-buffer存入第一帧缓冲区以及从第一帧缓冲区中取出G-buffer),而G-buffer包含了所有物体的图像等诸多信息,故G-buffer的传输过程会产生大量的输入/输出(Input/Output,I/O)开销,导致图像渲染的功耗过高。
发明内容
本申请实施例提供了一种图像渲染方法及其相关设备,可避免在信息传输的过程中产生大量的I/O开销,从而降低图像渲染的功耗。
本申请实施例的第一方面提供了一种图像渲染方法,该方法包括:
CPU可获取三维场景的渲染信息,由于三维场景中通常包含反射物体(例如,地面、镜子以及湖面等等)以及被反射物体(例如,人、桌子以及椅子等等),故CPU可将三维场景的渲染信息划分为反射物体的渲染信息以及被反射物体的渲染信息。然后,CPU将反射物体的渲染信息以及被反射物体的渲染信息发送至GPU。
GPU获取反射物体的渲染信息以及被反射物体的渲染信息后,则先根据反射物体的渲染信息进行光线追踪,得到反射物体中的倒影的图像,例如,GPU可基于地面的渲染信息进行光线追踪,得到地面上的人影的图像。得到反射物体中的倒影的图像后,GPU可将这部分图像存储于第一帧缓冲区中。需要说明的是,第一帧缓冲区为离屏渲染缓冲区,即用于存储暂时不需在屏幕中显示的图像,也就是说,GPU绘制出反射物体中的倒影的图像后,不需要立即在显示器的屏幕中显示出这部分图像,故可将这部分图像先暂时存储于第一帧缓冲区中。
然后,GPU分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,可以对应得到反射物体的图像以及被反射物体的图像,例如,GPU可基于地面的渲染信息进行光栅化,并基于人的渲染信息进行光栅化,从而得到地面的图像以及人的图像。得到反射物体的图像以及被反射物体的图像后,GPU可将这部分图像存储于第二帧缓冲区中。需要说明的是,第二帧缓冲区为当前屏幕渲染缓冲区,即用于存储即将在屏幕中显示的图像。
GPU将反射物体的图像存入第二帧缓冲区时,GPU需从第一帧缓冲区中取出反射物体中的倒影的图像,并将其存入第二帧缓冲区。如此一来,反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可在第二帧缓冲区中完成融合,形成送显的目标图像,例如,目标图像包含地面的图像、人的图像以及地面上的人影的图像,故目标图像可呈现出人在地面上的逼真画面。此后,CPU可从第二帧缓冲区中获取目标图像,并将目标图像发送至屏幕进行显示,以供用户观看。
从上述方法可以看出:GPU在获取到反射物体的渲染信息以及被反射物体的渲染信息后,可先根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区中。然后,GPU基于反射物体的渲染信息以及被反射物体的渲染信息分别进行光栅化,在将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区时,GPU需从第一帧缓冲区中取出反射物体中的倒影的图像,并将其存入第二帧缓冲区,故反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。前述过程中,在得到送显的目标图像之前,GPU仅需完成反射物体中的倒影的图像的传输(即将反射物体中的倒影的图像存入第一帧缓冲区以及从第一帧缓冲区中取出反射物体中的倒影的图像),由于反射物体中的倒影仅为部分被反射物体的影子或镜像等等,即反射物体中的倒影的图像所包含的信息量较少,故反射物体中的倒影的图像的传输过程所产生的I/O开销较小,可降低图像渲染的功耗。
在一种可能的实现方式中,根据反射物体的渲染信息进行光线追踪具体包括:在反射物体的渲染信息中,确定反射物体的目标区域的渲染信息,反射物体的目标区域包含反射物体中的倒影;根据反射物体的目标区域的渲染信息进行光线追踪。在前述实现方式中,反射物体的目标区域包含反射物体中的倒影,那么,反射物体中除目标区域外的其余区域则不存在倒影,若GPU对这部分区域进行光线追踪,则进行了无效的计算(包含光线路线计算、求交计算等等),浪费了GPU的算力。因此,GPU可在反射物体的渲染信息中确定反射物体的目标区域的渲染信息,从而根据反射物体的目标区域的渲染信息进行光线追踪,且不根据反射物体的其余区域的渲染信息进行光线追踪,相当于GPU仅对反射物体的目标区域进行光线追踪,而不对其余区域进行光线追踪,故GPU可避免无效的计算,从而节省GPU的算力,进一步降低图像渲染的功耗。
在一种可能的实现方式中,在反射物体的渲染信息中,确定反射物体的目标区域的渲染信息具体包括:CPU得到被反射物体的渲染信息后,基于被反射物体的渲染信息构建层次包围盒(bounding volume hierarchies,BVH)树,并获取拍摄目标图像的相机的空间信息。然后,CPU可将BVH树以及相机的空间信息发送至GPU。然后,由于BVH树中包含多个包围盒的空间信息,故GPU从BVH树中确定最大包围盒的空间信息。最后,GPU根据最大包围盒的空间信息以及相机的空间信息,在反射物体的渲染信息中确定反射物体的目标区域。前述实现方式中,GPU可根据最大包围盒的空间信息以及相机的空间信息,将反射物体划分为两部分,其中一部分为目标区域,另一部分为除目标区域之外的其余区域。因此,GPU可在反射物体的渲染信息中,确定反射物体的目标区域的渲染信息,并根据反射物体的目标区域的渲染信息进行光线追踪,从而得到反射物体中的倒影的图像。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为反射物体的目标区域中的任意一个顶点,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。前述实现方式中,由于反射物体的目标区域包含反射物体中的倒影,故相机所射出的光线,在反射物体的目标区域处发生反射后,反射光线会与最大包围盒相交。此时,相机的垂直高度,最大包围盒的第一目标点(最大包围盒的任意一个顶点)的垂直高度,第二目标点(目标区域中的任意一个顶点)与相机之间的距离,以及相机与第一目标点之间的距离,这四者之间存在一定的数学关系,故通过该数学关系可以精准地确定反射物体的目标区域。
在一种可能的实现方式中,反射物体的渲染信息包含反射物体的金属度,被反射物体的渲染信息包含被反射物体的金属度,反射物体的金属度大于或等于预置的阈值,被反射物体的金属度小于预置的阈值。前述实现方式中,CPU可根据物体的金属度的大小,将三维场景中的多个物体分为两类物体,分别为反射物体和被反射物体。如此一来,CPU可将三维场景的渲染信息分为反射物体的渲染信息以及被反射物体的渲染信息,由于被反射物体上通常不存在倒影,故GPU在得到反射物体的渲染信息以及被反射物体的渲染信息后,仅根据反射物体的渲染信息进行光线追踪,而不会根据被反射物体的渲染信息进行光线追踪,即GPU仅对反射物体进行光线追踪,而不会对被反射物体进行光想追踪,从而避免无效的计算,节省GPU的算力,降低图像渲染的功耗。
在一种可能的实现方式中,反射物体的图像的分辨率以及被反射物体的图像的分辨率相同,反射物体中的倒影的图像的分辨率小于反射物体的图像的分辨率。前述实现方式中,在执行光线追踪时,所需渲染的图像的分辨率越高,需要发射的光线数量则越多,所涉及的计算量则越大,因此,可降低所需渲染的图像的分辨率,以减少计算量,从而进一步地节省GPU的算力,降低图像渲染的功耗。
在一种可能的实现方式中,反射物体的渲染信息还包括反射物体的顶点的坐标、反射物体的顶点的法线、反射物体的三角形索引、反射物体的粗糙度以及反射物体的颜色,被反射物体的渲染信息还包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引、被反射物体的粗糙度以及被反射物体的颜色。
本申请实施例的第二方面提供了一种图像渲染方法,该方法包括:
CPU可获取三维场景的渲染信息,由于三维场景中通常包含第二反射物体(例如,镜子以及湖面等等)以及被反射物体(例如,人、桌子以及椅子等等),故CPU可将三维场景的渲染信息划分为第二反射物体的渲染信息以及被反射物体的渲染信息。然后,CPU将第二反射物体的渲染信息以及被反射物体的渲染信息发送至GPU。
GPU获取第二反射物体的渲染信息以及被反射物体的渲染信息后,则分别根据第二反射物体的渲染信息和被反射物体的渲染信息进行光栅化,对应得到的第二反射物体的图像以及被反射物体的图像。例如,GPU可基于镜子的渲染信息进行光栅化,并基于人的渲染信息进行光栅化,从而得到镜子的图像以及人的图像。得到的第二反射物体的图像以及被反射物体的图像,GPU将这部分图像存储于第二帧缓冲区,第二帧缓冲区为当前屏幕渲染缓冲区,即用于存储即将在屏幕中显示的图像。
在GPU执行光栅化的同时,GPU还可根据第二反射物体的渲染信息进行光线追踪,得到第二反射物体中的倒影的图像。例如,GPU可基于镜子的渲染信息进行光线追踪,得到镜子中的人的图像。得到反射物体中的倒影的图像后,GPU也可将这部分图像存储于第二帧缓冲区中。如此一来,第二反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像可在第二帧缓冲区中完成融合,得到送显的目标图像。例如,目标图像包含镜子的图像、人的图像以及镜子中的人的图像,故目标图像可呈现出人在镜子前的逼真画面。此后,CPU可从第二帧缓冲区中获取目标图像,并将目标图像发送至屏幕进行显示,以供用户观看。
从上述方法可以看出:GPU在获取到第二反射物体的渲染信息以及被反射物体的渲染信息后,GPU基于第二反射物体的渲染信息以及被反射物体的渲染信息进行光栅化,并将得到的第二反射物体的图像以及被反射物体的图像存储于第二帧缓冲区。与此同时,GPU还可基于第二反射物体的渲染信息进行光线追踪,并将得到的第二反射物体中的倒影的图像存储于第二帧缓冲区。如此一来,第二反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。前述过程中,在得到送显的目标图像之前,GPU不需将图像存入第一帧缓冲区(用于存储暂时不需在屏幕中显示的图像)以及从第一帧缓冲区中取出图像,可以有效减少I/O开销,从而降低图像渲染的功耗。
在一种可能的实现方式中,该方法还包括:获取第一反射物体的渲染信息,第一反射物体的反射类型与第二反射物体的反射类型不同;根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;根据第一反射物体的渲染信息进行光栅化,并将得到的第一反射物体的图像存储于第二帧缓冲区;从第一帧缓冲区中获取第一反射物体中的倒影的图像,将第一反射物体中的倒影的图像存储于第二帧缓冲区中,以使得第二反射物体的图像、被反射物体的图像、第一反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像完成融合,得到目标图像。
前述实现方式中,GPU可同时获取到第二反射物体的渲染信息、被反射物体的渲染信息的同时以及第一反射物体的渲染信息,一般地,第一反射物体的反射类型为漫反射,第二反射物体的反射类型为镜面反射,例如,第一反射物体为地面,第二反射物体为镜子等等。接着,GPU可先根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区中。然后,GPU基于第二反射物体的渲染信息、第一反射物体的渲染信息以及被反射物体的渲染信息分别进行光栅化,并基于第二反射物体的渲染信息进行光线追踪,在将得到的第二反射物体的图像、第一反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像存储于第二帧缓冲区时,GPU需从第一帧缓冲区中取出第一反射物体中的倒影的图像,并将其存入第二帧缓冲区,故第二反射物体的图像、第一反射物体的图像、被反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。例如,目标图像中包含地面的图像、镜子的图像、人的图像、地面上的人影的图像以及镜子中的人的图像,故目标图像可呈现出人站在地面上照镜子的画面。
上述过程中,在得到送显的目标图像之前,GPU仅需完成第一反射物体中的倒影的图像的传输(即将第一反射物体中的倒影的图像存入第一帧缓冲区以及从第一帧缓冲区中取出第一反射物体中的倒影的图像),由于第一反射物体中的倒影仅为部分被反射物体的影子等等,即反射物体中的倒影的图像所包含的信息量较少,故第一反射物体中的倒影的图像的传输过程所产生的I/O开销较小,可降低图像渲染的功耗。
在一种可能的实现方式中,根据第二反射物体的渲染信息进行光线追踪具体包括:在第二反射物体的渲染信息中,确定第二反射物体的目标区域的渲染信息,第二反射物体的目标区域包含第二反射物体中的倒影;根据第二反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,在第二反射物体的渲染信息中,确定第二反射物体的目标区域的渲染信息具体包括:获取BVH树以及相机的空间信息,BVH树基于被反射物体的渲染信息构建,相机用于拍摄目标图像;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第二反射物体的渲染信息中确定第二反射物体的目标区域的渲染信息。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,第二反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为第二反射物体的目标区域中的任意一个顶点,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。
在一种可能的实现方式中,根据第一反射物体的渲染信息进行光线追踪具体包括:在第一反射物体的渲染信息中,确定第一反射物体的目标区域的渲染信息,第一反射物体的目标区域包含第一反射物体中的倒影;根据第一反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,在第一反射物体的渲染信息中,确定第一反射物体的目标区域的渲染信息具体包括:获取BVH树以及相机的空间信息;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第一反射物体的渲染信息中确定第一反射物体的目标区域的渲染信息。
在一种可能的实现方式中,第一反射物体的目标区域的渲染信息包含第三目标点的坐标,第三目标点满足以下条件:相机的垂直高度与第四距离之间的比值等于第一目标点的垂直高度与第五距离之间的比值,第三目标点为第一反射物体的目标区域中的任意一个顶点,第四距离基于第三目标点的坐标以及相机的坐标确定,第五距离为第四距离与第三距离之间的差值。
在一种可能的实现方式中,第二反射物体的渲染信息包含第二反射物体的金属度和第二反射物体的粗糙度,被反射物体的渲染信息包含被反射物体的金属度和被反射物体的粗糙度,第一反射物体的渲染信息包含第一反射物体的金属度和第一反射物体的粗糙度;其中,第一反射物体的金属度大于或等于预置的第一阈值且小于预置的第二阈值,第二反射物体的金属度大于或等于预置的第二阈值,被反射物体的金属度小于预置的第一阈值;第二反射物体的粗糙度小于预置的第三阈值,第一反射物体的粗糙度大于或等于预置的第三阈值。
在一种可能的实现方式中,第二反射物体的图像的分辨率、被反射物体的图像的分辨率、第一反射物体的图像的分辨率以及第二反射物体中的倒影的图像的分辨率相同,第一反射物体中的倒影的图像的分辨率小于第一反射物体的图像的分辨率。
在一种可能的实现方式中,第二反射物体的渲染信息还包括第二反射物体的顶点的坐标、第二反射物体的顶点的法线、第二反射物体的三角形索引以及第二反射物体的颜色,被反射物体的空间信息包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引以及被反射物体的颜色,第一反射物体的空间信息包括第一反射物体的顶点的坐标、第一反射物体的顶点的法线、第一反射物体的三角形索引以及第一反射物体的颜色。
本申请实施例的第三方面提供了一种电子设备,该电子设备包括获取模块和处理模块。获取模块,用于获取反射物体的渲染信息以及被反射物体的渲染信息;处理模块,用于根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;处理模块,还用于分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像;处理模块,还用于从第一帧缓冲区中获取反射物体中的倒影的图像,将反射物体中的倒影的图像存储于第二帧缓冲区中,以使得反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块,具体用于:在反射物体的渲染信息中,确定反射物体的目标区域的渲染信息,反射物体的目标区域包含反射物体中的倒影;根据反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块,具体用于:获取层次包围盒BVH树以及相机的空间信息,BVH树基于被反射物体的渲染信息构建,相机用于拍摄目标图像;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在反射物体的渲染信息中确定反射物体的目标区域的渲染信息。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为反射物体的目标区域中的任意一个顶点,第一距离为第二目标点与相机之间的距离,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。
在一种可能的实现方式中,反射物体的渲染信息包含反射物体的金属度,被反射物体的渲染信息包含被反射物体的金属度,反射物体的金属度大于或等于预置的阈值,被反射物体的金属度小于预置的阈值。
在一种可能的实现方式中,反射物体的图像的分辨率以及被反射物体的图像的分辨率相同,反射物体中的倒影的图像的分辨率小于反射物体的图像的分辨率。
在一种可能的实现方式中,反射物体的渲染信息还包括反射物体的顶点的坐标、反射物体的顶点的法线、反射物体的三角形索引、反射物体的粗糙度以及反射物体的颜色,被反射物体的渲染信息还包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引、被反射物体的粗糙度以及被反射物体的颜色。
本申请实施例的第四方面提供了一种电子设备,该电子设备包括获取模块以及处理模块。获取模块,用于获取第二反射物体的渲染信息以及被反射物体的渲染信息;处理模块,用于分别根据第二反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的第二反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像;处理模块,还用于根据第二反射物体的渲染信息进行光线追踪,并将得到的第二反射物体中的倒影的图像存储于第二帧缓冲区,以使得第二反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块,具体用于:在第二反射物体的渲染信息中,确定第二反射物体的目标区域的渲染信息,第二反射物体的目标区域包含第二反射物体中的倒影;根据第二反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块,具体用于:获取BVH树以及相机的空间信息,BVH树基于被反射物体的渲染信息构建,相机用于拍摄目标图像;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第二反射物体的渲染信息中确定第二反射物体的目标区域的渲染信息。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,第二反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为第二反射物体的目标区域中的任意一个顶点,第一距离为第二目标点与相机之间的距离,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。
在一种可能的实现方式中,获取模块,还用于获取第一反射物体的渲染信息,第一反射物体的反射类型与第二反射物体的反射类型不同;处理模块,还用于:根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;根据第一反射物体的渲染信息进行光栅化,并将得到的第一反射物体的图像存储于第二帧缓冲区;从第一帧缓冲区中获取第一反射物体中的倒影的图像,将第一反射物体中的倒影的图像存储于第二帧缓冲区中,以使得第二反射物体的图像、被反射物体的图像、第一反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块,具体用于:在第一反射物体的渲染信息中,确定第一反射物体的目标区域的渲染信息,第一反射物体的目标区域包含第一反射物体中的倒影;根据第一反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块,具体用于:获取BVH树以及相机的空间信息;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第一反射物体的渲染信息中确定第一反射物体的目标区域的渲染信息。
在一种可能的实现方式中,第一反射物体的目标区域的渲染信息包含第三目标点的坐标,第三目标点满足以下条件:相机的垂直高度与第四距离之间的比值等于第一目标点的垂直高度与第五距离之间的比值,第三目标点为第一反射物体的目标区域中的任意一个顶点,第四距离为第三目标点与相机之间的距离,第四距离基于第三目标点的坐标以及相机的坐标确定,第五距离为第四距离与第三距离之间的差值。
在一种可能的实现方式中,第二反射物体的渲染信息包含第二反射物体的金属度和第二反射物体的粗糙度,被反射物体的渲染信息包含被反射物体的金属度和被反射物体的粗糙度,第一反射物体的渲染信息包含第一反射物体的金属度和第一反射物体的粗糙度;其中,第一反射物体的金属度大于或等于预置的第一阈值且小于预置的第二阈值,第二反射物体的金属度大于或等于预置的第二阈值,被反射物体的金属度小于预置的第一阈值;第二反射物体的粗糙度小于预置的第三阈值,第一反射物体的粗糙度大于或等于预置的第三阈值。
在一种可能的实现方式中,第二反射物体的图像的分辨率、被反射物体的图像的分辨率、第一反射物体的图像的分辨率以及第二反射物体中的倒影的图像的分辨率相同,第一反射物体中的倒影的图像的分辨率小于第一反射物体的图像的分辨率。
在一种可能的实现方式中,第二反射物体的渲染信息还包括第二反射物体的顶点的坐标、第二反射物体的顶点的法线、第二反射物体的三角形索引以及第二反射物体的颜色,被反射物体的空间信息包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引以及被反射物体的颜色,第一反射物体的空间信息包括第一反射物体的顶点的坐标、第一反射物体的顶点的法线、第一反射物体的三角形索引以及第一反射物体的颜色。
本申请实施例的第五方面提供了一种电子设备,该电子设备包括存储器和处理器;存储器存储有代码,处理器被配置为执行代码,当代码被执行时,电子设备执行如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。
本申请实施例的第六方面提供了一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。
本申请实施例的第七方面提供了一种计算机程序产品,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。
本申请实施例中,GPU在获取到反射物体的渲染信息以及被反射物体的渲染信息后,可先根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区中。然后,GPU基于反射物体的渲染信息以及被反射物体的渲染信息分别进行光栅化,在将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区时,GPU需从第一帧缓冲区中取出反射物体中的倒影的图像,并将其存入第二帧缓冲区,故反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。前述过程中,在得到送显的目标图像之前,GPU仅需完成反射物体中的倒影的图像的传输(即将反射物体中的倒影的图像存入第一帧缓冲区以及从第一帧缓冲区中取出反射物体中的倒影的图像),由于反射物体中的倒影仅为部分被反射物体的影子或镜像等等,即反射物体中的倒影的图像所包含的信息量较少,故反射物体中的倒影的图像的传输过程所产生的I/O开销较小,可降低图像渲染的功耗。
附图说明
图1为光线追踪技术的原理示意图;
图2为光栅化技术的原理示意图;
图3为本申请实施例提供的电子设备的一个结构示意图;
图4为本申请实施例提供的图像渲染方法的一个流程示意图;
图5为本申请实施例提供的BVH树的一种示意图;
图6为本申请实施例提供的第一种应用场景的示意图;
图7为本申请实施例提供的目标区域的一个示意图;
图8为本申请实施例提供的图像渲染方法的另一流程示意图;
图9为本申请实施例提供的第二种应用场景的示意图;
图10为本申请实施例提供的图像渲染方法的又一流程示意图;
图11为本申请实施例提供的第三种应用场景的示意图;
图12为本申请实施例提供的图像渲染的方法的一个应用例示意图;
图13为本申请实施例提供的电子设备的另一结构示意图;
图14为本申请实施例提供的电子设备的又一结构示意图。
具体实施方式
本申请实施例提供了一种图像渲染方法及其相关设备,可避免在信息传输的过程中产生大量的I/O开销,从而降低图像渲染的功耗。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
随着计算机技术的发展,越来越多的应用程序,例如游戏应用或者视频应用等应用程序,要求在电子设备上显示画质精美的图像。这些图像通常是由电子设备基于三维(three dimensional,3D)场景中的模型进行渲染得到的。
在传统的图像处理方法中,通常采用光栅化处理对3D场景进行渲染,以得到能够显示3D场景的图像。然而,采用光栅化技术进行渲染所得到的图像的品质一般,往往难以呈现逼真的画面。例如,渲染得到的图像中通常难以真实还原场景中的光线反射、折射以及阴影等效果。有鉴于此,一种新的渲染技术--光线追踪技术应运而生。光线追踪技术与光栅化技术都是用于实现图像渲染的方法,其主要目的是通过计算着色,将3D空间的物体,投影到二维的屏幕空间进行显示。
图1为光线追踪技术的原理示意图。如图1所示,光线追踪的原理为:从相机的位置,通过图像平面上的像素位置,发射一束光线到三维场景中,求光线和几何图形间最近的交点,再求该交点的着色。如果该交点的材质是反射性的,可以在该交点向的反射方向继续追踪,并且继续求取反射后的交点的着色。也就是说,光线追踪方法是通过追踪光线在三维场景中的传播过程,来计算投影与全局光照,从而渲染得到二维图像。
图2为光栅化技术的原理示意图。如图2所示,光栅化处理的原理为:将三维场景中的物体采用三角形进行分割,通过坐标变化计算将三角形顶点的三维坐标变换为图像上的二维坐标,最后在图像上的三角形内填充纹理,以实现图像的渲染。
由于光栅化技术是将屏幕空间上可见的内容直接投影至屏幕空间上,而得到相应的图像,其处理难度较低,所提供的光影效果也较差。光线追踪技术则是通过追踪从相机发出的每条光线来实现如反射、折射、阴影以及环境光遮蔽等真实效果,因此光线追踪方法能够提供真实逼真的光影效果。因此,为了渲染出较为逼真的图像,当前电子设备通常采用光栅化技术结合光线追踪技术对三维场景进行渲染,以提高用户的观看体验。
具体地,电子设备的CPU将三维场景的渲染信息发送至电子设备的GPU后,GPU可先基于渲染信息进行光栅化,并将得到的G-buffer(包含三维场景中各个物体的图像以及各个物体在屏幕空间的几何信息)存储在第一帧缓冲区中,第一帧缓冲区用于存储暂时不需显示的图像以及其余信息。然后,GPU从第一帧缓冲区获取G-buffer,并基于G-buffer进行光线追踪,从而得到某些物体中的倒影(例如,地面上的人影、镜子中的人像等等)的图像。如此一来,则GPU可以得到模拟三维场景的目标图像,该目标图像包含场景中各个物体的图像以及某些物体中的倒影的图像,并将目标图像存储于第二帧缓冲区中。由于第二帧缓冲区用于存储即将显示的图像,故CPU可从第二帧缓冲区中获取目标图像,使其在电子设备的屏幕中显示,以供用户观看。
上述过程中,在得到送显的目标图像之前,GPU需要完成G-buffer的传输(即将G-buffer存入第一帧缓冲区以及从第一帧缓冲区中取出G-buffer),而G-buffer包含了所有物体的图像等诸多信息,故G-buffer的传输过程会产生大量的输入/输出(Input/Output,I/O)开销,导致图像渲染的功耗过高。
为了解决上述问题,本申请实施例提供了一种图像渲染方法,该方法可以由电子设备来执行。该电子设备中包括CPU和GPU,能够对图像进行渲染处理。示例性地,该电子设备例如可以是手机(mobile phone)、平板电脑、笔记本电脑、PC、移动互联网设备(mobileinternet 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场景进行渲染而得到二维图像的应用程序,例如游戏应用、锁屏应用、地图应用或监控应用等应用。
为了便于理解,下面结合图3对电子设备的具体结构进行详细的介绍。可以参阅图3,图3为本申请实施例提供的电子设备的一个结构示意图。如图3所示,电子设备3000可以包括:中央处理器3001、图形处理器3002、显示设备3003和存储器3004。可选地,该电子设备3000还可以包括至少一个通信总线(图3中未示出),用于实现各个组件之间的连接通信。
应当理解,电子设备3000中的各个组件还可以通过其他连接器相耦合,其他连接器可包括各类接口、传输线或总线等。电子设备3000中的各个组件还可以是以中央处理器3001为中心的放射性连接方式。在本申请的各个实施例中,耦合是指通过相互电连接或连通,包括直接相连或通过其他设备间接相连。
中央处理器3001和图形处理器3002的连接方式也有多种,并不局限于图2所示的方式。电子设备3000中的中央处理器3001和图形处理器3002可以位于同一个芯片上,也可以分别为独立的芯片。
下面对中央处理器3001、图形处理器3002、显示设备3003和存储器3004的作用进行简单的介绍。
中央处理器3001:用于运行操作系统3005和应用程序3006。应用程序3006可以为图形类应用程序,比如游戏、视频播放器等等。操作系统3005提供了系统图形库接口,应用程序3006通过该系统图形库接口,以及操作系统3005提供的驱动程序,比如图形库用户态驱动和/或图形库内核态驱动,生成用于渲染图形或图像帧的指令流,以及所需的相关渲染数据。其中,系统图形库包括但不限于:嵌入式开放图形库(open graphics library forembedded system,OpenGL ES)、柯罗诺斯平台图形界面(the khronos platform graphicsinterface)或Vulkan(一个跨平台的绘图应用程序接口)等系统图形库。指令流包含一些列的指令,这些指令通常为对系统图形库接口的调用指令。
可选地,中央处理器3001可以包括以下至少一种类型的处理器:应用处理器、一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、微控制器(microcontroller unit,MCU)或人工智能处理器等。
中央处理器3001还可进一步包括必要的硬件加速器,如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、或者用于实现逻辑运算的集成电路。处理器3001可以被耦合到一个或多个数据总线,用于在电子设备3000的各个组件之间传输数据和指令。
图形处理器3002:用于接收处理器3001发送的图形指令流,通过渲染管线(pipeline)生成渲染目标,并通过操作系统的图层合成显示模块将渲染目标显示到显示设备3003。其中,渲染管线也可以称为渲染流水线、像素流水线或像素管线,是图形处理器3002内部用于处理图形信号的并行处理单元。图形处理器3002中可以包括多个渲染管线,多个渲染管线之间可以相互独立地并行处理图形信号。例如,渲染管线可以在渲染图形或图像帧的过程中执行一些列操作,典型的操作可以包括:顶点处理(Vertex Processing)、图元处理(Primitive Processing)、光栅化(Rasterization)、片段处理(FragmentProcessing)等等。
可选地,图形处理器3002可以包括执行软件的通用图形处理器,如GPU或其他类型的专用图形处理单元等。
显示设备3003:用于显示由电子设备3000生成的各种图像,该图像可以为操作系统的图形用户界面(graphical user interface,GUI)或由图形处理器3002处理的图像数据(包括静止图像和视频数据)。
可选地,显示设备3003可以包括任何合适类型的显示屏。例如液晶显示器(liquidcrystal display,LCD)或等离子显示器或有机发光二极管(organic light-emittingdiode,OLED)显示器等。
存储器3004,是中央处理器3001和图形处理器3002之间的传输通道,可以为双倍速率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)或者其它类型的缓存。
以上介绍了本申请实施例提供的图像渲染方法所应用的电子设备的具体结构,以下将详细介绍本申请实施例所提供的图像渲染方法的流程。首先对下文涉及的若干个名词进行解释:
离屏渲染通道(offscreen render pass):通过该通道渲染得到的图像,通常为暂时不需在屏幕中显示的图像,这部分图像可存储于分配给离屏渲染通道的帧缓冲区(framebuffer),为了便于说明,下文将该帧缓冲区称为第一帧缓冲区,第一帧缓冲区也可称为离屏渲染缓冲区,用于存储暂时不需在屏幕中显示的图像。在本申请中,离屏渲染通道可用于实现光线追踪技术。
当前屏幕渲染通道(onscreen render pass):通过该通道渲染得到的图像,通常为即将在屏幕中显示的图像(即送显的图像),这部分图像可存储于分配给当前屏幕渲染通道的帧缓冲区(framebuffer),为了便于说明,下文将该帧缓冲区称为第二帧缓冲区,第二帧缓冲区也可称为当前屏幕渲染缓冲区,用于存储即将在屏幕中显示的图像。在本申请中,当前屏幕渲染通道即可用于实现光栅化技术,也可用于实现光线追踪技术。
基于上述渲染通道可构建三种不同的应用场景。第一种应用场景中,电子设备可通过离屏渲染通道实现光线追踪技术,并通过当前屏幕渲染通道实现光栅化技术,以渲染出送显的目标图像。第二种应用场景中,电子设备可通过当前屏幕渲染通道实现光线追踪技术以及光栅化技术,以渲染出送显的目标图像。第三种应用场景中,电子设备可通过离屏渲染通道实现光线追踪技术,并通过当前屏幕渲染通道实现光线追踪技术以及光栅化技术,以渲染出送显的目标图像。
下文先对第一种应用场景进行介绍,图4为本申请实施例提供的图像渲染方法的一个流程示意图,如图4所示,该方法包括:
401、获取反射物体的渲染信息以及被反射物体的渲染信息。
电子设备的CPU在获取某个三维场景的模型文件后,可从中解析出三维场景中各个物体的渲染信息。每个物体的渲染信息包含该物体的空间信息以及该物体的材质信息,其中,物体的空间信息包含物体的顶点坐标、物体的顶点法线以及三角形索引等信息,物体的材质信息包含物体的颜色、物体的金属度以及物体的粗糙度等信息。
CPU在得到物体的材质信息后,可基于物体的材质信息确定物体的类别。具体地,CPU在得到某个物体的材质信息后,可基于该物体的金属度判断该物体是否为反射物体,若该物体的金属度大于或等于预置的阈值,则可确定该物体为反射物体,若该物体的金属度小于预置的阈值,则可确定该物体为被反射物体。例如,地面、镜子以及湖泊等物体的金属度通常大于预置的阈值,故这部分物体可称为反射物体,而人以及桌子等物体的金属度通常小于预置的阈值,故这部分物体可称为被反射物体。如此一来,CPU可将三维场景中的多个物体分为两类物体,即反射物体和被反射物体。
CPU还可基于被反射物体的空间信息构建BVH树,BVH树可用于实现后续的光线追踪操作。具体地,CPU可根据被反射物体的顶点坐标、顶点法线以及三角形索引构建BVH树,可以理解的是,BVH树包含多个包围盒的空间信息,每个包围盒的空间信息包含该包围盒(长方体)的8个顶点的坐标以及8个顶点的垂直高度,每个包围盒用于包围至少一个被反射物体。为了进一步理解前述的BVH树,下文结合图5作进一步的介绍。图5为本申请实施例提供的BVH树的一种示意图,如图5所示,设三维场景中存在6个被反射物体,基于这6个物体的空间信息可确定包围盒A(包围这6个物体)的空间信息,基于其中4个物体的空间信息可确定包围盒B(包围这4个物体)的空间信息,基于剩余2个物体的空间信息可确定包围盒C(包围这2个物体)的空间信息,并将包围盒A的空间信息、包围盒B的空间信息和包围盒C的空间信息以二叉树的结构进行管理,得到BVH树。可见,BVH树可集中管理包围盒A、包围盒B和包围盒C的空间信息,相当于集中管理包围盒A、包围盒B和包围盒C。其中,包围盒A即为所有包围盒中的最大包围盒。
在电子设备的GPU基于BVH树实现光线追踪的时候,需要计算光线是否和三维场景中的被反射物体是否相交(即求交计算)。由于BVH树的存在,GPU可基于BVH树确定包围被反射物体的某个包围盒,然后判断光线是否和该包围盒相交,若光线没有碰到该包围盒,表明光线一定不会和该包围盒里的被反射物体相交;如果光线碰到该包围盒,那么再计算光线是否和该包围盒中的被反射物体相交。例如,在检测到光线与二叉树中的B包围盒不相交时,则表示该光线一定不会和B包围盒中的四个被反射物体相交,因此,可以免去检测光线是否与B包围盒中的四个被反射物体相交的步骤,从而仅检测光线是否与C包围盒中的两个被反射物体相交。
此外,CPU还可获取相机的空间信息,该相机用于拍摄模拟三维场景的目标图像。其中,相机的空间信息可包括相机的垂直高度以及相机的坐标。
CPU得到反射物体的渲染信息、被反射物体的渲染信息、BVH树以及相机的空间信息后,则将这部分信息发送至GPU,以使得GPU根据这部分信息进行图像渲染。
402、根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像。
GPU得到反射物体的渲染信息(包含反射物体的空间信息以及材质信息)、被反射物体的渲染信息(包含被反射物体的空间信息以及材质信息)、BVH树以及相机的空间信息后,可基于这部分信息进行图像渲染。
为了便于理解,下文结合图6对前述图像渲染的过程做具体的介绍。图6为本申请实施例提供的第一种应用场景的示意图。如图6所示,GPU为离屏渲染通道设置有一个渲染管线601,渲染管线601包含一个顶点着色器(vertex shader,VS)6011和一个片段着色器(frag shader,FS)6012。其中,片段着色器6012内设置有光线追踪的算法,因此,片段着色器6012可用于执行光线追踪的步骤。因此,GPU可先将反射物体的渲染信息输入渲染管线601,以使得渲染管线601基于反射物体的渲染信息进行光线追踪,即对反射物体进行光线追踪,得到反射物体中的倒影的图像。
然而,若对整个反射物体进行光线追踪,即对反射物体的每个顶点均发射光线,然后对每条光线均进行路线计算和求交计算,涉及的计算量相当大。而且,并不是每条光线均能与被反射物体相交,那么基于无效光线(即不与被反射物体相交的光线)所进行的计算则为无效的计算。可以理解的是,反射物体中的倒影实际上就是被反射物体在反射物体中的影响或镜像等等,故可在反射物体中将包含倒影的某一个块区域确定为目标区域,若光线射向反射物体的目标区域,那么这部分光线(有效光线)在经过该区域后,则会与被反射物体相交。若光线射向反射物体中,除目标区域之外的其余区域,那么这部分光线在经过该区域后,则不会与被反射物体相交。由此可见,若只对目标区域进行光线追踪,则可以有效减小光线追踪的计算量,从而节省GPU的算例,降低图像渲染的功耗。
值得注意的是,GPU可通过如下方式确定反射物体的目标区域:
GPU可从BVH树中确定最大包围盒的空间信息,然后根据最大包围盒的空间信息以及相机的空间信息,在反射物体的空间信息中确定反射物体的目标区域的空间信息。得到反射物体的目标区域的空间信息后,则相当于确定反射物体的目标区域。具体地,设最大包围盒中的任意一个顶点为第一目标点,设反射物体的目标区域中的任意一个顶点为第二目标点。那么,相机的垂直高度(H1),第一目标点的垂直高度(H2),第二目标点与相机之间的距离(X1),以及相机与第一目标点之间的距离(X2),这四者之间存在如下的数学关系:H1/X1=H2/(X2-X1),需要说明的是,X1即为前述的第一距离,X2-X1即为前述的第二距离,X2即为前述的第三距离,X1基于相机的坐标以及第二目标点的坐标确定,X2基于相机的坐标以及第一目标点的坐标确定。
由于相机的坐标、相机的垂直高度、第一目标点的坐标以及第一目标点的垂直高度均为已知值,只有第二目标点的坐标为未知数。反射物体的渲染信息包含反射物体中每一个顶点的坐标,故GPU可判断反射物体中每一个顶点的坐标是否满足前述数学关系,若某一顶点的坐标满足前述数学关系,则该顶点为反射物体的目标区域中的一个顶点。如此一来,则可将反射物体划分为目标区域,以及除目标区域外的其余区域。相应地,也可将反射物体的渲染信息划分为目标区域的渲染信息以及其余区域的渲染信息。
下面结合图7对上述确定反射物体的目标区域的过程作进一步的介绍。图7为本申请实施例提供的目标区域的一个示意图,如图7所示,设某个三维场景为某个人物站在地面,地面上有人的倒影。可先确定该场景中的最大包围盒,该最大包围盒即围住人物的包围盒。基于最大包围盒的空间信息以及相机的空间信息,则可确定出地面的目标区域,该目标区域包含人物的倒影。
在得到反射物体的目标区域的渲染信息后,GPU可将反射物体的目标区域的空间信息(例如,反射物体的顶点的坐标以及反射物体的顶点的法线)输入顶点着色器6011,顶点着色器6011可对这部分空间信息进行一定的计算处理(例如,将三维的坐标转换为二维的坐标等等),并将处理后的空间信息输入片段着色器6012。此外,GPU还会将BVH树、反射物体的目标区域的材质信息直接输入片段着色器6012,故片段着色器6012可基于处理后的空间信息、BVH树以及反射物体的目标区域的材质信息进行光线追踪操作,从而得到反射物体中的倒影的图像,并将这部分图像存储于第一帧缓冲区中。至此,GPU仅成功渲染出反射物体中的倒影的图像,例如,图7中人物的倒影的图像。
更进一步地,GPU还为离屏渲染通道设置了一个分辨率(该分辨率的大小可根据实际需要进行设置),该分辨率通常小于屏幕分辨率(例如,该分辨率的大小可以是屏幕分辨率的大小的1/n等等)。那么,渲染管线601则会以该分辨率来渲染反射物体的目标区域的图像,由于所需渲染的图像的分辨率较小,在光线追踪过程中,所需处理的目标区域的顶点则越少,所需发射的光线也就越少,故可减少光线追踪的计算量,从而进一步地节省GPU的算力,降低图像渲染的功耗。
403、分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像。
如图6所示,GPU为当前屏幕渲染通道设置有两个渲染管线,分别为渲染管线602和渲染管线603。渲染管线602包含一个顶点着色器6021和一个片段着色器6022,渲染管线603包含一个顶点着色器6031和一个片段着色器6032,片段着色器6022和片段着色器6032均为原始的片段着色器(即内部未设置任何算法),故片段着色器6022和片段着色器6032均可用于执行光栅化的步骤,其中,片段着色器6022用于执行反射物体的光栅化,片段着色器6032用于执行被反射物体的光栅化。
因此,在将反射物体中的倒影的图像存入第一帧缓冲区后,GPU可将反射物体的渲染信息输入渲染管线602,使得渲染管线602根据反射物体的渲染信息进行光栅化,即对反射物体进行光栅化,得到反射物体的图像。具体地,GPU可将反射物体的空间信息(例如,反射物体的顶点的坐标)输入顶点着色器,顶点着色器6021可对这部分空间信息进行一定的计算处理,并将处理后的空间信息输入片段着色器6022。此外,GPU还会将反射物体的材质信息直接输入片段着色器6022,故片段着色器6022可基于处理后的空间信息以及反射物体的材质信息进行光栅化操作,从而得到反射物体中的图像,并将这部分图像存储于第二帧缓冲区中。
GPU还可将被反射物体的渲染信息输入渲染管线603,使得渲染管线603根据被反射物体的渲染信息进行光栅化,即对被反射物体进行光栅化,得到被反射物体的图像。具体地,GPU可将被反射物体的空间信息(例如,被反射物体的顶点的坐标)输入顶点着色器,顶点着色器6031可对这部分空间信息进行一定的计算处理,并将处理后的空间信息输入片段着色器6032。此外,GPU还会将被反射物体的材质信息直接输入片段着色器6032,故片段着色器6032可基于处理后的空间信息以及被反射物体的材质信息进行光栅化操作,从而得到被反射物体中的图像,并将这部分图像存储于第二帧缓冲区中。至此,GPU成功渲染出反射物体的图像以及被反射物体的图像,例如,图7中地面的图像以及人的图像。
应理解,反射物体的图像的渲染过程以及被反射物体的图像的渲染过程可以是并行的。
404、从第一帧缓冲区中获取反射物体中的倒影的图像,将反射物体中的倒影的图像存储于第二帧缓冲区中,以使得反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像完成融合,得到目标图像。
由于第二帧缓冲区存储的是即将在屏幕中显示的图像(即送显的图像),故在GPU将反射物体的图像存入第二帧缓冲区时,GPU需立即从第一帧缓冲区中获取反射物体中的倒影的图像,并将反射物体中的倒影的图像存储于第二帧缓冲区中。如此一来,反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可以在第二帧缓冲区中完成融合,得到送显的目标图像,例如,目标图像可呈现出图7所示的三维场景,即人物站在地面,且地面上有人的倒影。此后,CPU可从第二帧缓冲区中获取目标图像,并将目标图像发送至屏幕中显示,以供用户观看。
需要说明的是,GPU也为当前屏幕渲染通道设置了一个分辨率,该分辨率即为屏幕分辨率。因此,反射物体的图像的分辨率以及被反射物体的图像的分辨率即为屏幕分辨率,故反射物体的图像的分辨率以及被反射物体的图像的分辨率大于反射物体中的倒影的图像的分辨率。那么在目标图像中,反射物体的图像以及被反射物体的图像会显得比较清晰,反射物体中的倒影的图像会显得比较模糊。
本实施例中,GPU在获取到反射物体的渲染信息以及被反射物体的渲染信息后,可先根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区中。然后,GPU基于反射物体的渲染信息以及被反射物体的渲染信息分别进行光栅化,在将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区时,GPU需从第一帧缓冲区中取出反射物体中的倒影的图像,并将其存入第二帧缓冲区,故反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。前述过程中,在得到送显的目标图像之前,GPU仅需完成反射物体中的倒影的图像的传输(即将反射物体中的倒影的图像存入第一帧缓冲区以及从第一帧缓冲区中取出反射物体中的倒影的图像),由于反射物体中的倒影仅为部分被反射物体的影子或镜像等等,即反射物体中的倒影的图像所包含的信息量较少,故反射物体中的倒影的图像的传输过程所产生的I/O开销较小,可降低图像渲染的功耗。
以上是对第一种应用场景所进行的详细说明,以下将对第二种应用场景进行介绍。图8为本申请实施例提供的图像渲染方法的另一流程示意图,如图8所示,该方法包括:
801、获取反射物体的渲染信息以及被反射物体的渲染信息。
关于步骤801的说明,可参考图4所示实施例中步骤401的相关说明部分,此处不再赘述。
802、分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像。
本实施例中,GPU可通过当前屏幕渲染通道完成光栅化。如图9所示(图9为本申请实施例提供的第二种应用场景的示意图),GPU为当前屏幕渲染通道设置有渲染管线901和渲染管线902,其中,渲染管线901用于对反射物体进行光栅化,渲染管线902用于对被反射物体进行光栅化。具体地,关于步骤802中有关于光栅化过程的说明,可参考图4所示实施例中步骤403的相关说明部分,此处不再赘述。
803、根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第二帧缓冲区,以使得反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像完成融合,得到目标图像。
本实施例中,GPU可通过当前屏幕渲染通道完成光线追踪。如图9所示(,GPU为当前屏幕渲染通道还设置有第三个渲染管线903,渲染光线903用于对反射物体进行光线追踪。关于步骤803中有关于光线追踪过程的说明,可参考图4所示实施例中步骤402的相关说明部分,此处不再赘述。
需要说明的是,步骤803与步骤402的区别在于:在步骤803中,完成反射反射物体的光线追踪后,所得到的反射物体的倒影的图像存储于第二帧缓冲区中,故反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可在第二帧缓冲区中完成融合,得到目标图像。
应理解,反射物体的图像的渲染过程、被反射物体的图像的渲染过程以及反射物体中的倒影的图像的渲染过程可以是并行的,即GPU可同步执行步骤802和步骤803。
本实施例中,GPU在获取到反射物体的渲染信息以及被反射物体的渲染信息后,GPU基于反射物体的渲染信息以及被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区。与此同时,GPU还可基于反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第二帧缓冲区。如此一来,反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。前述过程中,在得到送显的目标图像之前,GPU不需将图像存入第一帧缓冲区(用于存储暂时不需在屏幕中显示的图像)以及从第一帧缓冲区中取出图像,可以有效减少I/O开销,从而降低图像渲染的功耗。
以上是对第二种应用场景所进行的详细说明,以下将对第三种应用场景进行介绍。图10为本申请实施例提供的图像渲染方法的又一流程示意图,如图10所示,该方法包括:
1001、获取第一反射物体的渲染信息、第二反射物体的渲染信息以及被反射物体的渲染信息。
本实施例中,CPU在获取某个三维场景的模型文件后,可从中解析出三维场景中各个物体的渲染信息。每个物体的渲染信息包含该物体的空间信息以及该物体的材质信息,其中,物体的空间信息包含物体的顶点坐标、物体的顶点法线以及三角形索引等信息,物体的材质信息包含物体的颜色、物体的金属度以及物体的粗糙度等信息。
CPU在得到物体的材质信息后,可基于物体的金属度以及粗糙度确定物体的类别。具体地,CPU若确定某个物体的金属度小于预置的第一阈值,则可确定该物体为被反射物体,例如人、桌子等等。CPU若确定某个物体的金属度大于或等于预置的第一阈值,可确定该物体为反射物体,反射物体包含第一反射物体和第二反射物体,第一反射物体的反射类型为漫反射,例如,地面、玻璃等等,第二反射物体的反射类型为镜面反射,例如,镜子、湖面等等。更进一步地,CPU若确定某个物体的金属度大于或等于预置的第一阈值且小于预置的第二阈值,且该物体的粗糙度大于或等于预置的第三阈值,则确定该物体的第一反射物体。CPU若确定某个物体的金属度大于或等于预置的第二预置,且该物体的粗糙度小于预置的第三阈值,则确定该物体为第二反射物体。
CPU还可基于被反射物体的渲染信息构建BVH树,并获取相机的空间信息。该过程可参考图4所示实施例中步骤401的相关说明,此处不再赘述。
CPU得到第一反射物体的渲染信息、第二反射物体的渲染信息、被反射物体的渲染信息、BVH树以及相机的空间信息后,则将这部分信息发送至GPU,以使得GPU根据这部分信息进行图像渲染。
1002、根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像。
GPU得到第一反射物体的渲染信息、第二反射物体的渲染信息、被反射物体的渲染信息、BVH树以及相机的空间信息后,可基于这部分信息进行图像渲染。为了便于理解,下文结合图11对前述图像渲染的过程做具体的介绍。图11为本申请实施例提供的第三种应用场景的示意图。如图11所示,GPU为离屏渲染通道设置有一个渲染管线1101,渲染管线1101包含一个顶点着色器11011和一个片段着色器11012。其中,片段着色器11012内设置有光线追踪的算法,因此,片段着色器11012可用于执行第一反射物体的光线追踪。
GPU可先在第一反射物体的渲染信息确定第一反射物体的目标区域的渲染信息,然后根据第一反射物体的目标区域的渲染信息进行光线追踪,得到第一反射物体中的倒影的图像。具体地,GPU可从BVH树中确定最大包围盒的空间信息。然后,GPU根据最大包围盒的空间信息以及相机的空间信息,在第一反射物体的渲染信息中确定第一反射物体的目标区域的渲染信息。最后,GPU根据第一反射物体的目标区域的渲染信息输入渲染管线1101,以使得渲染管线1101基于第一反射物体的目标区域的渲染信息进行光线追踪,即对第一反射物体的目标区域进行光线追踪,得到第一反射物体中的倒影的图像,并将这部分图像存储于第一帧缓冲区中。其中,第一反射物体的目标区域的第三目标点满足以下条件:
相机的垂直高度与第四距离之间的比值等于第一目标点的垂直高度与第五距离之间的比值,第一目标点为所述最大包围盒中的任意一个顶点,第三目标点为第一反射物体的目标区域中的任意一个顶点,第四距离为第三目标点与相机之间的距离,第四距离基于第三目标点的坐标以及相机的坐标确定,第五距离为第四距离与第三距离之间的差值,第三距离为第一目标点与相机之间的距离,第三距离基于相机的坐标以及第一目标点的坐标确定。
更进一步地,GPU还为离屏渲染通道设置了一个分辨率(该分辨率的大小可根据实际需要进行设置),该分辨率通常小于屏幕分辨率。
需要说明的是,GPU确定第一反射物体的目标区域的过程,以及GPU通过渲染管线1101进行光线追踪的过程,可参考图4所示实施例中步骤402的相关说明部分,此处不再赘述。
1003、分别根据第一反射物体的渲染信息、第二反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的第二反射物体的图像、第一反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像。
1004、根据第二反射物体的渲染信息进行光线追踪,并将得到的第二反射物体中的倒影的图像存储于第二帧缓冲区。
如图11所示,GPU可为当前屏幕渲染通道设置有三个渲染管线,分别为渲染管线1102、渲染管线1103和渲染管线1104。渲染管线1102包含一个顶点着色器11021和一个片段着色器11022,渲染管线1103包含一个顶点着色器11031和一个片段着色器11032,渲染管线1104包含一个顶点着色器11041和一个片段着色器11042。片段着色器11022和片段着色器11032均为原始的片段着色器(即内部未设置任何算法),片段着色器11042设置有光线追踪的算法,故片段着色器11022和片段着色器11032均可用于执行光栅化的步骤,片段着色器11042可用于执行光线追踪的步骤。其中,片段着色器11022用于执行反射物体(包含第一反射物体和第二反射物体)的光栅化,片段着色器11032用于执行被反射物体的光栅化,片段着色器11042用于执行第二反射物体的光线追踪。
在将第一反射物体中的倒影的图像存入第一帧缓冲区后,GPU可将第一反射物体的渲染信息以及第二反射物体的渲染信息输入渲染管线1102,将被反射物体的渲染信息输入渲染管线1103。如此一来,渲染管线1102可根据第一反射物体以及第二反射物体的渲染信息进行光栅化(即对第一反射物体和第二反射物体进行光栅化),得到第一反射物体的图像和第二反射物体的图像,且渲染管线1103可根据被反射物体的渲染信息进行光栅化(即对被反射物体进行光栅化),得到被反射物体的图像。得到第一反射物体的图像、第二反射物体的图像以及被反射物体的图像,GPU可将这部分图像存储于第二帧缓冲区中。
与此同时,GPU还可在第二反射物体的渲染信息确定第二反射物体的目标区域的渲染信息,然后根据第二反射物体的目标区域的渲染信息进行光线追踪,得到第二反射物体中的倒影的图像。具体地,GPU可从BVH树中确定最大包围盒的空间信息。然后,GPU根据最大包围盒的空间信息以及相机的空间信息,在第二反射物体的渲染信息中确定第二反射物体的目标区域的渲染信息。最后,GPU根据第二反射物体的目标区域的渲染信息输入渲染管线1104,以使得渲染管线1104基于第二反射物体的目标区域的渲染信息进行光线追踪,即对第二反射物体的目标区域进行光线追踪,得到第二反射物体中的倒影的图像,并将这部分图像存储于第二帧缓冲区中。其中,第二反射物体的目标区域的第二目标点满足以下条件:
相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为第二反射物体的目标区域中的任意一个顶点,第一距离为第二目标点与相机之间的距离,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离为第一目标点与相机之间的距离,第三距离基于相机的坐标以及第一目标点的坐标确定。
需要说明的是,GPU通过渲染管线1102、1103进行光栅化的过程,可参考图4所示实施例中步骤403的相关说明部分,此处不再赘述。同样地,GPU确定第二反射物体的目标区域的过程,以及GPU通过渲染管线1104进行光线追踪的过程,可参考图4所示实施例中步骤402的相关说明部分,此处不再赘述。
应理解,第一反射物体的图像的渲染过程、第二反射物体的图像的渲染过程、被反射物体的图像的渲染过程以及第二反射物体中的倒影的图像的渲染过程可以是并行的,即GPU可同步执行步骤1003和步骤1004。
1005、从第一帧缓冲区中获取第一反射物体中的倒影的图像,将第一反射物体中的倒影的图像存储于第二帧缓冲区中,以使得第二反射物体的图像、被反射物体的图像、第一反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像完成融合,得到目标图像。
由于第二帧缓冲区存储的是即将在屏幕中显示的图像(即送显的图像),故在GPU将第一反射物体的图像存入第二帧缓冲区时,GPU需立即从第一帧缓冲区中获取第一反射物体中的倒影的图像,并将第一反射物体中的倒影的图像存储于第二帧缓冲区中。如此一来,第二反射物体的图像、被反射物体的图像、第一反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像可以在第二帧缓冲区中完成融合,得到送显的目标图像。此后,CPU可从第二帧缓冲区中获取目标图像,并将目标图像发送至屏幕中显示,以供用户观看。
需要说明的是,GPU也为当前屏幕渲染通道设置了一个分辨率,该分辨率即为屏幕分辨率。因此,第一反射物体的图像的分辨率、第二反射物体的图像的分辨率、被反射物体的图像的分辨率以及第二反射物体中的倒影的图像的分辨率即为屏幕分辨率,故第一反射物体的图像的分辨率大于第一反射物体中的倒影的图像的分辨率。那么在目标图像中,第一反射物体的图像、第二反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像会显得比较清晰,第一反射物体中的倒影的图像会显得比较模糊。
本实施例中,GPU可同时获取到第二反射物体的渲染信息、被反射物体的渲染信息的同时以及第一反射物体的渲染信息,一般地,第一反射物体的反射类型为漫反射,第二反射物体的反射类型为镜面反射,例如,第一反射物体为地面,第二反射物体为镜子等等。接着,GPU可先根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区中。然后,GPU基于第二反射物体的渲染信息、第一反射物体的渲染信息以及被反射物体的渲染信息分别进行光栅化,并基于第二反射物体的渲染信息进行光线追踪,在将得到的第二反射物体的图像、第一反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像存储于第二帧缓冲区时,GPU需从第一帧缓冲区中取出第一反射物体中的倒影的图像,并将其存入第二帧缓冲区,故第二反射物体的图像、第一反射物体的图像、被反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像可以在第二帧缓冲区中融合,得到送显的目标图像。例如,目标图像中包含地面的图像、镜子的图像、人的图像、地面上的人影的图像以及镜子中的人的图像,故目标图像可呈现出人站在地面上照镜子的画面。
上述过程中,在得到送显的目标图像之前,GPU仅需完成第一反射物体中的倒影的图像的传输(即将第一反射物体中的倒影的图像存入第一帧缓冲区以及从第一帧缓冲区中取出第一反射物体中的倒影的图像),由于第一反射物体中的倒影仅为部分被反射物体的影子等等,即反射物体中的倒影的图像所包含的信息量较少,故第一反射物体中的倒影的图像的传输过程所产生的I/O开销较小,可降低图像渲染的功耗。
下文将结合一个具体的应用例,对本申请实施例提供的图像渲染的方法作进一步的介绍。图12为本申请实施例提供的图像渲染的方法的一个应用例示意图,如图12所示,该应用例中,可在Unity程序,加入能够实现一个额外的插件,该插件用于实现如图4、图8和图10所示的方法,即可实现三种渲染模式。其中,插件具体用于实现哪种渲染模式,可根据实际需求进行插件进行设置,此处不做具体限制。
具体地,当程序在执行初始化(awake)阶段,可将三维场景中的原始数据传入插件中。当程序在执行某帧画面的更新(update)阶段,可基于原始数据,更新该帧画面对应的反射物体的渲染信息、被反射物体的渲染信息、相机的空间信息等,并基于被反射物体的渲染信息构建BVH树,然后将这部分信息更新至插件中。当程序执行渲染(on post render)阶段时,通过插件的接口调用插件,插件将前述信息传入GPU,GPU使用插件提供的渲染方式,完成渲染得到最终送显的目标图像。
应理解,图12中仅以图4所示的渲染模式(包含离屏渲染通道和当前屏幕渲染通道)进行示意性介绍,并不对本应用例中的渲染模式构成限制。
此外,本申请还通过令电子设备在不同的渲染模式下进行测试,基于测试结果得到较优的模式。其中,第一种模式为光栅化且不进行光线追踪,第二种模式为延迟渲染(即背景技术所提及的渲染模式),第三种为图8所示的渲染模式,第四种为图10所示的渲染模式。四种渲染模式的测试结果如表1所示:
表1
在表1中,差值1为第一种模式的平均值与第二种模式的平均值之间的差值,差值2为第一种模式的平均值与第三种模式的平均值之间的差值,差值3为第一种模式的平均值与第四种模式的平均值之间的差值。通过表1所示的测试结果可知,相较于现有的渲染模式(前两种渲染模式),本申请提供的渲染模式(后两种渲染模式)的功耗均较低,且最后一种渲染模式的功耗优于第三种渲染模式。
以上是对本申请实施例提供的图像渲染的方法所进行的详细说明,以下将对本申请实施例提供的电子设备进行介绍。图13为本申请实施例提供的电子设备的另一结构示意图,如图13所示,该电子设备包括获取模块1301和处理模块1302。
获取模块1301,用于获取反射物体的渲染信息以及被反射物体的渲染信息;
处理模块1302,用于根据反射物体的渲染信息进行光线追踪,并将得到的反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;
处理模块1302,还用于分别根据反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像;
处理模块1302,还用于从第一帧缓冲区中获取反射物体中的倒影的图像,将反射物体中的倒影的图像存储于第二帧缓冲区中,以使得反射物体的图像、被反射物体的图像以及反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块1302,具体用于:在反射物体的渲染信息中,确定反射物体的目标区域的渲染信息,反射物体的目标区域包含反射物体中的倒影;根据反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块1302,具体用于:获取层次包围盒BVH树以及相机的空间信息,BVH树基于被反射物体的渲染信息构建,相机用于拍摄目标图像;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在反射物体的渲染信息中确定反射物体的目标区域的渲染信息。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为反射物体的目标区域中的任意一个顶点,第一距离为第二目标点与相机之间的距离,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。
在一种可能的实现方式中,反射物体的渲染信息包含反射物体的金属度,被反射物体的渲染信息包含被反射物体的金属度,反射物体的金属度大于或等于预置的阈值,被反射物体的金属度小于预置的阈值。
在一种可能的实现方式中,反射物体的图像的分辨率以及被反射物体的图像的分辨率相同,反射物体中的倒影的图像的分辨率小于反射物体的图像的分辨率。
在一种可能的实现方式中,反射物体的渲染信息还包括反射物体的顶点的坐标、反射物体的顶点的法线、反射物体的三角形索引、反射物体的粗糙度以及反射物体的颜色,被反射物体的渲染信息还包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引、被反射物体的粗糙度以及被反射物体的颜色。
图14为本申请实施例提供的电子设备的又一结构示意图,如图14所示,该电子设备包括获取模块1401以及处理模块1402。
获取模块1401,用于获取第二反射物体的渲染信息以及被反射物体的渲染信息;
处理模块1402,用于分别根据第二反射物体的渲染信息和被反射物体的渲染信息进行光栅化,并将得到的第二反射物体的图像以及被反射物体的图像存储于第二帧缓冲区,第二帧缓冲区用于存储即将显示的图像;
处理模块1402,还用于根据第二反射物体的渲染信息进行光线追踪,并将得到的第二反射物体中的倒影的图像存储于第二帧缓冲区,以使得第二反射物体的图像、被反射物体的图像以及第二反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块1402,具体用于:在第二反射物体的渲染信息中,确定第二反射物体的目标区域的渲染信息,第二反射物体的目标区域包含第二反射物体中的倒影;根据第二反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块1402,具体用于:获取BVH树以及相机的空间信息,BVH树基于被反射物体的渲染信息构建,相机用于拍摄目标图像;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第二反射物体的渲染信息中确定第二反射物体的目标区域的渲染信息。
在一种可能的实现方式中,最大包围盒的空间信息包含第一目标点的垂直高度以及第一目标点的坐标,相机的空间信息包含相机的垂直高度以及相机的坐标,第二反射物体的目标区域的渲染信息包含第二目标点的坐标,第二目标点满足以下条件:相机的垂直高度与第一距离之间的比值等于第一目标点的垂直高度与第二距离之间的比值,第一目标点为最大包围盒中的任意一个顶点,第二目标点为第二反射物体的目标区域中的任意一个顶点,第一距离为第二目标点与相机之间的距离,第一距离基于第二目标点的坐标以及相机的坐标确定,第二距离为第一距离与第三距离之间的差值,第三距离基于相机的坐标以及第一目标点的坐标确定。
在一种可能的实现方式中,获取模块1401,还用于获取第一反射物体的渲染信息,第一反射物体的反射类型与第二反射物体的反射类型不同;处理模块1402,还用于:根据第一反射物体的渲染信息进行光线追踪,并将得到的第一反射物体中的倒影的图像存储于第一帧缓冲区,第一帧缓冲区用于存储暂时不需显示的图像;根据第一反射物体的渲染信息进行光栅化,并将得到的第一反射物体的图像存储于第二帧缓冲区;从第一帧缓冲区中获取第一反射物体中的倒影的图像,将第一反射物体中的倒影的图像存储于第二帧缓冲区中,以使得第二反射物体的图像、被反射物体的图像、第一反射物体的图像、第二反射物体中的倒影的图像以及第一反射物体中的倒影的图像完成融合,得到目标图像。
在一种可能的实现方式中,处理模块1402,具体用于:在第一反射物体的渲染信息中,确定第一反射物体的目标区域的渲染信息,第一反射物体的目标区域包含第一反射物体中的倒影;根据第一反射物体的目标区域的渲染信息进行光线追踪。
在一种可能的实现方式中,处理模块1402,具体用于:获取BVH树以及相机的空间信息;从BVH树中确定最大包围盒的空间信息;根据最大包围盒的空间信息以及相机的空间信息,在第一反射物体的渲染信息中确定第一反射物体的目标区域的渲染信息。
在一种可能的实现方式中,第一反射物体的目标区域的渲染信息包含第三目标点的坐标,第三目标点满足以下条件:相机的垂直高度与第四距离之间的比值等于第一目标点的垂直高度与第五距离之间的比值,第三目标点为第一反射物体的目标区域中的任意一个顶点,第四距离为第三目标点与相机之间的距离,第四距离基于第三目标点的坐标以及相机的坐标确定,第五距离为第四距离与第三距离之间的差值。
在一种可能的实现方式中,第二反射物体的渲染信息包含第二反射物体的金属度和第二反射物体的粗糙度,被反射物体的渲染信息包含被反射物体的金属度和被反射物体的粗糙度,第一反射物体的渲染信息包含第一反射物体的金属度和第一反射物体的粗糙度;其中,第一反射物体的金属度大于或等于预置的第一阈值且小于预置的第二阈值,第二反射物体的金属度大于或等于预置的第二阈值,被反射物体的金属度小于预置的第一阈值;第二反射物体的粗糙度小于预置的第三阈值,第一反射物体的粗糙度大于或等于预置的第三阈值。
在一种可能的实现方式中,第二反射物体的图像的分辨率、被反射物体的图像的分辨率、第一反射物体的图像的分辨率以及第二反射物体中的倒影的图像的分辨率相同,第一反射物体中的倒影的图像的分辨率小于第一反射物体的图像的分辨率。
在一种可能的实现方式中,第二反射物体的渲染信息还包括第二反射物体的顶点的坐标、第二反射物体的顶点的法线、第二反射物体的三角形索引以及第二反射物体的颜色,被反射物体的空间信息包括被反射物体的顶点的坐标、被反射物体的顶点的法线、被反射物体的三角形索引以及被反射物体的颜色,第一反射物体的空间信息包括第一反射物体的顶点的坐标、第一反射物体的顶点的法线、第一反射物体的三角形索引以及第一反射物体的颜色。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参考本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还涉及一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如图4、图8或图10所示实施例中所述的方法。
本申请实施例还涉及一种计算机程序产品,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如图4、图8或图10所示实施例中所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (21)
1.一种图像渲染方法,其特征在于,所述方法包括:
获取反射物体的渲染信息以及被反射物体的渲染信息;
根据所述反射物体的渲染信息进行光线追踪,并将得到的所述反射物体中的倒影的图像存储于第一帧缓冲区,所述第一帧缓冲区用于存储暂时不需显示的图像;
根据所述反射物体的渲染信息和所述被反射物体的渲染信息进行光栅化,并将得到的所述反射物体的图像以及所述被反射物体的图像存储于第二帧缓冲区,所述第二帧缓冲区用于存储即将显示的图像;
从所述第一帧缓冲区中获取所述反射物体中的倒影的图像,将所述反射物体中的倒影的图像存储于所述第二帧缓冲区中,以使得所述反射物体的图像、所述被反射物体的图像以及所述反射物体中的倒影的图像完成融合,得到目标图像。
2.根据权利要求1所述的方法,其特征在于,所述根据所述反射物体的渲染信息进行光线追踪具体包括:
在所述反射物体的渲染信息中,确定所述反射物体的目标区域的渲染信息,所述反射物体的目标区域包含所述反射物体中的倒影;
根据所述反射物体的目标区域的渲染信息进行光线追踪。
3.根据权利要求2所述的方法,其特征在于,所述在所述反射物体的渲染信息中,确定所述反射物体的目标区域的渲染信息具体包括:
获取层次包围盒BVH树以及相机的空间信息,所述BVH树基于所述被反射物体的渲染信息构建,所述相机用于拍摄所述目标图像;
从所述BVH树中确定最大包围盒的空间信息;
根据所述最大包围盒的空间信息以及所述相机的空间信息,在所述反射物体的渲染信息中确定所述反射物体的目标区域的渲染信息。
4.根据权利要求3所述的方法,其特征在于,所述最大包围盒的空间信息包含所述第一目标点的垂直高度以及所述第一目标点的坐标,所述相机的空间信息包含所述相机的垂直高度以及所述相机的坐标,所述反射物体的目标区域的渲染信息包含第二目标点的坐标,所述第二目标点满足以下条件:
所述相机的垂直高度与第一距离之间的比值等于所述第一目标点的垂直高度与第二距离之间的比值,所述第一目标点为所述最大包围盒中的任意一个顶点,所述第二目标点为所述反射物体的目标区域中的任意一个顶点,所述第一距离基于所述第二目标点的坐标以及所述相机的坐标确定,所述第二距离为所述第一距离与第三距离之间的差值,所述第三距离基于所述相机的坐标以及所述第一目标点的坐标确定。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述反射物体的渲染信息包含所述反射物体的金属度,所述被反射物体的渲染信息包含所述被反射物体的金属度,所述反射物体的金属度大于或等于预置的阈值,所述被反射物体的金属度小于所述预置的阈值。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述反射物体的图像的分辨率以及所述被反射物体的图像的分辨率相同,所述反射物体中的倒影的图像的分辨率小于所述反射物体的图像的分辨率。
7.根据权利要求5所述的方法,其特征在于,所述反射物体的渲染信息还包括所述反射物体的顶点的坐标、所述反射物体的顶点的法线、所述反射物体的三角形索引、所述反射物体的粗糙度以及所述反射物体的颜色,所述被反射物体的渲染信息还包括所述被反射物体的顶点的坐标、所述被反射物体的顶点的法线、所述被反射物体的三角形索引、所述被反射物体的粗糙度以及所述被反射物体的颜色。
8.一种图像渲染方法,其特征在于,所述方法包括:
获取第二反射物体的渲染信息以及被反射物体的渲染信息;
根据所述第二反射物体的渲染信息和所述被反射物体的渲染信息进行光栅化,并将得到的所述第二反射物体的图像以及所述被反射物体的图像存储于第二帧缓冲区,所述第二帧缓冲区用于存储即将显示的图像;
根据所述第二反射物体的渲染信息进行光线追踪,并将得到的所述第二反射物体中的倒影的图像存储于第二帧缓冲区,以使得所述第二反射物体的图像、所述被反射物体的图像以及所述第二反射物体中的倒影的图像完成融合,得到目标图像。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第二反射物体的渲染信息进行光线追踪具体包括:
在所述第二反射物体的渲染信息中,确定所述第二反射物体的目标区域的渲染信息,所述第二反射物体的目标区域包含所述第二反射物体中的倒影;
根据所述第二反射物体的目标区域的渲染信息进行光线追踪。
10.根据权利要求9所述的方法,其特征在于,所述在所述第二反射物体的渲染信息中,确定所述第二反射物体的目标区域的渲染信息具体包括:
获取BVH树以及相机的空间信息,所述BVH树基于所述被反射物体的渲染信息构建,所述相机用于拍摄所述目标图像;
从所述BVH树中确定最大包围盒的空间信息;
根据所述最大包围盒的空间信息以及所述相机的空间信息,在所述第二反射物体的渲染信息中确定所述第二反射物体的目标区域的渲染信息。
11.根据权利要求10所述的方法,其特征在于,所述最大包围盒的空间信息包含所述第一目标点的垂直高度以及所述第一目标点的坐标,所述相机的空间信息包含所述相机的垂直高度以及所述相机的坐标,所述第二反射物体的目标区域的渲染信息包含第二目标点的坐标,所述第二目标点满足以下条件:
所述相机的垂直高度与第一距离之间的比值等于所述第一目标点的垂直高度与第二距离之间的比值,所述第一目标点为所述最大包围盒中的任意一个顶点,所述第二目标点为所述第二反射物体的目标区域中的任意一个顶点,所述第一距离基于所述第二目标点的坐标以及所述相机的坐标确定,所述第二距离为所述第一距离与第三距离之间的差值,所述第三距离基于所述相机的坐标以及所述第一目标点的坐标确定。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
获取第一反射物体的渲染信息,所述第一反射物体的反射类型与所述第二反射物体的反射类型不同;
根据所述第一反射物体的渲染信息进行光线追踪,并将得到的所述第一反射物体中的倒影的图像存储于第一帧缓冲区,所述第一帧缓冲区用于存储暂时不需显示的图像;
根据所述第一反射物体的渲染信息进行光栅化,并将得到的所述第一反射物体的图像存储于所述第二帧缓冲区;
从所述第一帧缓冲区中获取所述第一反射物体中的倒影的图像,将所述第一反射物体中的倒影的图像存储于所述第二帧缓冲区中,以使得所述第二反射物体的图像、所述被反射物体的图像、所述第一反射物体的图像、所述第二反射物体中的倒影的图像以及所述第一反射物体中的倒影的图像完成融合,得到目标图像。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第一反射物体的渲染信息进行光线追踪具体包括:
在所述第一反射物体的渲染信息中,确定所述第一反射物体的目标区域的渲染信息,所述第一反射物体的目标区域包含所述第一反射物体中的倒影;
根据所述第一反射物体的目标区域的渲染信息进行光线追踪。
14.根据权利要求13所述的方法,其特征在于,所述在所述第一反射物体的渲染信息中,确定所述第一反射物体的目标区域的渲染信息具体包括:
获取BVH树以及相机的空间信息;
从所述BVH树中确定最大包围盒的空间信息;
根据所述最大包围盒的空间信息以及所述相机的空间信息,在所述第一反射物体的渲染信息中确定所述第一反射物体的目标区域的渲染信息。
15.根据权利要求14所述的方法,其特征在于,所述第一反射物体的目标区域的渲染信息包含第三目标点的坐标,所述第三目标点满足以下条件:
所述相机的垂直高度与第四距离之间的比值等于所述第一目标点的垂直高度与第五距离之间的比值,所述第三目标点为所述第一反射物体的目标区域中的任意一个顶点,所述第四距离基于所述第三目标点的坐标以及所述相机的坐标确定,所述第五距离为所述第四距离与所述第三距离之间的差值。
16.根据权利要求12至15任意一项所述的方法,其特征在于,所述第二反射物体的渲染信息包含所述第二反射物体的金属度和所述第二反射物体的粗糙度,所述被反射物体的渲染信息包含所述被反射物体的金属度和所述被反射物体的粗糙度,所述第一反射物体的渲染信息包含所述第一反射物体的金属度和所述第一反射物体的粗糙度;
其中,所述第一反射物体的金属度大于或等于预置的第一阈值且小于所述预置的第二阈值,所述第二反射物体的金属度大于或等于预置的第二阈值,所述被反射物体的金属度小于所述预置的第一阈值;
所述第二反射物体的粗糙度小于预置的第三阈值,所述第一反射物体的粗糙度大于或等于所述预置的第三阈值。
17.根据权利要求12至16任意一项所述的方法,其特征在于,所述第二反射物体的图像的分辨率、所述被反射物体的图像的分辨率、所述第一反射物体的图像的分辨率以及所述第二反射物体中的倒影的图像的分辨率相同,所述第一反射物体中的倒影的图像的分辨率小于所述第一反射物体的图像的分辨率。
18.根据权利要求16所述的方法,其特征在于,所述第二反射物体的渲染信息还包括所述第二反射物体的顶点的坐标、所述第二反射物体的顶点的法线、所述第二反射物体的三角形索引以及所述第二反射物体的颜色,所述被反射物体的空间信息包括所述被反射物体的顶点的坐标、所述被反射物体的顶点的法线、所述被反射物体的三角形索引以及所述被反射物体的颜色,所述第一反射物体的空间信息包括所述第一反射物体的顶点的坐标、所述第一反射物体的顶点的法线、所述第一反射物体的三角形索引以及所述第一反射物体的颜色。
19.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述电子设备执行如权利要求1至7或8至18任一所述的方法。
20.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至7或8至18中任一项所述的方法。
21.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至7或8至18任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011585918.9A CN114758051A (zh) | 2020-12-28 | 2020-12-28 | 一种图像渲染方法及其相关设备 |
PCT/CN2021/140688 WO2022143367A1 (zh) | 2020-12-28 | 2021-12-23 | 一种图像渲染方法及其相关设备 |
EP21914104.1A EP4254343A4 (en) | 2020-12-28 | 2021-12-23 | IMAGE DISPLAY METHOD AND ASSOCIATED DEVICE THEREFOR |
US18/214,634 US20230343018A1 (en) | 2020-12-28 | 2023-06-27 | Image rendering method and related device thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011585918.9A CN114758051A (zh) | 2020-12-28 | 2020-12-28 | 一种图像渲染方法及其相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114758051A true CN114758051A (zh) | 2022-07-15 |
Family
ID=82259053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011585918.9A Pending CN114758051A (zh) | 2020-12-28 | 2020-12-28 | 一种图像渲染方法及其相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230343018A1 (zh) |
EP (1) | EP4254343A4 (zh) |
CN (1) | CN114758051A (zh) |
WO (1) | WO2022143367A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116681814A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230102079A1 (en) * | 2021-09-30 | 2023-03-30 | Aptiv Technologies Limited | Accurate and Efficient Electromagnetic Response for a Sensor Simulator |
US20230154101A1 (en) * | 2021-11-16 | 2023-05-18 | Disney Enterprises, Inc. | Techniques for multi-view neural object modeling |
CN116912395B (zh) * | 2023-09-14 | 2024-01-12 | 武汉蜂鸟龙腾软件有限公司 | 基于OpenGL的图形混合渲染方法、装置及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100132605A (ko) * | 2009-06-10 | 2010-12-20 | 삼성전자주식회사 | 하이브리드 렌더링 장치 및 방법 |
KR102224845B1 (ko) * | 2014-07-22 | 2021-03-08 | 삼성전자주식회사 | 하이브리드 렌더링 방법 및 장치 |
CN106780708A (zh) * | 2016-11-23 | 2017-05-31 | 北京三体高创科技有限公司 | 一种基于模拟折射和全局光照的3d模型渲染方法及系统 |
CN107256574A (zh) * | 2017-05-31 | 2017-10-17 | 宝珑珠宝设计(北京)有限公司 | 一种真实3d实时混合渲染方法 |
US11023596B2 (en) * | 2017-08-30 | 2021-06-01 | Go Ghost, LLC | Non-rasterized image streaming system that uses ray tracing samples |
KR102151443B1 (ko) * | 2019-04-11 | 2020-09-03 | 주식회사 실리콘아츠 | 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치 |
CN111340928B (zh) * | 2020-02-19 | 2022-05-03 | 杭州群核信息技术有限公司 | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 |
-
2020
- 2020-12-28 CN CN202011585918.9A patent/CN114758051A/zh active Pending
-
2021
- 2021-12-23 EP EP21914104.1A patent/EP4254343A4/en active Pending
- 2021-12-23 WO PCT/CN2021/140688 patent/WO2022143367A1/zh unknown
-
2023
- 2023-06-27 US US18/214,634 patent/US20230343018A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116681814A (zh) * | 2022-09-19 | 2023-09-01 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
CN116681814B (zh) * | 2022-09-19 | 2024-05-24 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230343018A1 (en) | 2023-10-26 |
EP4254343A1 (en) | 2023-10-04 |
WO2022143367A1 (zh) | 2022-07-07 |
EP4254343A4 (en) | 2024-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111033570B (zh) | 使用两个渲染计算装置从计算机图形渲染图像 | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
WO2022111619A1 (zh) | 图像处理方法及相关装置 | |
US10049486B2 (en) | Sparse rasterization | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
US9224227B2 (en) | Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader | |
US20120229460A1 (en) | Method and System for Optimizing Resource Usage in a Graphics Pipeline | |
US10388063B2 (en) | Variable rate shading based on temporal reprojection | |
US10068366B2 (en) | Stereo multi-projection implemented using a graphics processing pipeline | |
US10217259B2 (en) | Method of and apparatus for graphics processing | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
KR20180023856A (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
US20210312704A1 (en) | Rendering using shadow information | |
CN114902274A (zh) | 混合分箱 | |
CN107330965B (zh) | 一种利用局部保守光栅化方法实现硬阴影反走样的方法 | |
EP4386682A1 (en) | Image rendering method and related device thereof | |
Smit et al. | A shared-scene-graph image-warping architecture for VR: Low latency versus image quality | |
CN116075862A (zh) | 对象空间渲染中的布告板层 | |
CN117351134A (zh) | 一种图像渲染方法及其相关设备 | |
KR20160077559A (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 |