CN114748874A - 水体反射处理方法、装置、设备及存储介质 - Google Patents
水体反射处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114748874A CN114748874A CN202210346543.3A CN202210346543A CN114748874A CN 114748874 A CN114748874 A CN 114748874A CN 202210346543 A CN202210346543 A CN 202210346543A CN 114748874 A CN114748874 A CN 114748874A
- Authority
- CN
- China
- Prior art keywords
- reflection
- pixel point
- information
- reflection information
- information corresponding
- 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
-
- 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/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/663—Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Optics & Photonics (AREA)
- Image Generation (AREA)
Abstract
本申请提供一种水体反射处理方法、装置、设备及存储介质。该方法包括:获取经水体面的每个像素点反射的光线在目标对象上的反射位置;根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的;根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息;根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息;根据目标反射信息对每个像素点进行渲染。
Description
技术领域
本申请涉及游戏技术领域,尤其涉及一种水体反射处理方法、装置、设备及存储介质。
背景技术
游戏场景中通常会有河流、大海、湖泊等水体,水体通过渲染并在游戏画面中展示,从而使游戏玩家体验游戏。而水体的反射效果会影响水体的渲染效果,进而影响游戏玩家的游戏体验。
目前,是通过一些水体反射算法对水体中每个像素点计算反射颜色,来展示水体反射效果。在一种水体反射算法为屏幕空间反射算法(Screen Space Reflection,SSR)中,其原理为在相机空间下,通过全屏深度图、全屏法线图计算水体中各个像素点的反射向量后,使反射向量沿着反射方向步进,直至碰到物体位置,进而将碰到物体的位置转换为屏幕空间的位置,并对屏幕RT进行采样,得到该像素点对应的反射颜色。
然而,SSR算法是提取屏幕空间的像素值,因此不能反射屏幕外的物体,导致反射效果较差。
发明内容
本申请提供一种水体反射处理方法、装置、设备及存储介质,用以解决现有技术中SSR算法是提取屏幕空间的像素值,因此不能反射屏幕外的物体,导致反射效果较差的问题。
第一方面,本申请提供一种水体反射处理方法,包括:获取经水体面的每个像素点反射的光线在目标对象上的反射位置;根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的;根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息;根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息;根据目标反射信息对每个像素点进行渲染。
在一些实施例中,所述获取经水体面的每个像素点反射的光线在目标对象上的反射位置,包括:针对所述水体面的每个像素点,在世界坐标系下,获取所述像素点对应的视角向量和法线方向;根据所述视角向量和法线方向,确定所述像素点对应的反射方向;将从所述像素点沿所述反射方向行进预设距离,得到的位置作为所述像素点反射的光线在目标对象上的反射位置;其中,所述预设距离与所述视角向量在竖直方向上的分量正相关。
在一些实施例中,所述根据每个所述像素点对应的反射位置,确定每个所述像素点对应的第一反射信息,包括:针对每个所述像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;根据UV坐标,在不透明纹理声明贴图中进行采样,得到所述像素点对应的第一反射信息。
在一些实施例中,所述根据每个像素点对应的所述反射位置,确定每个所述像素点对应的第二反射信息,包括:针对每个像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;根据所述UV坐标,在预设的环境反射信息中进行采样,得到所述像素点对应的第二反射信息。
在一些实施例中,所述根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的的UV坐标,包括:将世界空间下,所述像素点对应的所述反射位置转换到裁剪空间,得到所述像素点在裁剪空间下的反射位置;将所述裁剪空间下的反射位置的坐标转换至预设区间范围,得到所述反射位置对应的UV坐标。
在一些实施例中,所述根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息,包括:根据所述视角向量与所述法线的点乘结果,确定每个所述像素点对应的菲涅尔信息。
在一些实施例中,所述根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息,包括:将所述菲涅尔信息作为所述第一反射信息和所述第二反射信息之间过渡计算的遮罩差值,得到每个所述像素点对应的目标反射信息。
第二方面,本申请提供一种水体反射处理装置,包括:获取模块,用于获取经水体面的每个像素点反射的光线在目标对象上的反射位置;确定模块,用于根据每个所述像素点对应的所述反射位置,确定每个所述像素点对应的第一反射信息和第二反射信息;所述第一反射信息是从不透明纹理声明贴图中进行采样得到的,所述第二反射信息是从预设的环境反射信息中采样得到的;所述确定模块,还用于根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息;所述确定模块,还用于根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息;渲染模块,用于根据所述目标反射信息对每个所述像素点进行渲染。
第三方面,本申请提供一种电子设备,包括:存储器,处理器;存储器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为用于实现如第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
本申请提供的水体反射处理方法、装置、设备及存储介质,通过获取经水体面的每个像素点反射的光线在目标对象上的反射位置;根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的;根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息;根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息;根据目标反射信息对每个像素点进行渲染。由于获取经水体面的每个像素点反射的光线在目标对象上的反射位置,并确定了每个像素点对应的第二反射信息,第二反射信息是从预设的环境反射信息中采样得到的,以及根据菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息,因此,能够保证视角较平位置的反射效果,在视角垂直位置处得到的反射信息更强,从而在视角垂直位置处获得较好的反射效果。另外,由于在世界空间坐标系下,沿每个像素点的反射方向行进预设距离,来确定每个像素点在世界空间的反射位置,而预设距离与视角向量在竖直方向上的分量正相关,因此,只需要一次步进则可以确定反射位置,避免相关技术中需要几百次步进的步骤,从而减少移动终端的性能消耗,实现在移动终端上表现较好的水体的反射效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术的屏幕空间反射的原理示意图;
图2为本申请实施例提供的水体反射处理方法的流程图;
图3为本申请实施例提供的反射方向的计算过程的原理示意图;
图4为本申请实施例提供的水体反射处理装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
水体是游戏中常见的场景,水体能够将游戏场景中目标对象进行反射,为了展示较好的游戏画面效果,需要在游戏画面中表现出水体的反射效果。
在相关技术中,反射效果属于间接光照部分,是光源从源点出发经过物体表面的像素点反射并进入眼睛的光照,该像素点还接受了来自游戏场景中所有其他像素点反射的光照。如果反射表面光滑,则反射表面就可以反射周围的环境(如镜面金属等)。目前,游戏中是对上述介绍的光照的发射效果进行模拟,从而在游戏中展现出反射效果。
图1为现有技术的屏幕空间反射的原理示意图。如图1所示,图1中D点所在位置为眼睛的位置,即相机的位置;A为目标对象所在的位置点,C为水体面上的一个像素点,即反射面上的像素点。由于A点发出光线经过C点的反射进入人的眼睛,所以能够从C点看到目标对象上的A点。SSR算法是首先计算出反射光线的方向,即CA向量,具体是以C为原点,和以CA为方向的光线,与目标对象求交,得到像素点A在相机空间的位置,然后转换为裁剪空间位置图中的矩形框即为裁剪空间的位置,之后根据裁剪空间的位置在贴图中进行采样,从而得到C点针对A点所反射的像素值。
上述过程中,因为是将像素点位置转换为裁剪空间中的坐标,进而根据裁剪空间的位置在贴图中进行采样,而在一些游戏场景中,若目标对象位于裁剪空间之外,则将目标对象上像素点的位置坐标进行裁剪空间的转换后,所得到的转换后的位置会超出裁剪空间的坐标范围。例如,当观察者垂直看向湖面,则此时观察者的视线较垂直,即视线向量与法线方向趋近于相同时,天空上的像素点转换至裁剪空间后,会超过裁剪空间的坐标范围,则如果根据超出裁剪空间的坐标在贴图中进行采样,超出部分所采样的颜色信息(反射信息)为贴图边缘最后一个像素的颜色信息,从而使得最终得到的反射效果图为拉伸图像,反射效果较差。
另外,SSR算法采用步进的方式计算反射点位置,在应用于移动端时,对于移动端的硬件资源要求较高。即:在确定A点发出的光线与目标对象的交点时,是通过每次沿A点发出的光线的方向行进预设距离,并判断是否碰到目标对象,若未碰到目标对象,则继续沿A点发出的光线的方向行进预设距离,直至碰到目标对象,将碰到目标对象时的位置点确定为A点发出的光线与目标对象的交点。
相关技术中针对每个像素点,可能需要步进几百次才能找到A点发出的光线与目标对象的交点,而每一次步进之后,还需要计算是否碰到目标对象,因此,该算法在应用于移动端时,性能消耗较大,对硬件资源的要求较高。
本申请针对上述技术问题,发明人的技术构思过程如下:计算水体面中每个像素点反射的光线在目标对象上的反射位置,进而计算根据该反射位置从不透明纹理声明贴图中进行采样得到第一反射信息,和从预设的环境反射信息中采样得到第二反射信息;以及结合根据每个像素点处的视角向量和法线计算得到的每个像素点对应的菲涅尔信息,得到每个像素点对应的目标反射信息,并根据目标反射信息对该像素点进行渲染,得到该像素点处的反射效果。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的水体反射处理方法的流程图。如图2所示,该水体反射处理方法,包括如下步骤:
步骤S201、获取经水体面的每个像素点反射的光线在目标对象上的反射位置。
本实施例的方法的执行主体可以是移动终端。例如,智能手机、IPAD等。
本实施例中,水体面可以理解为是反射面,在游戏画面中,水体面包括多个像素点,本步骤是针对水体面的多个像素点中每个像素点,获取水体面的每个像素点针对游戏中目标对象上的像素点进行反射时的位置。
其中,水体面的每个像素点针对游戏中目标对象的反射位置的坐标为UV坐标系下的反射位置的坐标。
目标对象可以理解为是被反射物体,水体反射可以理解为是在水体面的每个像素点处表现出对物体的反射效果。请继续参阅图1,图中的矩形方块为目标对象,目标对象的A点发出光线,经过水体面的像素点C点反射,进入人眼D点,A点即为反射位置。
可选的,步骤S201包括如下步骤:
步骤a1、针对水体面的每个像素点,在世界坐标系下,获取像素点对应的视角向量和法线方向。
其中,目标对象不同,视角向量也会不同,而法线方向是根据水体面确定的,因此,法线方向一般不会随视角向量发生变化。
步骤a2、根据视角向量和法线方向,确定像素点对应的反射方向。
本实施例中,每个像素点在世界空间的视角向量为游戏中摄像机的视角向量,可以根据游戏中摄像机在世界空间中的位置坐标和世界空间中每个像素点的位置坐标计算得到。其中,世界空间中每个像素点的位置坐标可以根据水体模型空间下每个像素点的坐标与变换矩阵相乘得到,水体模型空间下每个像素点的坐标可以从水体模型的顶点信息中获取。
图3为本申请实施例提供的反射方向的计算过程的原理示意图。如图3所示,本步骤是以湖面上一个像素点O点的法线方向为对称轴,确定与视线方向的向量对称的向量,得到O点对应的反射方向。
可选的,可以是通过reflect函数对每个像素点在世界空间的视角向量和法线方向进行计算,得到每个像素点对应的反射方向。
步骤a3、将从像素点沿反射方向行进预设距离,得到的位置作为像素点反射的光线在目标对象上的反射位置;其中,预设距离与视角向量在竖直方向上的分量正相关。
本步骤中的预设距离是根据若干次测试后得到的经验值确定的,且在沿反射方向行进预设距离后,能够碰到被反射物体的距离。
其中,预设距离与视角向量在竖直方向上的分量正相关,可以理解为预设距离与视角向量在竖直方向上的分量成正比,即当视线方向垂直于水平面的时候,向反射方向行进的距离越长;反之,则向反射方向行进的距离越短。
在一种可选的实施方式中,在步骤a3之前,还可以预先存储视线方向与水平面之间的夹角,与向反射方向行进的距离之间的对应关系,则在计算每个像素点沿反射方向行进的预设距离时,可以确定每个像素点位置处,视线方向与水平面之间的夹角,并根据每个像素点位置处,视线方向与水平面之间的夹角,和预先存储的上述对应关系,确定每个像素点处沿反射方向行进的预设距离。
在另一种可选的实施方式中,在步骤a3之前,还可以预先存储沿反射方向行进的预设距离与视线方向的向量在竖直方向上的分量的比值,并实时地根据视角向量在竖直方向上的分量,和预先存储的比值,确定沿反射方向需要行进的预设距离。
步骤S202、根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的。
其中,预设的环境反射信息包括:环境反射贴图或反射探针。
可选的,步骤S202可以包括如下至少两种可选的实施方式:
在一种可选的实施方式中,根据每个像素点对应的反射位置,确定每个像素点对应的的第一反射信息,包括:
步骤b1、针对每个像素点,根据世界坐标系下像素点对应的反射位置,确定反射位置对应的UV坐标。
可选的,步骤b1包括:
步骤b11、将世界空间下,像素点对应的反射位置转换到裁剪空间,得到像素点在裁剪空间下的反射位置。
具体的,可以是通过TransformWorldToHClip函数将水体面的每个像素点在世界空间的反射位置的坐标转换到裁剪空间,得到水体面的每个像素点在裁剪空间下的反射位置。可以理解为是水体面的每个像素点的坐标从3D空间投影到2D的平面上。
步骤b12、将裁剪空间下的反射位置的坐标转换至预设区间范围,得到反射位置对应的UV坐标;其中,预设区间范围为0至1之间的区间范围。
其中,将裁剪空间下的反射位置的坐标转换至预设区间范围,包括:将裁剪空间下的反射位置的坐标除以预设分量,得到第一目标数值;将第一目标数值乘以第二目标数值,并增加第三目标数值,得到每个像素点针对游戏中目标对象的反射位置对应的UV坐标。
示例性地,裁剪空间下的反射位置的坐标记为(X,Y),则是将X分量和Y分量分别除以W分量,得到Vector2类型的第一目标数值,再将Vector2类型的第一目标数值乘以0.5,以及加0.5,从而实现将[-1,1]区间的反射位置的坐标转换至[0,1]区间预设区间范围。
步骤b2、根据UV坐标,在不透明纹理声明贴图中进行采样,得到像素点对应的第一反射信息。
本实施例中,每个像素点对应的第一反射信息,包括:每个像素点对应的第一反射颜色信息。
具体的,是将不透明纹理声明贴图视为X轴和Y轴的取值位于0至1之间的贴图,假设一个像素点的UV坐标为(0.5,0.5),则是在不透明纹理声明贴图中采样(0.5,0.5)坐标点处的像素的颜色信息,作为第一反射信息。
示例性地,可以根据每个像素点的UV坐标采样渲染管线前置步骤输出的不透明纹理声明贴图(CameraOpaqueTexture)。该不透明纹理声明贴图是在引擎管线中声明的,在完成不透明物体的绘制后,将当前颜色缓冲区中的信息拷贝到该贴图中,以供其他环节使用的贴图。
在另一种可选的实施方式中,根据每个像素点对应的反射位置,确定每个像素点对应的第二反射信息,包括:
步骤c1、针对每个像素点,根据世界坐标系下像素点对应的反射位置,确定反射位置对应的UV坐标。
其中,步骤c1的具体实施方式可以参考步骤b1的介绍,此处不再重复介绍。
步骤c2、根据UV坐标,在预设的环境反射信息中进行采样,得到像素点对应的第二反射信息。
本实施例中,每个像素点对应的第二反射信息,包括:每个像素点对应的第二反射颜色信息。
其中,环境反射信息中包括游戏场景中人物、物体等对象所处的环境的信息。示例性地,以游戏引擎预设的环境反射信息是环境贴图为例,是将环境贴图视为X轴和Y轴的取值位于0至1之间的贴图,假设一个像素点的UV坐标为(0.25,0.25),则是在环境贴图中采样(0.25,0.25)坐标点处的像素的颜色信息,作为第二反射信息。
步骤S203、根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息。
可选的,根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息,包括:根据视角向量与法线的点乘结果,确定每个像素点对应的菲涅尔信息。
其中,视角向量与法线向量之间的夹角位于0-90度范围内。其中,视角向量与法线向量在不同夹角下的点乘结果,可以用于指示水面像素点与视角的距离的远近。
具体的,根据水体面的每个像素点处的法线与视角向量,确定菲涅尔信息,包括:根据视角向量与法线的点乘结果,确定菲涅尔信息。
本实施例中,菲涅尔信息包括菲涅尔边缘的过渡信息;其中,菲涅尔边缘的过渡信息,包括:视角向量与法线平行时,视角向量与法线向量的点乘结果,和/或,视角向量与法线垂直时,视角向量与法线向量的点乘结果。则本实施例是根据视角向量与法线平行时,视角向量与法线向量的点乘结果,和/或,根据视角向量与法线垂直时,视角向量与法线向量的点乘结果,得到菲涅尔边缘的过渡信息。
步骤S204、根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息。
可选的,根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的,包括:将菲涅尔信息作为第一反射信息和第二反射信息之间过渡计算的遮罩差值,得到每个像素点对应的目标反射信息。
具体的,将菲涅尔信息作为第一反射信息和第二反射信息之间过渡计算的遮罩差值,得到每个像素点对应的目标反射信息,包括:根据每个像素点对应的第一反射信息和菲涅尔信息的乘积,以及,每个像素点对应的第二反射信息与目标数值的乘积之和,得到每个像素点对应的目标反射信息;目标数值为预设数值与菲涅尔信息的差值。
本步骤的实施过程可以表示为如下公式(1):
Lerp(A,B,x)=A*(1-x)+B*x; (1)
式(1)中,A为第一反射信息,B为第二反射信息,x为菲涅尔信息,1为预设数值。
其中,计算出的菲涅尔信息用以作为Lerp函数的x输入,根据上述公式(1)可知,当视角较平时,即视角向量与法线向量趋近于垂直,则公式(1)中的x值趋近于0,因此公式(1)中第一反射颜色信息A乘以(1-x),趋近于A,而第二反射颜色信息乘以x,则趋近于0,故能够弱化第二反射颜色信息,并保证视角较平位置的反射颜色信息。同理,视角较为垂直时,即视角向量与法线向量趋近于平行时,能够弱化第一反射颜色信息,使得第二发射颜色信息更强,此时反射位置所采样的颜色信息为环境贴图中采样的颜色信息,能够保证反射位置处进行正确的颜色信息的渲染。因此,通过菲涅尔信息能够保证视角较平位置的反射效果,并且使得视角较垂直位置的第二反射信息更强,获得较好的反射效果。
S205、根据目标反射信息对每个像素点进行渲染。
请继续参阅图1,根据目标反射信息对每个像素点进行渲染,可以理解为是在C点渲染所得到的A点的反射颜色信息。
本实施例通过获取经水体面的每个像素点反射的光线在目标对象上的反射位置;根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的;根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息;根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息;根据目标反射信息对每个像素点进行渲染。由于获取经水体面的每个像素点反射的光线在目标对象上的反射位置,并确定了每个像素点对应的第二反射信息,第二反射信息是从预设的环境反射信息中采样得到的,以及根据菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息,因此,能够保证视角较平位置的反射效果,在视角垂直位置处得到的反射信息更强,从而在视角垂直位置处获得较好的反射效果。另外,由于在世界空间坐标系下,沿每个像素点的反射方向行进预设距离,来确定每个像素点在世界空间的反射位置,而预设距离与视角向量在竖直方向上的分量正相关,因此,只需要一次步进则可以确定反射位置,避免相关技术中需要几百次步进的步骤,从而减少移动终端的性能消耗,实现在移动终端上表现较好的水体的反射效果。
在上述水体反射处理方法实施例的基础上,图4为本申请实施例提供的水体反射处理装置的结构示意图。如图4所示,该水体反射处理装置包括:获取模块41、确定模块42和渲染模块43;获取模块41,用于获取经水体面的每个像素点反射的光线在目标对象上的反射位置;确定模块42,用于根据每个像素点对应的反射位置,确定每个像素点对应的第一反射信息和第二反射信息;第一反射信息是从不透明纹理声明贴图中进行采样得到的,第二反射信息是从预设的环境反射信息中采样得到的;所述确定模块42,还用于根据每个像素点处的法线与视角向量,确定每个像素点对应的菲涅尔信息;所述确定模块42,还用于根据每个像素点对应的菲涅尔信息、第一反射信息和第二反射信息,得到每个像素点对应的目标反射信息;渲染模块43,用于根据目标反射信息对每个像素点进行渲染。
在一些实施例中,获取模块41获取经水体面的每个像素点反射的光线在目标对象上的反射位置,具体包括:针对所述水体面的每个像素点,在世界坐标系下,获取所述像素点对应的视角向量和法线方向;根据所述视角向量和法线方向,确定所述像素点对应的反射方向;将从所述像素点沿所述反射方向行进预设距离,得到的位置作为所述像素点反射的光线在目标对象上的反射位置;其中,所述预设距离与所述视角向量在竖直方向上的分量正相关。
在一些实施例中,确定模块42根据每个所述像素点对应的反射位置,确定每个所述像素点对应的第一反射信息,具体包括:针对每个所述像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;根据UV坐标,在不透明纹理声明贴图中进行采样,得到所述像素点对应的第一反射信息。
在一些实施例中,确定模块42根据每个像素点对应的所述反射位置,确定每个所述像素点对应的第二反射信息,具体包括:针对每个像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;根据所述UV坐标,在预设的环境反射信息中进行采样,得到所述像素点对应的第二反射信息。
在一些实施例中,确定模块42根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的的UV坐标,包括:将世界空间下,所述像素点对应的所述反射位置转换到裁剪空间,得到所述像素点在裁剪空间下的反射位置;将所述裁剪空间下的反射位置的坐标转换至预设区间范围,得到所述反射位置对应的UV坐标。
在一些实施例中,确定模块42根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息,包括:根据所述视角向量与所述法线的点乘结果,确定每个所述像素点对应的菲涅尔信息。
在一些实施例中,确定模块42根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息,包括:将所述菲涅尔信息作为所述第一反射信息和所述第二反射信息之间过渡计算的遮罩差值,得到每个所述像素点对应的目标反射信息。
本申请实施例提供的水体反射处理装置,可用于执行上述实施例中水体反射处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块42可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块42的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图5为本申请实施例提供的电子设备的结构示意图。如图5所示,该电子设备可以包括:处理器51、存储器52和收发器53。
处理器51执行存储器存储的计算机执行指令,使得处理器51执行上述实施例中的方案。处理器51可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器52通过系统总线与处理器51连接并完成相互间的通信,存储器52用于存储计算机程序指令。
收发器53可以用于获取经水体面的每个像素点反射的光线在目标对象上的反射位置。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可用于执行上述实施例中水体反射处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中水体反射处理方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例水体反射处理方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中水体反射处理方法的技术方案。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (11)
1.一种水体反射处理方法,其特征在于,包括:
获取经水体面的每个像素点反射的光线在目标对象上的反射位置;
根据每个所述像素点对应的所述反射位置,确定每个所述像素点对应的第一反射信息和第二反射信息;所述第一反射信息是从不透明纹理声明贴图中进行采样得到的,所述第二反射信息是从预设的环境反射信息中采样得到的;
根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息;
根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息;
根据所述目标反射信息对每个所述像素点进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述获取经水体面的每个像素点反射的光线在目标对象上的反射位置,包括:
针对所述水体面的每个像素点,在世界坐标系下,获取所述像素点对应的视角向量和法线方向;
根据所述视角向量和法线方向,确定所述像素点对应的反射方向;
将从所述像素点沿所述反射方向行进预设距离,得到的位置作为所述像素点反射的光线在目标对象上的反射位置;
其中,所述预设距离与所述视角向量在竖直方向上的分量正相关。
3.根据权利要求1所述的方法,其特征在于,所述根据每个所述像素点对应的反射位置,确定每个所述像素点对应的第一反射信息,包括:
针对每个所述像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;
根据UV坐标,在不透明纹理声明贴图中进行采样,得到所述像素点对应的第一反射信息。
4.根据权利要求1所述的方法,其特征在于,所述根据每个像素点对应的所述反射位置,确定每个所述像素点对应的第二反射信息,包括:
针对每个像素点,根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的UV坐标;
根据所述UV坐标,在预设的环境反射信息中进行采样,得到所述像素点对应的第二反射信息。
5.根据权利要求3或4所述的方法,其特征在于,所述根据世界坐标系下所述像素点对应的反射位置,确定所述反射位置对应的的UV坐标,包括:
将世界空间下,所述像素点对应的所述反射位置转换到裁剪空间,得到所述像素点在裁剪空间下的反射位置;
将所述裁剪空间下的反射位置的坐标转换至预设区间范围,得到所述反射位置对应的UV坐标。
6.根据权利要求1所述的方法,其特征在于,所述根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息,包括:
根据所述视角向量与所述法线的点乘结果,确定每个所述像素点对应的菲涅尔信息。
7.根据权利要求1或6所述的方法,其特征在于,所述根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息,包括:
将所述菲涅尔信息作为所述第一反射信息和所述第二反射信息之间过渡计算的遮罩差值,得到每个所述像素点对应的目标反射信息。
8.一种水体反射处理装置,其特征在于,包括:
获取模块,用于获取经水体面的每个像素点反射的光线在目标对象上的反射位置;
确定模块,用于根据每个所述像素点对应的所述反射位置,确定每个所述像素点对应的第一反射信息和第二反射信息;所述第一反射信息是从不透明纹理声明贴图中进行采样得到的,所述第二反射信息是从预设的环境反射信息中采样得到的;
所述确定模块,还用于根据每个所述像素点处的法线与视角向量,确定每个所述像素点对应的菲涅尔信息;
所述确定模块,还用于根据每个所述像素点对应的所述菲涅尔信息、所述第一反射信息和所述第二反射信息,得到每个所述像素点对应的目标反射信息;
渲染模块,用于根据所述目标反射信息对每个所述像素点进行渲染。
9.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为用于实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346543.3A CN114748874A (zh) | 2022-04-02 | 2022-04-02 | 水体反射处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346543.3A CN114748874A (zh) | 2022-04-02 | 2022-04-02 | 水体反射处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114748874A true CN114748874A (zh) | 2022-07-15 |
Family
ID=82328371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210346543.3A Pending CN114748874A (zh) | 2022-04-02 | 2022-04-02 | 水体反射处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114748874A (zh) |
-
2022
- 2022-04-02 CN CN202210346543.3A patent/CN114748874A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625896B2 (en) | Face modeling method and apparatus, electronic device and computer-readable medium | |
US10559095B2 (en) | Image processing apparatus, image processing method, and medium | |
CN111127623B (zh) | 模型的渲染方法、装置、存储介质及终端 | |
CN110163831B (zh) | 三维虚拟沙盘的物体动态展示方法、装置及终端设备 | |
CN112819941B (zh) | 渲染水体面的方法、装置、设备和计算机可读存储介质 | |
CN112153303B (zh) | 一种视觉数据处理方法、装置、图像处理设备和存储介质 | |
CN113643414A (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
US20240087219A1 (en) | Method and apparatus for generating lighting image, device, and medium | |
EP3343516A1 (en) | Method and device for applying an effect of an augmented or mixed reality application | |
CN114748874A (zh) | 水体反射处理方法、装置、设备及存储介质 | |
CN116704125A (zh) | 一种基于三维点云的映射方法、装置、芯片及模组设备 | |
CN112991429A (zh) | 箱体体积测量方法、装置、计算机设备和存储介质 | |
CN112819929B (zh) | 渲染水面方法及装置、电子设备、存储介质 | |
CN115359172A (zh) | 渲染方法及相关装置 | |
CN116137051A (zh) | 水面渲染方法、装置、设备及存储介质 | |
CN115690284A (zh) | 一种渲染方法、装置及存储介质 | |
CN113724364A (zh) | 一种利用多边形实现遮挡且本体不渲染的设置方法及装置 | |
US11436794B2 (en) | Image processing method, apparatus and device | |
CN111383262A (zh) | 遮挡检测方法、系统、电子终端以及存储介质 | |
KR20200051280A (ko) | 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 | |
CN113205585B (zh) | 动态物体互反射效果绘制方法、装置、系统和存储介质 | |
US20240135645A1 (en) | Appearance Capture | |
US20240233265A9 (en) | Appearance Capture | |
US20230316640A1 (en) | Image processing apparatus, image processing method, and storage medium |
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 |