CN115409928A - 水体效果渲染方法、装置、电子设备和存储介质 - Google Patents
水体效果渲染方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115409928A CN115409928A CN202211090892.XA CN202211090892A CN115409928A CN 115409928 A CN115409928 A CN 115409928A CN 202211090892 A CN202211090892 A CN 202211090892A CN 115409928 A CN115409928 A CN 115409928A
- Authority
- CN
- China
- Prior art keywords
- model
- position point
- water body
- mapping position
- rendered
- 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/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种水体效果渲染方法、装置、电子设备和计算机可读存储介质;本申请实施例可获取待渲染水体场景的水体模型、地形模型、边界过渡模型的材质,边界过渡模型的材质包括透明贴图;获取待渲染水体场景的待渲染像素点的水体深度值;根据水体深度值与边界过渡模型的透明贴图,确定待渲染像素点在边界过渡模型上的第一映射位置点的过渡色;基于第一映射位置点的过渡色、水体模型的材质、以及地形模型的材质进行合并输出,得到待渲染像素点的屏幕显示效果。本申请实施例可以柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
Description
技术领域
本申请涉及图像处理领域,具体涉及一种水体效果渲染方法、装置、电子设备和计算机可读存储介质。
背景技术
在三维网络游戏中,海水、湖泊、溪流等水体是十分常见的虚拟场景。在出现水体的虚拟场景中,通常需要进行如浪花、起伏流动、高光等水体效果进行模拟,现有技术中,通过将不透明水体加上半透明浪花来模拟水体效果。但是,本申请实施例发明人在实际应用过程中发现,现有的水体效果模拟会存在水体与地形间交界线明显的问题。
发明内容
本申请实施例提供一种水体效果渲染方法、装置、电子设备和计算机可读存储介质,可以柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
第一方面,本申请实施例提供一种水体效果渲染方法,包括:
获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
获取所述待渲染水体场景的待渲染像素点的水体深度值;
根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
第二方面,本申请实施例还提供一种水体效果渲染装置,包括:
第一获取单元,用于获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
第二获取单元,用于获取所述待渲染水体场景的待渲染像素点的水体深度值;
确定单元,用于根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
渲染单元,用于基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
第三方面,本申请实施例还提供一种电子设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种水体效果渲染方法中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种水体效果渲染方法中的步骤。
本申请实施例通过边界过渡模型的透明贴图与水体深度值结合得到第一映射位置点的过渡色,可以控制随着待渲染像素点的水体深度值逐渐增加,即随着第一映射位置点的水体深度值(第一映射位置点为待渲染像素点在边界过渡模型上对应的置点,因此待渲染像素点的水体深度值视为第一映射位置点的水体深度值)逐渐增加,第一映射位置点的不透明度也逐渐增加;从而控制随着水体深度值逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为最小)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例所提供的水体效果渲染***的场景示意图;
图2是本申请实施例提供的水体效果渲染方法的一种实施例流程示意图;
图3是本申请实施例中提供的水体深度值计算的一种原理说明示意图;
图4是本申请实施例中提供的边界线过渡柔和的一种说明示意图;
图5是本申请实施例中提供的水体波浪扰动效果的一种说明示意图;
图6是本申请实施例中的smoothstep函数得到的曲线图的一个示意图;
图7是本申请实施例中提供的水体打到地形上形成的泡沫效果示意图;
图8是本申请实施例中提供的交界线消除前待渲染水体场景的渲染效果示意图;
图9是本实施例提供的交界线消除后待渲染水体场景的渲染效果示意图;
图10是本申请实施例提供的水体效果渲染装置的结构示意图;
图11是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。同时,在本申请实施例的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请实施例提供一种水体效果渲染方法、装置、电子设备和计算机可读存储介质。
具体地,本实施例将从水体效果渲染装置的角度进行描述,该水体效果渲染装置具体可以集成在电子设备中,即本申请实施例水体效果渲染方法可以由电子设备执行,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、触控屏幕、游戏机、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该水体效果渲染装置还可以集成在多个电子设备中,比如,水体效果渲染装置可以集成在多个服务器中,由多个服务器来实现本申请的水体效果渲染方法。又如,水体效果渲染装置可以集成在多个终端中,由多个终端来实现本申请的水体效果渲染方法。
在一些实施例中,服务器也可以以终端的形式来实现,比如,可以将个人电脑设置为服务器来集成该水体效果渲染装置,由个人电脑设置成的服务器来实现本申请的水体效果渲染方法。
例如,本申请实施例提供的水体效果渲染方法,可以应用于如图1所示的水体效果渲染***中。其中,该水体效果渲染***包括终端100、服务器200,终端100可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。终端100具体可以是用于运行游戏应用的终端设备,如终端100具体是手机、平板电脑、笔记本电脑等中的一种。终端100与服务器200可以通过网络进行双向通信,服务器200可用于存储待渲染水体场景的各场景模型的材质信息,如边界过渡模型的材质(包括透明贴图、颜色贴图等)、水体模型的材质(如透明贴图、基本颜色贴图等)、地形模型的材质(如基本颜色贴图、湿水纹理贴图等),终端100通过网络从服务器获取待渲染水体场景的各场景模型的材质信息,并通过终端100的处理器(如CPU或GPU等)实现水体效果的渲染;其中,服务器200可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。例如,该终端100可以获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;获取所述待渲染水体场景的待渲染像素点的水体深度值;根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
以下结合附图分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于附图所示的顺序执行所示出或描述的步骤。
如图2所示,该水体效果渲染方法的具体流程可以如下步骤201~步骤204,其中:
201、获取待渲染水体场景的各场景模型的材质。
其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图。
其中,水体可以是海水、湖泊、溪流等。地形可以是山石、建筑、植物等。
其中,待渲染水体场景是指待渲染的、带有水体的虚拟场景,例如,如带有海水、湖泊、溪流等水体的虚拟场景。
其中,场景模型是指用于模拟待渲染水体场景的三维模型,例如,用于模拟岸边山石、建筑、植物等地形模型,以及用于模拟水体本身的水体模型等。以待渲染水体场景是海水场景为例,场景模型可以包括用于模拟海岸处山石的地形模型、以及用于模拟海水本身的水体模型。
其中,边界过渡模型是为了柔和水体与地形之间交界线而增加的模型。
为方便理解,本文中,以待渲染水体场景包括水体模型、地形模型和边界过渡模型共3个场景模型为例,说明该水体效果渲染方法的具体实现;可以理解的是,实际上该待渲染水体场景还可以包含更多的场景模型。
其中,场景模型的材质是用于表现物体(即场景模型对应的物体)对光的交互、供渲染器读取的数据集。例如,场景模型的贴图(如,颜色贴图、凹凸贴图、反射贴图、结构贴图、光照与环境贴图、遮罩贴图、透明贴图等)。为方便理解,本文中主要以水体模型是海水、地形模型是与海水交界的海石为例。
可以理解的是,实际应用该水体效果渲染方法时,可以从如应用程序(如游戏应用)中获取到:各模型空间坐标系(如水体模型空间坐标系、地形模型空间坐标系、边界过渡模型空间坐标系)与待渲染水体场景对应的世界空间坐标系之间的坐标转换关系、世界空间坐标系与相机空间坐标系之间的坐标转换关系、相机空间坐标系与屏幕空间坐标系之间的坐标转换关系、各场景模型上的各点在各模型空间坐标系中的模型坐标、各像素点的在屏幕空间坐标系中的屏幕坐标。由此,在实际渲染时,在以屏幕空间坐标中的各像素点作为待渲染像素点进行渲染,可以根据待渲染像素点的屏幕坐标、各场景模型上的各点在各模型空间坐标系中的模型坐标,确定待渲染像素点在各场景模型上对应的位置点(如后文所提及的第一映射位置点、第二映射位置点、第三映射位置点),为简化表述,后文中中将不再赘述该转换关系。
202、获取所述待渲染水体场景的待渲染像素点的水体深度值。
其中,待渲染像素点是指待渲染至屏幕画面上的各像素点。
其中,待渲染像素点的水体深度值是指待渲染像素点处对应的水体深度。
与现实场景类似,针对水体模型上各位置点对应的像素点而言,待渲染像素点与待渲染水体场景的交界线之间的距离越大,待渲染像素点的水体深度值越大,其中,待渲染水体场景的交界线为水体模型与地形模型之间的交界线。
步骤202中获取水体深度值的方式有多种,示例性地,包括:
(1)实时计算。此时,步骤202具体可以包括如下步骤2021~步骤2023,其中:
2021、获取所述待渲染像素点的场景深度。
为了方便理解,先介绍本申请实施例中水体深度值的计算原理,如图3所示,图3是本申请实施例中提供的水体深度值计算的一种原理说明示意图,图3中,E表示待渲染水体场景的渲染相机、K表示边界过渡模型、W表示地形模型、O表示地形模型与边界过渡模型的交界点、I表示渲染相机E的相机方向的射线与边界过渡模型K之间的交界点、J表示渲染相机E的相机方向的射线与地形模型W之间的交界点、S表示待渲染像素点的场景深度、P表示待渲染像素点的像素深度、A=S-P,渲染相机E的相机方向=向量EI=I-E。可见,边界过渡模型上的点I和地形模型上的点F通过渲染相机E投射至屏幕的同一像素点,即I和F对应同一待渲染像素点。
如图3所示,由于边界过渡模型K是放置于水体模型与地形模型之间,因此,边界过渡模型K也可以视为水体平面,即K上的点的水体深度值可视为0,也即地形模型与边界过渡模型的交界点O的水体深度值可视为0。
图3中,作线段EG垂直于K并与K相交于G(线段EG的长度用B表示,B=向量EI.z,z表示渲染相机E的相机方向的z轴坐标高度)、作线段FJ垂直于K并与K相交于J(线段FJ的长度用C表示)、作线段ID垂直于K并与W相交于D。由于K上的点的水体深度值可视为0(即I点的水体深度值为0),因此,线段ID的长度可以视为I点对应的待渲染像素点的水体深度值,因此,只需要求得线段ID的长度即可得到待渲染像素点的水体深度值。
由于三角形IFJ和三角形IEG均为直角三角形、且三角形IFJ的角∠FIJ(简称为θ)与三角形IEG的角∠EIG(简称为θ’)相等(二者为对角所以相等),因此三角形IFJ和三角形IEG为相似三角形。同理,由于三角形FJO和三角形DIO均为直角三角形、且三角形IFJ的角∠FOJ与三角形IEG的角∠DOI相等,因此三角形FJO和三角形DIO也为相似三角形。由三角形IFJ和三角形IEG相似,可得B/P=C/A,进而得到C=(B/P)*A=(向量EI.z/P)*A=[(I-E).z/P]*A;由三角形FJO和三角形DIO相似,可得C与ID成线性比例,因此,可以将C的长度近似作为待渲染像素点的水体深度值。因此,可以通过如下公式(1)计算得到待渲染像素点的水体深度值。
公式(1)中,C表示待渲染像素点的水体深度值,A=S-P,S表示待渲染像素点的场景深度,P表示待渲染像素点的像素深度,表示向量EI(用于渲染相机E的相机方向),E表示待渲染像素点的渲染相机E,I表示渲染相机E的相机方向的射线与边界过渡模型K之间的交界点,z表示渲染相机E的相机方向的z轴坐标高度。
其中,待渲染像素点的场景深度是指去掉正使用材质的深度时,待渲染像素点与渲染相机之间的距离。如图3所示的地形模型上的点F与渲染相机E之间的距离S。通过获取待渲染像素点在地形模型上的第二映射位置点与渲染相机的位置点之间的距离,即可得到待渲染像素点的场景深度。
示例性,步骤2021具体可以包括:获取所述待渲染像素点在所述地形模型上的第二映射位置点;获取所述待渲染水体场景的渲染相机的位置点;获取所述第二映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的场景深度。例如,如图3所示,首先,获取待渲染像素点在地形模型上的第二映射位置点(如图3中的点F)的坐标、以及待渲染水体场景的渲染相机的位置点(如图3中的点E)的坐标;然后,通过坐标转换计算得到第二映射位置点与渲染相机的位置点之间的距离(如图3中的距离S),以作为待渲染像素点的场景深度。
其中,第二映射位置点是指待渲染像素点在地形模型上对应的位置点。
2022、获取所述待渲染像素点的像素深度。
其中,待渲染像素点的像素深度是指包含正使用材质的深度时,待渲染像素点与渲染相机之间的距离。如图3所示的边界过渡模型上的点I与渲染相机E之间的距离P。通过获取待渲染像素点在边界过渡模型上的第一映射位置点与渲染相机的位置点之间的距离,即可得到待渲染像素点的像素深度。
示例性,步骤2021具体可以包括:获取所述待渲染像素点在所述边界过渡模型上的第一映射位置点;获取所述待渲染水体场景的渲染相机的位置点;获取所述第一映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的像素深度。例如,如图3所示,首先,获取待渲染像素点在边界过渡模型上的第一映射位置点(如图3中的点I)的坐标、以及待渲染水体场景的渲染相机的位置点(如图3中的点E)的坐标;然后,通过坐标转换计算得到第一映射位置点与渲染相机的位置点之间的距离(如图3中的距离P),以作为待渲染像素点的像素深度。
其中,第一映射位置点是指待渲染像素点在边界过渡模型上对应的位置点。
2023、基于所述场景深度和所述像素深度,确定所述待渲染像素点的水体深度值。
如图3所示,由于K上的点的水体深度值可视为0(即I点的水体深度值为0),线段ID的长度可以视为I点对应的待渲染像素点的水体深度值,因此,只需要求得线段ID的长度即可得到待渲染像素点的水体深度值。示例性地,由三角形IFJ和三角形IEG相似,可得B/P=C/A,进而得到C=(B/P)*A=(EI.z/P)*A=[(E-I).z/P]*A;由三角形FJO和三角形DIO相似,可得C与ID成线性比例,因此本实施例中以C的长度近似作为待渲染像素点的水体深度值,从而,将待渲染像素点的场景深度(即S)、像素深度(即P)、待渲染像素点的渲染相机的位置点(即点E)的坐标、渲染相机E的相机方向的射线与边界过渡模型K之间的交界点(即点I)的坐标代入如上公式(1)计算,即可得到待渲染像素点的水体深度值。
为方便理解,待渲染像素点的水体深度值也可以视为第一映射位置点的水体深度值,即各待渲染像素点的水体深度值、与该待渲染像素点的在边界过渡模型上对应的位置点(简称为第一映射位置点)的水体深度值相同。
(2)参考步骤2021~步骤2023方式,预先计算得到待渲染水体场景的各待渲染像素点的水体深度值存储在预设数据库中,步骤202中,直接从预设数据库中读取得到待渲染像素点的水体深度值。
203、根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色。
其中,所述过渡色与所述水体深度值成正关系。即待渲染像素点的水体深度值越大,第一映射位置点的过渡色也越深;反之,待渲染像素点的水体深度值越小,第一映射位置点的过渡色也越浅。
其中,边界过渡模型的透明贴图用于控制第一映射位置点的不透明度由0~1区间变化,即控制第一映射位置点由全透明至不透明变化;其中,第一映射位置点的不透明度=0时,第一映射位置点为全透明;第一映射位置点的不透明度=1时,第一映射位置点为不透明;第一映射位置点的不透明度>0且<1时,第一映射位置点为半透明,并且透明程度随着不透明度的增大而减弱。
本文中,涉及到的具体数值区间(如不透明度的区间为0~1、水体深度值的区间0~1等)仅为举例,在实际应用及未来也有可能采用不同的数值区间,而不限制于本文举例的具体数值区间。
为了实现待渲染水体场景中处于水体(如海水)下面的地形(如山石)呈现半透明的效果,本申请实施例中通过边界过渡模型加一层半透明采样一张地形纹理贴图(如山石纹理贴图)。其中,地形纹理贴图是指表现为地形图案样式的贴图。具体地,首先,可以通过如下公式(2)控制边界过渡模型的地形纹理贴图的生成,用于模拟处于水体(如海水)下面的地形(如山石);并通过如下公式(3)生成一个可控制圆连接上不透明度后,控制边界过渡模型的透明贴图的生成,用于为处于水体(如海水)下面的地形(如山石)增加一层半透明效果。
uv=texcoord[0]*ReflScale+Refl_Offset.rg 公式(2)
公式(2)中,texcoord[0]表示原始uv;[0]表示通道0,这里是可以选1,2,3,4等,一个模型可以有很多个uv的,通常使用[0]通道;ReflScale用于控制uv缩放,也就是控制地形纹理贴图(如山石纹理贴图)大小;Refl_Offset.rg用于控制uv偏移,也就是地形纹理贴图(如山石纹理贴图)往二维坐标的X轴和Y轴移动,默认uv使用的是平铺,也就是当放大uv也就是缩小图片时,地形纹理贴图(如山石纹理贴图)会重复平铺出现地形样式a,如图4中的(a)所示。如此,通过公式(2)可以得到边界过渡模型的地形纹理贴图,如图4中的(a)所示。或者,实际上可以理解为:通过公式(2)得到的是一张地形纹理图,该地形纹理图再与边界过渡模型采样后的基本颜色(Base Color)贴图相乘用于控制贴图的明度,最终才是边界过渡模型的地形纹理贴图。
smoothstep(CircleRange,1,1-saturate(distance(uv*2-float2(1,1),float(0,0)))+CircleRange) 公式(3)
公式(3)中,uv*2-float2(1,1)表示将uv的原点(0,0)移到中心;distance(uv*2-float2(1,1),float(0,0))表示画圆,就是uv上的点到原点的距离,这时的原点(0,0)已经经过uv*2-float2(1,1)偏移到中心了;saturate表示防溢出,用于把输入的值控制在[0-1]区间,1-x表示取反(这里x=1-saturate(distance(uv*2-float2(1,1),float(0,0)));smoothstep是曲线函数,用于控制平滑过渡。如此,通过公式(3)可以得到一个可控制圆,如图4中的(b)所示,通过CircleRange可以控制这个圆大小,同时也控制白色到黑的平滑过度。
然后,将公式(3)生成的可控制圆连接上不透明度、并与采样后的地形纹理贴图(通过公式(2)生成)相乘,控制得到处于水体(如海水)下面的地形(如山石)呈现半透明的效果,如图4中的(c)所示。其中,在未连接不透明度时,将公式(3)生成的可控制圆与采样后的地形纹理贴图(通过公式(2)生成)相乘,得到如图4中的(d)所示的效果。可见通过将公式(3)生成的可控制圆连接上不透明度作为边界过渡模型的透明贴图,可以根据不透明度=0时完全透明、不透明度=1时不透明,控制边界过渡模型的透明贴图为半透明,从而控制处于水体(如海水)下面的地形(如山石)呈现半透明的效果。
如图8所示,通过材质包含透明贴图的边界过渡模型放置于水体模型与地形模型之间,由于边界过渡模型的透明贴图可以控制边界过渡模型的透明度,因此通过调整边界过渡模型的透明贴图为半透明,可以使得边界过渡模型以下的地形模型呈现半透明效果。但是,水体模型与地形模型之间的交界线仍然存在(如图8中箭头处所示),为此本实施例中,根据水体深度缓和过渡水体模型与地形模型之间的交界线,具体为:控制边界过渡模型的透明贴图的透明度,由交界线处(交界线处的水体深度值为0)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,以实现消除水体模型与地形模型之间的交界线。
因此,步骤203中,首先,根据边界过渡模型的透明贴图确定待渲染像素点在边界过渡模型上的第一映射位置点处的不透明度;将第一映射位置点处的不透明度设置为待渲染像素点的水体深度值,从而得到第一映射位置点的过渡色。
由此,通过边界过渡模型的透明贴图与水体深度值结合,可以控制随着第一映射位置点的水体深度值由0~1区间逐渐增加,第一映射位置点的不透明度也由0~1区间逐渐增加;从而控制随着水体深度值由0~1逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为0)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和,实现消除水体模型与地形模型之间的交界线,如图9所示(如图9中箭头处所示)。
进一步地,为了保证使得边界过渡模型可以更贴合地形本身颜色,边界过渡模型的材质还包括颜色贴图,边界过渡模型的颜色贴图可用于模拟地形颜色。具体地,可以采用通过如上公式(2)控制生成的边界过渡模型的地形纹理贴图,作为边界过渡模型的颜色贴图;或者,也可以采用边界过渡模型的基本颜色(Base Color)贴图作为边界过渡模型的颜色贴图。此时,步骤203具体包括步骤2031~步骤2034,其中:
2031、基于所述边界过渡模型的颜色贴图,获取所述第一映射位置点处的颜色值。
其中,第一映射位置点处的颜色值是指基于边界过渡模型的颜色贴图进行采样得到的第一映射位置点处的uv。
2032、基于所述边界过渡模型的透明贴图,获取所述第一映射位置点处的不透明度。
其中,第一映射位置点处的不透明度是指基于边界过渡模型的透明贴图进行采样得到的第一映射位置点处的uv。
2033、将所述第一映射位置点处的不透明度设置为所述水体深度值,得到所述第一映射位置点处的目标透明度值。
2034、将所述第一映射位置点处的颜色值与所述第一映射位置点处的目标透明度值进行合并,得到所述第一映射位置点的过渡色。
例如,基于边界过渡模型的颜色贴图进行采样可以获取第一映射位置点处的颜色值(如x1);基于边界过渡模型的透明贴图,将第一映射位置点处的不透明度设置为待渲染像素点的水体深度值(如0.5),作为第一映射位置点处的目标透明度值;然后将第一映射位置点处的目标透明度值(即0.5)、与第一映射位置点处的颜色值(即x1)相乘的结果,作为第一映射位置点的过渡色(即0.5x1)。
由此,可以通过边界过渡模型的不透明度与采样后的边界过渡模型的颜色贴图相乘的方式,将第一映射位置点处的颜色值与第一映射位置点处的目标透明度值进行合并,得到第一映射位置点的过渡色;从而使得在原水体颜色的基础上进行交界线的柔和过渡,实现更加贴合自然的渲染效果。
204、基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
示例性地,步骤204具体可以包括如下步骤2041~步骤2043,其中:
2041、基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果。
其中,地形模型的材质可以包括如光照信息、颜色贴图、光照与环境贴图、遮罩贴图、透明贴图等。
通过不同的地形模型的材质,可以控制地形模型的不同表现,从而控制待渲染场景的不同渲染效果。下面分别以模拟待渲染场景中地形被水体打湿的湿水效果、水体打到地形上形成的泡沫效果模拟为例,说明通过不同的地形模型的材质控制地形模型的不同表现、以控制待渲染场景的不同渲染效果。
①模拟地形被水体打湿的湿水效果。
此时,步骤201中获取的地形模型的材质具体包括湿水纹理贴图和基本颜色贴图。
其中,湿水纹理贴图是指表现为湿水纹理图案样式的贴图,例如,具体可以是一张用于模拟地形(如海石)被水体(如海水)打湿后呈现出青苔及深色的水体图。通过插值函数Lerp,将地形模型的湿水纹理贴图与地形模型的基本颜色贴图进行插值;并通过节点(如Str_BaseCol)控制基本颜色贴图和湿水纹理贴图的混合程度,通过节点(如Str_WaterCol)控制湿水纹理贴图的明度。
此时,第二映射位置点的材质效果包括湿水效果值,步骤2041具体可以如下步骤A1~步骤A3:
A1、基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值;
其中,第二映射位置点处的基本颜色值是指基于地形模型的基本颜色贴图进行采样得到的第二映射位置点处的uv。
A2、基于所述地形模型的湿水纹理贴图,确定所述第二映射位置点处的湿水纹理值;
其中,第二映射位置点处的湿水纹理值是指基于地形模型的湿水纹理贴图进行采样得到的第二映射位置点处的uv。
A3、基于所述第二映射位置点处的基本颜色值和所述第二映射位置点处的湿水纹理值进行合并,得到所述第二映射位置点的湿水效果值。
例如,基于地形模型的基本颜色贴图进行采样可以获取第二映射位置点处的基本颜色值(如x2);基于地形模型的湿水纹理贴图,确定第二映射位置点处的湿水纹理值(如y2);将第二映射位置点处的基本颜色值(如x2)和第二映射位置点处的湿水纹理值(如y2)进行混合,得到第二映射位置点的湿水效果值。
由此,可以通过将第二映射位置点处的基本颜色值和第二映射位置点处的湿水纹理值进行混合,得到第二映射位置点的湿水效果值;从而使得待渲染水体场景表现出地形被水体打湿的湿水效果,实现更加贴合自然的渲染效果。
②模拟水体打到地形上形成的泡沫效果。
此时,步骤201中获取的地形模型的材质具体包括噪波图和基本颜色贴图。
此时,第二映射位置点的材质效果包括地形泡沫效果值,步骤2041具体可以如下步骤B1~步骤B3:
B1、基于预设三角函数生成的所述地形模型的第三噪波图、以及基于预设时间函数生成的所述地形模型的第四噪波图,获取所述第三映射位置点处的目标澡波值。
其中,第三噪波图是指基于预设三角函数生成的地形模型的噪波图。第三噪波图具体生成方式与第一噪波图类似,可以参考后文“①模拟水体波浪扰动效果”相关说明,此处不再赘述。
其中,第四噪波图是指基于预设时间函数生成的地形模型的噪波图。第四噪波图具体生成方式与第二噪波图类似,可以参考后文“①模拟水体波浪扰动效果”相关说明,此处不再赘述。
其中,第二映射位置点处的目标噪波值是指基于地形模型的第三噪波图、第四噪波图进行采样得到的第二映射位置点处的uv。第二映射位置点处的目标噪波值的具体获取方式与步骤C2中“第三映射位置点处的目标澡波值”类似,可以参考步骤C2以及公式(6)~公式(8)部分的相关说明,为简化表述,此处不再赘述。
B2、若所述第二映射位置点的目标噪波值为波峰值,则在所述第二映射位置点添加地形泡沫效果值。
具体地,与后文中“②模拟水体波浪高位处产生泡沫效果”类似,可以使用两层噪波动态扰动uv模拟(水体打到地形上形成的)泡沫,通过节点(如Str_Spindirft)控制泡沫强度然后叠加到地形(如山石)上面,通过节点(如S_Range)控制山石上泡沫的范围,用世界坐标的Z轴做插值,然后用两个smoothstep做出如图6所示的曲线图。其中,Z_Offset是地形(如山石)上泡沫在Z轴的起始位置,Z_Offset+S_Range是地形(如山石)泡沫在Z轴的结束位置,S_Range就是地形(如山石)泡沫的范围。然后,通过插值函数lerp,将模拟生成的地形(如山石)上泡沫插值地形(如山石)的基础颜色贴图,0的时候取,1是取地形(如山石)泡沫效果。
具体地,可以使用ue引擎的曲线功能模拟正弦函数,此功能模拟水体(如海水)起伏上下的效果,通过过度曲线smoothstep做出如图6所示的曲线图,来控制水体(如海水)与地形(如山石)交界线上的泡沫,如图7所示。
B3、若所述第二映射位置点的目标噪波值不是波峰值,基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值,作为第二映射位置点的材质效果。
其中,第二映射位置点处的基本颜色值是指基于地形模型的基本颜色贴图进行采样得到的第三映射位置点处的uv。
由于第二映射位置点的目标噪波值为波峰值,表明第二映射位置点处为水体波浪的高位处,通过在第二映射位置点的目标噪波值为波峰值时,在第二映射位置点添加地形泡沫效果值;在第三映射位置点的目标噪波值不是波峰值时,不在第三映射位置点添加地形泡沫效果值、而是插值地形模型的基本颜色值,可以模拟水体打到地形上形成的泡沫效果,实现如水体(如海水)与地形(如山石)交界线上的泡沫,实现更贴合自然的渲染效果。
2042、基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果。
其中,水体模型的材质可以包括如光照信息、颜色贴图、光照与环境贴图、遮罩贴图、透明贴图等。
通过不同的水体模型的材质,可以控制水体模型的不同表现,从而控制待渲染场景的不同渲染效果。下面分别以模拟待渲染场景中水体波浪扰动效果、水体波浪高位处产生泡沫效果、地形在水体中形成倒影效果为例,说明通过不同的水体模型的材质控制水体模型的不同表现、以控制待渲染场景的不同渲染效果。
①模拟水体波浪扰动效果。
此时,步骤201中获取的水体模型的材质具体包括基本颜色贴图、噪波图。
其中,噪波图是指用于体现水体波浪效果的效果图,例如,具体可以是基于预设三角函数(如正弦函数)生成的噪波图、基于预设时间函数生成的噪波图。
例如,可以通过预设三角函数(如正弦函数,参考如下公式(4)、公式(5)所示)生成水体模型的第一噪波贴图。
(sin((uv.g+time*0.01)*30)+1)/2 公式(4)
其中,完整的正弦函数原本为:A*sin(b*x+c)+d,其中:A是振幅,周期是2π/b,相移是-c/b,垂直相移是d;如图5中的(a)所示,图5中的(a)是公式(5)正弦函数的图形表达。
公式(4)和公式(5)中,公式(4)数学表达代入公式(5)解释为:uv.g也就是uv的v轴表示x,time*0.01就是-t相移按照v轴移动,周期就是2π/30,垂直相移就是1,振幅就是1/2。由于正弦函数是比较规整的,因此通过公式(5)生成水体模型的第一噪波贴图后、直接采样水体模型的基本颜色贴图得到的水体波浪扰动效果会过于规整,如图5中的(b)所示。
为了使得水体波浪扰动效果不会过于规整,以使得待渲染水体场景的渲染效果更符合自然的水体波浪效果,本实施例中,还可以通过预设时间函数(如MF_UVControl函数,参考如下公式(6)所示)生成水体模型的第二噪波贴图。然后,再将第二噪波图与第一噪波图进行叠加、采样水体模型的基本颜色贴图得到的水体波浪扰动效果,此时得到的水体波浪扰动效果会更加自然、而不会过于规整,如图5中的(c)所示。具体地,可以采用插值函数lerp,将第二噪波图与第一噪波图进行叠加后的效果插值水体模型的基本颜色贴图,已得到带有水体的基本颜色的水体波浪扰动效果;并通过节点(如H_Wave_DarkCo和L_Wave_DarkCol)控制水体波浪(如海水波浪)暗处的颜色,如为1也就是白色的地方是水体(如海水)的暗色、为0也就是黑色的地方是水体(如海水)的浪花泡沫。
uv=uv*s+time*float(0,0.03) 公式(6)
公式(6)是MF_UVControl函数,MF_UVControl函数是一个封装的函数;time表示时间、是一个已知量,可以从应用程序(如游戏应用)中读取;等式右边uv表示(通过预设时间函数添加扰动前)贴图上每个点对应到模型物体表面的坐标位置,可以从应用程序(如游戏应用)中读取;等式左边uv表示(添加扰动后)贴图上每个点对应到模型物体表面(即水体模型)的坐标位置;float(0,0.03)用于控制时间的变化大小,表示u方向为0、v方向时间变化速度为0.03倍的时间;s是一个参数,表示控制UV的缩放大小。
例如,以水体是海水为例,原始海水效果是读取一张动态噪波图,叠加到原始uv上,然后采样海水模型的基本颜色贴图(简称海水贴图)得到的海水效果。本实施例中,通过预设三角函数生成的第一噪波图和预设时间函数生成的第二噪波图进行了两次噪波扰动,第一张normal噪波图(即第一噪波图)的采样使用uv=uv*normal_UV;第二张噪波图noise(即第二噪波图)使用第一张normal噪波图采样的RG通道作为uv进行uv动画;设这里的RG为uv2,最后noise的uv设为u3,如下公式(7)所示:
uv3=uv2*float2(U_Tiling,V_Tiling)+time*float2(U_Speed,V_Speed) 公式(7)
公式(7)中,U_Tiling,V_Tiling分别控制uv2的横坐标和纵坐标的缩放,偏移是时间函数乘以float2(U_Speed,V_Speed),那么U_Speed、V_Speed就分别控制横坐标和纵坐标的移动速度,HDR_Texture_move是控制得到的噪波扰动的强度。采样uv公式如下公式(8)所示:
uv*HDRI_UV+uv4 公式(8)
公式(8)中,HDRI_UV控制海水贴图的缩放,而uv4是采样海水模型的基本颜色取RG作为uv4,也就是动态噪波扰动的偏移量,这样就可以让海水流动起来。
此时,第三映射位置点的材质效果包括波浪效果值,步骤2042具体可以如下步骤C1~步骤C3:
C1、基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值。
其中,第三映射位置点处的基本颜色值是指基于水体模型的基本颜色贴图进行采样得到的第三映射位置点处的uv。
C2、基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值。
其中,第一噪波图是指基于预设三角函数生成的水体模型的噪波图。具体生成方式可以参考前文相关说明,此处不再赘述。
其中,第二噪波图是指基于预设时间函数生成的水体模型的噪波图。具体生成方式可以参考前文相关说明,此处不再赘述。
其中,第三映射位置点处的目标噪波值是指基于水体模型的第一噪波图、第二噪波图进行采样得到的第三映射位置点处的uv。第三映射位置点处的目标噪波值的具体获取方式可以参考前文公式(6)~公式(8)部分的相关说明,为简化表述,此处不再赘述。
C3、基于所述第三映射位置点处的基本颜色值、所述第三映射位置点处的目标澡波值进行合并,得到所述第三映射位置点的波浪效果值。
例如,基于水体模型的基本颜色贴图,获取第三映射位置点处的基本颜色值(如x3);基于第一噪波图以及第二噪波图,获取第三映射位置点处的目标澡波值(如y3);将第三映射位置点处的基本颜色值(如x3)和第三映射位置点处的目标澡波值(如y3)进行混合,得到第三映射位置点的波浪效果值。
由此,通过将第三映射位置点处的基本颜色值和第三映射位置点处的目标澡波值进行混合;从而使得待渲染水体场景表现出水体波浪扰动效果,并且由于第一噪波图和第二噪波图进行叠加后会使得水体波浪扰动效果不会过于规整,使得待渲染水体场景的渲染效果更符合自然的水体波浪效果,实现更加贴合自然的渲染效果。
②模拟水体波浪高位处产生泡沫效果。
此时,步骤201中获取的水体模型的材质具体包括噪波图。
此时,第三映射位置点的材质效果包括波浪效果值,步骤2042具体可以如下步骤D1~步骤D2:
D1、基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值。
步骤D1的实现与上述步骤C2的实现类似,具体可以参考前文相关说明,此处不再赘述。
D2、若所述第三映射位置点的目标噪波值为波峰值,则在所述第三映射位置点添加水体泡沫效果值。
例如,为了让水体(如海水)产生的泡沫更自然一点,重新计算了一套水体泡沫(如海水泡沫)叠加到水体(如海水)的基本颜色上面、并令泡沫出现在水体波浪(如海水波浪)的高位处。也就是:通过插值函数lerp,实现黑色地方即节点控制(如H_Wave_DarkCo和L_Wave_DarkCol)为0,把重新计算的水体泡沫(如海水泡沫)效果叠加到水体(如海水)的基本颜色上面;白色部分即节点控制(如H_Wave_DarkCo和L_Wave_DarkCol)为1,确定为波浪的暗部就不叠加重新计算的水体泡沫。
其中,如公式(9)所示采样uv公式,重新计算的水体泡沫(如海水泡沫),就是采样一张噪波图,两次噪波采样扰动取RG作为偏移的uv2,第一层噪波采样uv=uv*60+float2(-0.1,0)*time;取其结果RG做为第二层噪波采样的uv然后再取其RG做为偏移的uv2。并通过节点(如BuddleRange)控制水体泡沫(如海水泡沫)的范围,1-x是取反,直到黑色也就是0的地方是泡沫,在泡沫的地方与重新计算的水体泡沫(如海水泡沫)相乘,所以取反0的地方变成1、取反后1的地方就变成0(即波浪的暗部)就不叠加重新计算的水体泡沫。
uv*40+float2(0,time*Time)+uv2 公式(9)
公式(9)中,uv表示贴图上每个点对应到模型物体表面(即水体模型)的坐标位置,可以从应用程序(如游戏应用)中读取;float2(0,time*Time)表示偏移,用于控制时间的变化大小;time表示时间、是一个已知量,可以从应用程序(如游戏应用)中读取;uv2表示噪波图的红通道和绿通道。
由于第三映射位置点的目标噪波值为波峰值,表明第三映射位置点处为水体波浪的高位处,通过在第三映射位置点的目标噪波值为波峰值时,在第三映射位置点添加水体泡沫效果值;在第三映射位置点的目标噪波值不是波峰值时,不在第三映射位置点添加水体泡沫效果值,可以模拟水体波浪高位处产生泡沫效果,实现更贴合自然的渲染效果。
③模拟地形在水体中形成倒影。
此时,步骤201中获取的水体模型的材质具体包括透明贴图和基本颜色贴图。
其中,水体模型的材质的透明贴图可以参考前文步骤203中“边界过渡模型的透明贴图”获取方式,为简化表述,此处不再赘述。例如,可以参考公式(3)生成一个可控制圆连接上不透明度后,控制水体模型的透明贴图的生成,不同的是:公式(3)中“uv*2-float2(1,1)”替换为“(uv-float2(0.5.05))*WH12.rg”,distance函数是求两点距离,(uv-float2(0.5.05))将原点(0,0)移到(0.5,0.5),distance中(F_CenterX,F_CenterY)是uv中的点到此点的距离,通过smoothstep过度曲线得到一个黑白色渐变的圆,WH12.rg是可以控制圆的形状。然后,将生成的可控制圆连接上不透明度、并插值水体模型的基本颜色贴图作为地形在水体如(海水)中影子的颜色,即可实现模拟地形在水体中形成倒影。
此时,第三映射位置点的材质效果包括地形倒影效果值,步骤2042具体可以如下步骤E1~步骤E3:
E1、基于所述水体模型的透明贴图,获取所述第三映射位置点处的透明度值。
其中,第三映射位置点处的透明度值是指基于水体模型的透明贴图进行采样得到的第三映射位置点处的uv。
E2、基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值。
其中,第三映射位置点处的基本颜色值是指基于水体模型的基本颜色贴图进行采样得到的第三映射位置点处的uv。
E3、基于所述第三映射位置点处的透明度值与所述第三映射位置点处的基本颜色值进行合并,得到所述第三映射位置点的地形倒影效果值。
例如,基于水体模型的透明贴图,获取第三映射位置点处的透明度值(如0.3);基于水体模型的基本颜色贴图,获取第三映射位置点处的基本颜色值(如x4);基于第三映射位置点处的透明度值(如0.3)与第三映射位置点处的基本颜色值(如x4)相乘的结果,作为第三映射位置点的地形倒影效果值(即0.3x4)。
由此,可以通过水体模型的透明度与采样后的水体模型的基本颜色贴图相乘的方式,将第三映射位置点处的基本颜色值与第三映射位置点处的透明度值进行合并,得到第三映射位置点的地形倒影效果值;从而表现出地形在水体中形成倒影的效果,实现更加贴合自然的渲染效果。
2043、将所述第一映射位置点的过渡色、所述第二映射位置点的材质效果和所述第三映射位置点的材质效果进行合并输出,得到所述待渲染像素点的屏幕显示效果。
示例性地,可以通过相乘、相加等方式,将第一映射位置点的过渡色、第二映射位置点的材质效果和第三映射位置点的材质效果进行混合,最终得到待渲染像素点的屏幕显示效果。
由以上内容可以看出,通过边界过渡模型的透明贴图与水体深度值结合得到第一映射位置点的过渡色,可以控制随着待渲染像素点的水体深度值逐渐增加,即随着第一映射位置点的水体深度值(第一映射位置点为待渲染像素点在边界过渡模型上对应的置点,因此待渲染像素点的水体深度值视为第一映射位置点的水体深度值)逐渐增加,第一映射位置点的不透明度也逐渐增加;从而控制随着水体深度值逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为最小)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
为了更好地实施以上方法,本申请实施例还提供一种水体效果渲染装置,该水体效果渲染装置具体可以集成在电子设备中,比如,计算机设备,该计算机设备可以为终端、服务器等设备。
其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以水体效果渲染装置具体集成在智能手机为例,对本申请实施例的方法进行详细说明。
例如,如图10所示,该水体效果渲染装置可以包括:
第一获取单元1001,用于获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
第二获取单元1002,用于获取所述待渲染水体场景的待渲染像素点的水体深度值;
确定单元1003,用于根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
渲染单元1004,用于基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述第二获取单元1002具体用于:
获取所述待渲染像素点的场景深度;
获取所述待渲染像素点的像素深度;
基于所述场景深度和所述像素深度,确定所述待渲染像素点的水体深度值。
在一些实施例中,所述第二获取单元1002具体用于:
获取所述待渲染像素点在所述边界过渡模型上的第一映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第一映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的像素深度。
在一些实施例中,所述第二获取单元1002具体用于:
获取所述待渲染像素点在所述地形模型上的第二映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第二映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的场景深度。
在一些实施例中,所述边界过渡模型的材质还包括颜色贴图,所述确定单元1003具体用于:
基于所述边界过渡模型的颜色贴图,获取所述第一映射位置点处的颜色值;
基于所述边界过渡模型的透明贴图,获取所述第一映射位置点处的不透明度;
将所述第一映射位置点处的不透明度设置为所述水体深度值,得到所述第一映射位置点处的目标透明度值;
将所述第一映射位置点处的颜色值与所述第一映射位置点处的目标透明度值进行合并,得到所述第一映射位置点的过渡色。
在一些实施例中,所述渲染单元1004具体用于:
基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果;
基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果;
将所述第一映射位置点的过渡色、所述第二映射位置点的材质效果和所述第三映射位置点的材质效果进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述第三映射位置点的材质效果包括波浪效果值,所述水体模型的材质包括基本颜色贴图、噪波图,所述渲染单元1004具体用于:
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值;
基于所述第三映射位置点处的基本颜色值、所述第三映射位置点处的目标澡波值进行合并,得到所述第三映射位置点的波浪效果值。
在一些实施例中,所述第三映射位置点的材质效果还包括水体泡沫效果值,所述渲染单元1004具体用于:
若所述第三映射位置点的目标噪波值为波峰值,则在所述第三映射位置点添加水体泡沫效果值。
在一些实施例中,所述第三映射位置点的材质效果包括地形倒影效果值,所述水体模型的材质包括透明贴图和基本颜色贴图,所述渲染单元1004具体用于:
基于所述水体模型的透明贴图,获取所述第三映射位置点处的透明度值;
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于所述第三映射位置点处的透明度值与所述第三映射位置点处的基本颜色值进行合并,得到所述第三映射位置点的地形倒影效果值。
在一些实施例中,所述第二映射位置点的材质效果包括湿水效果值,所述地形模型的材质包括湿水纹理贴图和基本颜色贴图,所述渲染单元1004具体用于:
基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值;
基于所述地形模型的湿水纹理贴图,确定所述第二映射位置点处的湿水纹理值;
基于所述第二映射位置点处的基本颜色值和所述第二映射位置点处的湿水纹理值进行合并,得到所述第二映射位置点的湿水效果值。
在一些实施例中,所述第二映射位置点的材质效果包括地形泡沫效果值,所述地形模型的材质包括噪波图,所述渲染单元1004具体用于:
基于预设三角函数生成的所述地形模型的第三噪波图、以及基于预设时间函数生成的所述地形模型的第四噪波图,获取所述第三映射位置点处的目标澡波值;
若所述第二映射位置点的目标噪波值为波峰值,则在所述第二映射位置点添加地形泡沫效果值。
由此,本申请实施例提供的水体效果渲染装置可以带来如下技术效果:通过边界过渡模型的透明贴图与水体深度值结合得到第一映射位置点的过渡色,可以控制随着待渲染像素点的水体深度值逐渐增加,即随着第一映射位置点的水体深度值(第一映射位置点为待渲染像素点在边界过渡模型上对应的置点,因此待渲染像素点的水体深度值视为第一映射位置点的水体深度值)逐渐增加,第一映射位置点的不透明度也逐渐增加;从而控制随着水体深度值逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为最小)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图11所示,图11为本申请实施例提供的电子设备的结构示意图。该电子设备1100包括有一个或者一个以上处理核心的处理器1101、有一个或一个以上计算机可读存储介质的存储器1102及存储在存储器1102上并可在处理器上运行的计算机程序。其中,处理器1101与存储器1102电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器1101是电子设备1100的控制中心,利用各种接口和线路连接整个电子设备1100的各个部分,通过运行或加载存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行电子设备1100的各种功能和处理数据,从而对电子设备1100进行整体监控。处理器1101可以是中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。
在本申请实施例中,电子设备1100中的处理器1101会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的应用程序,从而实现各种功能:
获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
获取所述待渲染水体场景的待渲染像素点的水体深度值;
根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述获取所述待渲染水体场景的待渲染像素点的水体深度值,包括:
获取所述待渲染像素点的场景深度;
获取所述待渲染像素点的像素深度;
基于所述场景深度和所述像素深度,确定所述待渲染像素点的水体深度值。
在一些实施例中,所述获取所述待渲染像素点的像素深度,包括:
获取所述待渲染像素点在所述边界过渡模型上的第一映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第一映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的像素深度。
在一些实施例中,所述获取所述待渲染像素点的场景深度,包括:
获取所述待渲染像素点在所述地形模型上的第二映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第二映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的场景深度。
在一些实施例中,所述边界过渡模型的材质还包括颜色贴图,所述根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,包括:
基于所述边界过渡模型的颜色贴图,获取所述第一映射位置点处的颜色值;
基于所述边界过渡模型的透明贴图,获取所述第一映射位置点处的不透明度;
将所述第一映射位置点处的不透明度设置为所述水体深度值,得到所述第一映射位置点处的目标透明度值;
将所述第一映射位置点处的颜色值与所述第一映射位置点处的目标透明度值进行合并,得到所述第一映射位置点的过渡色。
在一些实施例中,所述基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果,包括:
基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果;
基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果;
将所述第一映射位置点的过渡色、所述第二映射位置点的材质效果和所述第三映射位置点的材质效果进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述第三映射位置点的材质效果包括波浪效果值,所述水体模型的材质包括基本颜色贴图、噪波图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值;
基于所述第三映射位置点处的基本颜色值、所述第三映射位置点处的目标澡波值进行合并,得到所述第三映射位置点的波浪效果值。
在一些实施例中,所述第三映射位置点的材质效果还包括水体泡沫效果值,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
若所述第三映射位置点的目标噪波值为波峰值,则在所述第三映射位置点添加水体泡沫效果值。
在一些实施例中,所述第三映射位置点的材质效果包括地形倒影效果值,所述水体模型的材质包括透明贴图和基本颜色贴图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的透明贴图,获取所述第三映射位置点处的透明度值;
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于所述第三映射位置点处的透明度值与所述第三映射位置点处的基本颜色值进行合并,得到所述第三映射位置点的地形倒影效果值。
在一些实施例中,所述第二映射位置点的材质效果包括湿水效果值,所述地形模型的材质包括湿水纹理贴图和基本颜色贴图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值;
基于所述地形模型的湿水纹理贴图,确定所述第二映射位置点处的湿水纹理值;
基于所述第二映射位置点处的基本颜色值和所述第二映射位置点处的湿水纹理值进行合并,得到所述第二映射位置点的湿水效果值。
在一些实施例中,所述第二映射位置点的材质效果包括地形泡沫效果值,所述地形模型的材质包括噪波图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于预设三角函数生成的所述地形模型的第三噪波图、以及基于预设时间函数生成的所述地形模型的第四噪波图,获取所述第三映射位置点处的目标澡波值;
若所述第二映射位置点的目标噪波值为波峰值,则在所述第二映射位置点添加地形泡沫效果值。
由此,本实施例提供的电子设备1100可以带来如下技术效果:通过边界过渡模型的透明贴图与水体深度值结合得到第一映射位置点的过渡色,可以控制随着待渲染像素点的水体深度值逐渐增加,即随着第一映射位置点的水体深度值(第一映射位置点为待渲染像素点在边界过渡模型上对应的置点,因此待渲染像素点的水体深度值视为第一映射位置点的水体深度值)逐渐增加,第一映射位置点的不透明度也逐渐增加;从而控制随着水体深度值逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为最小)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图11所示,电子设备1100还包括:触控显示屏1103、射频电路1104、音频电路1105、输入单元1106以及电源1107。其中,处理器1101分别与触控显示屏1103、射频电路1104、音频电路1105、输入单元1106以及电源1107电性连接。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏1103可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏1103可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1101,并能接收处理器1101发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器1101以确定触摸事件的类型,随后处理器1101根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏1103而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏1103也可以作为输入单元1106的一部分实现输入功能。
射频电路1104可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路1105可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路1105可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1105接收后转换为音频数据,再将音频数据输出处理器1101处理后,经射频电路1104以发送给比如另一电子设备,或者将音频数据输出至存储器1102以便进一步处理。音频电路1105还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元1106可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源1107用于给电子设备1100的各个部件供电。可选的,电源1107可以通过电源管理***与处理器1101逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源1107还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图11中未示出,电子设备1100还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种水体效果渲染方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
获取所述待渲染水体场景的待渲染像素点的水体深度值;
根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述获取所述待渲染水体场景的待渲染像素点的水体深度值,包括:
获取所述待渲染像素点的场景深度;
获取所述待渲染像素点的像素深度;
基于所述场景深度和所述像素深度,确定所述待渲染像素点的水体深度值。
在一些实施例中,所述获取所述待渲染像素点的像素深度,包括:
获取所述待渲染像素点在所述边界过渡模型上的第一映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第一映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的像素深度。
在一些实施例中,所述获取所述待渲染像素点的场景深度,包括:
获取所述待渲染像素点在所述地形模型上的第二映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第二映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的场景深度。
在一些实施例中,所述边界过渡模型的材质还包括颜色贴图,所述根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,包括:
基于所述边界过渡模型的颜色贴图,获取所述第一映射位置点处的颜色值;
基于所述边界过渡模型的透明贴图,获取所述第一映射位置点处的不透明度;
将所述第一映射位置点处的不透明度设置为所述水体深度值,得到所述第一映射位置点处的目标透明度值;
将所述第一映射位置点处的颜色值与所述第一映射位置点处的目标透明度值进行合并,得到所述第一映射位置点的过渡色。
在一些实施例中,所述基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果,包括:
基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果;
基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果;
将所述第一映射位置点的过渡色、所述第二映射位置点的材质效果和所述第三映射位置点的材质效果进行合并输出,得到所述待渲染像素点的屏幕显示效果。
在一些实施例中,所述第三映射位置点的材质效果包括波浪效果值,所述水体模型的材质包括基本颜色贴图、噪波图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值;
基于所述第三映射位置点处的基本颜色值、所述第三映射位置点处的目标澡波值进行合并,得到所述第三映射位置点的波浪效果值。
在一些实施例中,所述第三映射位置点的材质效果还包括水体泡沫效果值,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
若所述第三映射位置点的目标噪波值为波峰值,则在所述第三映射位置点添加水体泡沫效果值。
在一些实施例中,所述第三映射位置点的材质效果包括地形倒影效果值,所述水体模型的材质包括透明贴图和基本颜色贴图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的透明贴图,获取所述第三映射位置点处的透明度值;
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于所述第三映射位置点处的透明度值与所述第三映射位置点处的基本颜色值进行合并,得到所述第三映射位置点的地形倒影效果值。
在一些实施例中,所述第二映射位置点的材质效果包括湿水效果值,所述地形模型的材质包括湿水纹理贴图和基本颜色贴图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值;
基于所述地形模型的湿水纹理贴图,确定所述第二映射位置点处的湿水纹理值;
基于所述第二映射位置点处的基本颜色值和所述第二映射位置点处的湿水纹理值进行合并,得到所述第二映射位置点的湿水效果值。
在一些实施例中,所述第二映射位置点的材质效果包括地形泡沫效果值,所述地形模型的材质包括噪波图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于预设三角函数生成的所述地形模型的第三噪波图、以及基于预设时间函数生成的所述地形模型的第四噪波图,获取所述第三映射位置点处的目标澡波值;
若所述第二映射位置点的目标噪波值为波峰值,则在所述第二映射位置点添加地形泡沫效果值。
可见,计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种水体效果渲染方法中的步骤,从而带来如下技术效果:通过边界过渡模型的透明贴图与水体深度值结合得到第一映射位置点的过渡色,可以控制随着待渲染像素点的水体深度值逐渐增加,即随着第一映射位置点的水体深度值(第一映射位置点为待渲染像素点在边界过渡模型上对应的置点,因此待渲染像素点的水体深度值视为第一映射位置点的水体深度值)逐渐增加,第一映射位置点的不透明度也逐渐增加;从而控制随着水体深度值逐渐增加、对应的待渲染像素点处的水体也逐渐由透明过渡至不透明,即由交界线处(交界线处的水体深度值为最小)的全透明、向水体深度值逐渐增加的地方逐渐过渡为不透明,从而柔和过渡水体模型与地形模型之间的交界线,在视觉上实现消除水体模型与地形模型之间的交界线。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种水体效果渲染方法中的步骤,因此,可以实现本申请实施例所提供的任一种水体效果渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述水体效果渲染装置、计算机可读存储介质、电子设备实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的水体效果渲染装置、计算机可读存储介质、电子设备及其相应单元的具体工作过程及可带来的有益效果,可以参考如上实施例中水体效果渲染方法的说明,具体在此不再赘述。
以上对本申请实施例所提供的一种水体效果渲染方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种水体效果渲染方法,其特征在于,包括:
获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
获取所述待渲染水体场景的待渲染像素点的水体深度值;
根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
2.如权利要求1所述的水体效果渲染方法,其特征在于,所述获取所述待渲染水体场景的待渲染像素点的水体深度值,包括:
获取所述待渲染像素点的场景深度;
获取所述待渲染像素点的像素深度;
基于所述场景深度和所述像素深度,确定所述待渲染像素点的水体深度值。
3.如权利要求2所述的水体效果渲染方法,其特征在于,所述获取所述待渲染像素点的像素深度,包括:
获取所述待渲染像素点在所述边界过渡模型上的第一映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第一映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的像素深度。
4.如权利要求2所述的水体效果渲染方法,其特征在于,所述获取所述待渲染像素点的场景深度,包括:
获取所述待渲染像素点在所述地形模型上的第二映射位置点;
获取所述待渲染水体场景的渲染相机的位置点;
获取所述第二映射位置点与所述渲染相机的位置点之间的距离,以作为所述待渲染像素点的场景深度。
5.如权利要求1所述的水体效果渲染方法,其特征在于,所述边界过渡模型的材质还包括颜色贴图,所述根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,包括:
基于所述边界过渡模型的颜色贴图,获取所述第一映射位置点处的颜色值;
基于所述边界过渡模型的透明贴图,获取所述第一映射位置点处的不透明度;
将所述第一映射位置点处的不透明度设置为所述水体深度值,得到所述第一映射位置点处的目标透明度值;
将所述第一映射位置点处的颜色值与所述第一映射位置点处的目标透明度值进行合并,得到所述第一映射位置点的过渡色。
6.如权利要求1所述的水体效果渲染方法,其特征在于,所述基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果,包括:
基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果;
基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果;
将所述第一映射位置点的过渡色、所述第二映射位置点的材质效果和所述第三映射位置点的材质效果进行合并输出,得到所述待渲染像素点的屏幕显示效果。
7.如权利要求6所述的水体效果渲染方法,其特征在于,所述第三映射位置点的材质效果包括波浪效果值,所述水体模型的材质包括基本颜色贴图、噪波图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于预设三角函数生成的所述水体模型的第一噪波图、以及基于预设时间函数生成的所述水体模型的第二噪波图,获取所述第三映射位置点处的目标澡波值;
基于所述第三映射位置点处的基本颜色值、所述第三映射位置点处的目标澡波值进行合并,得到所述第三映射位置点的波浪效果值。
8.如权利要求7所述的水体效果渲染方法,其特征在于,所述第三映射位置点的材质效果还包括水体泡沫效果值,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
若所述第三映射位置点的目标噪波值为波峰值,则在所述第三映射位置点添加水体泡沫效果值。
9.如权利要求6所述的水体效果渲染方法,其特征在于,所述第三映射位置点的材质效果包括地形倒影效果值,所述水体模型的材质包括透明贴图和基本颜色贴图,所述基于所述水体模型的材质,获取所述待渲染像素点在所述水体模型上的第三映射位置点的材质效果,包括:
基于所述水体模型的透明贴图,获取所述第三映射位置点处的透明度值;
基于所述水体模型的基本颜色贴图,获取所述第三映射位置点处的基本颜色值;
基于所述第三映射位置点处的透明度值与所述第三映射位置点处的基本颜色值进行合并,得到所述第三映射位置点的地形倒影效果值。
10.如权利要求6所述的水体效果渲染方法,其特征在于,所述第二映射位置点的材质效果包括湿水效果值,所述地形模型的材质包括湿水纹理贴图和基本颜色贴图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于所述地形模型的基本颜色贴图,获取所述第二映射位置点处的基本颜色值;
基于所述地形模型的湿水纹理贴图,确定所述第二映射位置点处的湿水纹理值;
基于所述第二映射位置点处的基本颜色值和所述第二映射位置点处的湿水纹理值进行合并,得到所述第二映射位置点的湿水效果值。
11.如权利要求6所述的水体效果渲染方法,其特征在于,所述第二映射位置点的材质效果包括地形泡沫效果值,所述地形模型的材质包括噪波图,所述基于所述地形模型的材质,获取所述待渲染像素点在所述地形模型上的第二映射位置点的材质效果,包括:
基于预设三角函数生成的所述地形模型的第三噪波图、以及基于预设时间函数生成的所述地形模型的第四噪波图,获取所述第三映射位置点处的目标澡波值;
若所述第二映射位置点的目标噪波值为波峰值,则在所述第二映射位置点添加地形泡沫效果值。
12.一种水体效果渲染装置,其特征在于,包括:
第一获取单元,用于获取待渲染水体场景的各场景模型的材质,其中,所述场景模型包括水体模型、地形模型和处于所述水体模型与所述地形模型之间的边界过渡模型,所述边界过渡模型的材质包括透明贴图;
第二获取单元,用于获取所述待渲染水体场景的待渲染像素点的水体深度值;
确定单元,用于根据所述水体深度值与所述边界过渡模型的透明贴图,确定所述待渲染像素点在所述边界过渡模型上的第一映射位置点的过渡色,其中,所述过渡色与所述水体深度值成正关系;
渲染单元,用于基于所述第一映射位置点的过渡色、所述水体模型的材质、以及所述地形模型的材质进行合并输出,得到所述待渲染像素点的屏幕显示效果。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~11任一项所述的水体效果渲染方法中的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~11任一项所述的水体效果渲染方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090892.XA CN115409928A (zh) | 2022-09-07 | 2022-09-07 | 水体效果渲染方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090892.XA CN115409928A (zh) | 2022-09-07 | 2022-09-07 | 水体效果渲染方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115409928A true CN115409928A (zh) | 2022-11-29 |
Family
ID=84163215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211090892.XA Pending CN115409928A (zh) | 2022-09-07 | 2022-09-07 | 水体效果渲染方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115409928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342784A (zh) * | 2023-05-25 | 2023-06-27 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
-
2022
- 2022-09-07 CN CN202211090892.XA patent/CN115409928A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342784A (zh) * | 2023-05-25 | 2023-06-27 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
CN116342784B (zh) * | 2023-05-25 | 2023-07-21 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112370783B (zh) | 虚拟对象渲染方法、装置、计算机设备和存储介质 | |
CN112138386A (zh) | 一种体积渲染方法、装置、存储介质及计算机设备 | |
CN112053423A (zh) | 模型渲染方法、装置、存储介质及计算机设备 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN112206517A (zh) | 一种渲染方法、装置、存储介质及计算机设备 | |
CN111445563A (zh) | 一种图像生成的方法以及相关装置 | |
CN112465945A (zh) | 一种模型生成方法、装置、存储介质及计算机设备 | |
CN115409928A (zh) | 水体效果渲染方法、装置、电子设备和存储介质 | |
CN112950753B (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN116212374A (zh) | 模型处理方法、装置、计算机设备和存储介质 | |
CN115501590A (zh) | 显示方法、装置、电子设备和存储介质 | |
CN110201392B (zh) | 用户界面生成方法、装置和终端 | |
CN116385698B (zh) | 网格重建模型的训练方法、网格重建方法及装置 | |
CN117274474A (zh) | 环境光遮罩的生成方法、装置、电子设备和存储介质 | |
CN114972701A (zh) | 后处理区域的确定方法、装置、计算机设备及存储介质 | |
CN117274475A (zh) | 光晕效果的渲染方法、装置、电子设备和可读存储介质 | |
CN118096976A (zh) | 水面交互效果的处理方法、装置、设备和可读存储介质 | |
CN117899490A (zh) | 虚拟模型的处理方法、装置、计算机设备及存储介质 | |
CN117618893A (zh) | 场景特效处理方法、装置、电子设备及存储介质 | |
CN117197307A (zh) | 虚拟模型的处理方法、装置、计算机设备及存储介质 | |
CN115810090A (zh) | 地形权重生成方法、装置、存储介质及计算机设备 | |
CN115564884A (zh) | 一种贴图处理方法、装置、计算机设备和存储介质 | |
CN118135081A (zh) | 模型生成方法、装置、计算机设备和计算机可读存储介质 | |
CN118052914A (zh) | 动画生成方法、装置和计算机可读存储介质 | |
CN117876515A (zh) | 虚拟对象模型的渲染方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |