掌桥专利:专业的专利平台
掌桥专利
首页

地表的渲染方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 20:01:23


地表的渲染方法、装置、电子设备和存储介质

技术领域

本公开涉及渲染技术领域,尤其是涉及一种地表的渲染方法、装置、电子设备和存储介质。

背景技术

由于地形的形态多样,一个区域内的地表可以出现多种形态的地形,在渲染技术领域中,为了实现更真实的地表效果,渲染所需的颜色贴图越来越多,更稳定地、更高效地结合多张颜色贴图进行地表的颜色渲染,是地表渲染的其中一个优化途径。

现有的地表渲染技术中,受限于渲染时颜色贴图的数量限制,通常只能渲染数量有限的颜色贴图,所能达到的地表渲染效果也因此受限,难以融入更多的地形效果。

发明内容

有鉴于此,本公开的目的在于提供一种地表的渲染方法、装置、电子设备和存储介质,以渲染获得更丰富的地表效果。

第一方面,本公开实施例提供了一种地表的渲染方法,方法包括:响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对所述多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;响应于针对所述目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对所述多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,所述预设第二目标贴图还用于:指示所述第一绘制结果和/或所述第二绘制结果的目标混合权重;根据所述目标混合权重,对所述第一绘制结果和所述第二绘制结果进行混合渲染,得到所述目标地表的目标渲染结果。

第二方面,本公开实施例提供了一种地表的渲染装置,装置包括:第一绘制模块,用于响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对所述多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;第二绘制模块,用于响应于针对所述目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对所述多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,所述预设第二目标贴图还用于:指示所述第一绘制结果和/或所述第二绘制结果的目标混合权重;颜色混合模块,用于根据所述目标混合权重,对所述第一绘制结果和所述第二绘制结果进行混合渲染,得到所述目标地表的目标渲染结果。

第三方面,本公开实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述地表的渲染方法。

第四方面,本公开实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述地表的渲染方法。

本公开实施例带来了以下有益效果:

上述地表的渲染方法、装置、电子设备和存储介质,响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对所述多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;响应于针对所述目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对所述多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,所述预设第二目标贴图还用于:指示所述第一绘制结果和/或所述第二绘制结果的目标混合权重;根据所述目标混合权重,对所述第一绘制结果和所述第二绘制结果进行混合渲染,得到所述目标地表的目标渲染结果。该方式中,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后按照不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例中地表的渲染方法的一个实施例流程图;

图2为本公开实施例中地表的渲染方法的一个示意图;

图3为本公开实施例中地表的渲染方法的一个示意图;

图4为本公开实施例中地表的渲染方法的一个示意图;

图5为本公开实施例中地表的渲染方法的一个示意图;

图6为本公开实施例中地表的渲染方法的另一个实施例流程图;

图7为本公开实施例提供的一种地表的渲染装置的示意图;

图8为本公开实施例提供的一种电子设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本公开实施例的具体流程进行描述,请参阅图1,本公开实施例中地表的渲染方法的一个实施例包括:

步骤S10、响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;

可以理解的是,在计算机图形渲染中,绘制调用(Draw Call)是指向图形处理单元(Graphics Processing Unit,GPU)发送绘制请求的操作,每个Draw Call都包含了渲染对象的描述信息和必要参数信息,以指示GPU如何渲染该对象,本实施方式中,第一绘制调用的渲染对象为目标地表,响应于针对目标地表的第一绘制调用,以获得第一绘制结果。需要说明的是,不同时期不同版本的多媒体编程接口(DirectX),所支持的像素着色器模型(Pixel Shader Model)的版本也不同,不同版本的像素着色器模型所支持的一次DrawCall使用的贴图采样通道(Texture Sampling Stage)的数量上限不同,因此,在不同版本的渲染引擎使用不同版本的多媒体编程接口进行图形渲染时,一次Draw Call可以使用的贴图采样通道的数量上限也不同。在本发明实施例中,每次Draw Call所使用的颜色贴图数量均在预设的颜色贴图数量阈值范围内,本发明实施例通过增加Draw Call的次数使用更多的颜色贴图,使得本发明实施例可以兼容DirectX 9以上的多媒体编程接口版本,对应的像素着色器模型版本为Pixel Shader Model3.0,从而可以针对较老版本的渲染引擎开发的项目进行优化迭代,降低项目迭代难度,提升项目稳定性。

作为示例而非限定的是,本发明实施例适用于通过大世界(BigWorld)游戏引擎进行地表渲染,BigWorld游戏引擎所支持的Pixel Shader Model3.0版本限制一次Draw Call可以使用的贴图采样通道数量上限为16,其中,颜色通道是用于采样颜色的贴图采样通道,在无需使用除颜色通道之外的其它通道(如法线通道、光照通道等)的情况下,一次DrawCall可以使用的目标贴图和颜色贴图的数量之和的上限等于贴图采样通道数量上限,也就是16张。由于颜色通道作为贴图采样通道的数量上限为4,包括红色(R)通道、绿色(G)通道、蓝色(B)通道和透明度(Alpha)通道,因此,最多4张颜色贴图需要对应1张目标贴图,目标贴图用于指示对应各张颜色贴图的混合权重,具体此处不做限定。

需要说明的是,通常情况下,为了避免颜色贴图过多地占用一次Draw Call所能使用的贴图采样通道,本发明实施例中,多张第一颜色贴图的数量上限为5,基于权重之和为1的原则,预设第一目标贴图可以用于指示最多5张第一颜色贴图的第一混合权重,其中,权重之和为1的原则是指所有第一颜色贴图的第一混合权重之和为1。因此,在一种实施方式中,RGBA通道中的每个通道可以对应1张第一颜色贴图的第一混合权重,也就是在第一颜色贴图的数量为5的情况下,其中4张第一颜色贴图的第一混合权重由预设第一目标贴图的RGBA通道分别指示,剩余1张第一颜色贴图的第一混合权重可以通过1减去前4张第一颜色贴图的第一混合权重之和得到。例如,假设5张第一颜色贴图中同一位置像素的颜色权重(即第一混合权重)分别为0.1、0.2、0.3、0.1、0.3,那么,这5张第一颜色贴图对应的预设第一目标贴图的RGBA通道分别指示的数值可以为0.1、0.2、0.3和0.1,第5张第一颜色贴图的颜色权重可以通过1减去0.1、0.2、0.3和0.1得到,使得颜色贴图的数量可以多于颜色通道的数量,或者在颜色贴图数量少于5的情况下,还可以减少对颜色通道的占用,比如第一颜色贴图的数量为4时,只需占用RGB通道即可存储4张第一颜色贴图的第一混合权重,从而节省贴图对所占用的存储空间。

在一种实施方式中,在目标地表渲染所需的颜色贴图的数量大于预设数量阈值的情况下,第一颜色贴图的数量为预设最大数量上限,以充分利用每次Draw Call所能渲染的颜色贴图数量。例如,假设目标地表渲染所需的颜色贴图的数量为6,那么,第一颜色贴图的数量则可以为4或5,剩余1-2张颜色贴图可以由第二次Draw Call渲染,具体此处不做限定。

本实施方式中,第一混合权重是指各第一颜色贴图中同一位置像素的颜色权重,同一张第一颜色贴图不同位置像素的颜色权重可以不同,例如,其中1张第一颜色贴图的第1个网格像素的颜色权重可以为0.5,第100个网格像素的颜色其中可以为0.2,具体此处不做限定。本步骤中,第一颜色采样结果是对多张第一颜色贴图分别进行颜色采样的结果,代表每张第一颜色贴图的地形颜色,根据第一混合权重,将每张第一颜色贴图的颜色采样结果中的每个网格像素按照对应的第一混合权重进行混合,即可得到第一绘制结果,使得渲染获得的地表效果可以呈现更多种类的地形,或更细致地呈现不同地形的过渡效果,使得渲染获得的地表效果更丰富、更真实。

在一种实施方式中,每张第一颜色贴图对应一个标识符,通过标识符与对应的颜色通道绑定映射关系,在对多张第一颜色贴图的第一颜色采样结果进行混合时,即可根据标识符确定不同第一混合权重对应的第一颜色采样结果,从而按照第一混合权重进行混合。

步骤S20、响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,预设第二目标贴图还用于:指示第一绘制结果和/或第二绘制结果的目标混合权重;

需要说明的是,目标地表渲染所需的颜色贴图包括第一颜色贴图和第二颜色贴图,多张第一颜色贴图在步骤S10中合批渲染,多张第二颜色贴图在本步骤中合批渲染,本步骤的执行方式与步骤S10相似,不同点在于:预设第二目标贴图还用于指示第一绘制结果和/或第二绘制结果的目标混合权重,因此,预设第二目标贴图的颜色通道需要预留1-2个用于存放目标混合权重,用于存放目标混合权重的颜色通道可以是RGBA通道中的任意1-2个,具体此处不做限定。由于预设第二目标贴图的其中1-2个颜色通道需要用于存放目标混合权重,因此,第二颜色贴图的数量上限小于第一颜色贴图的数量上限减1或2,在上面的例子中,相应地,第二颜色贴图的数量小于5张,可以是1-4张,具体此处不做限定。

本步骤中,第二混合权重和目标混合权重同样可以存放在RGBA通道中,作为示例而非限定的是,假设第二颜色贴图的数量为4,那么,则可以将其中3张的第二混合权重存放在RGB通道中,另外1张的第二混合权重根据权重之和为1的原则计算得到,而无需占用单独的颜色通道,目标混合权重可以存放在Alpha通道,使得地表的渲染可以融入更多的颜色贴图,以绘制更精细、更丰富的地表效果。

可以理解的是,目标混合权重是指第一绘制结果和/或第二绘制结果的混合权重,目标混合权重可以包含第一绘制结果的混合权重和第二绘制结果的混合权重,例如,目标混合权重可以包含第一绘制结果的混合权重为0.6,以及第二绘制结果的混合权重为0.4;目标混合权重也可以只包含其中一个绘制结果的混合权重,根据第一绘制结果和第二绘制结果的混合权重之和为1的原则,可以计算得到另一个绘制结果的混合权重。例如,假设目标混合权重为第一绘制结果的混合权重,目标混合权重为0.2,那么,第二绘制结果的混合权重则为1-0.2=0.8,具体此处不做限定。

步骤S30、根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果。

本实施方式中,根据第一绘制结果或第二绘制结果的目标混合权重,即可确定第一绘制结果和第二绘制结果在目标渲染结果中的颜色混合比重,根据二者的颜色混合比重,将二者混合渲染,即可获得目标地表的目标渲染效果。作为示例而非限定的是,假设图2为4张第一颜色贴图,图3为4张第二颜色贴图,在没有加入第二颜色贴图的情况下获得的一种地表渲染结果可以为图4所示,由图4可以看出,线框内的地形过渡区域,存在明显的突变,过渡不自然的效果;而图5所示为融合第二颜色贴图的情况下,采样8张颜色贴图获得的一种地表渲染结果,由图中箭头指示方向的地形变化效果可以看出,地形过渡更为平滑,地表效果更接近真实。

上述实施方式提供的地表的渲染方法,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后按照不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

请参阅图6,本公开实施例中地表的渲染方法的另一个实施例包括:

步骤S601、响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;

在一种实施方式中,步骤S601包括:步骤S6011、响应于针对目标地表的第一绘制调用,分别对预设第一目标贴图和多张第一颜色贴图进行采样,得到预设第一目标贴图对应的第一目标采样结果和每张第一颜色贴图对应的第一颜色采样结果;其中,第一目标采样结果包括多张第一颜色贴图的第一混合权重;步骤S6012、根据第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果。

本实施方式中,在针对目标地表的第一次Draw Call(即第一绘制调用)触发之后,分别对预设第一目标贴图和多张第一颜色贴图进行采样,得到预设第一目标贴图对应的第一目标采样结果和每张第一颜色贴图对应的第一颜色采样结果,其中,第一目标采样结果中包含每张第一颜色贴图中每个网格像素的颜色混合权重,也就是多张第一颜色贴图的第一混合权重;而第一颜色采样结果则是包含从对应第一颜色贴图中采样得到的每个网格像素的颜色信息,根据第一混合权重,将多张第一颜色贴图对应网格像素的颜色信息按照相应网格像素的颜色混合权重进行混合,从而得到第一绘制结果。

作为示例而非限定的是,假设第一颜色贴图的数量为4,从这4张第一颜色贴图中采样得到的一个网格像素的颜色信息分别为texture1、texture2、texture3和texture4,预设第一目标贴图的RGB通道分别对应这前3张第一颜色贴图中该网格像素的颜色混合权重,假设预设混合权重值分别为r、g、b,那么,第一绘制结果中该网格像素的颜色信息color1为:color1=r*texture1+g*texture2+b*texture3+(1-r-g-b)*texture4;由此可见,当第一颜色贴图的数量为4时,只需3个颜色通道即可获得4张颜色贴图的颜色混合权重,针对没有使用Alpha通道的预设第一目标贴图,还可以预设的纹理压缩算法对其进行压缩,以节省其所占用的内存空间。需要说明的是,其它网格像素的计算方式与上述示例网格像素的计算方式相同,具体此处不再赘述。

可以理解的是,如果第一颜色贴图的数量为5,则可以在以上计算方式的基础上,增加Alpha通道用于存放其中一张第一颜色贴图的颜色混合权重,例如,假设从这5张第一颜色贴图中采样得到的一个网格像素的颜色信息分别为texture1、texture2、texture3、texture4和texture5,预设第一目标贴图的RGBA通道分别对应这前4张第一颜色贴图中该网格像素的颜色混合权重,假设预设混合权重值分别为r、g、b、a,那么,第一绘制结果中该网格像素的颜色信息color1为:color1=r*texture1+g*texture2+b*texture3+a*texture4+(1-r-g-b-a)

*texture5;使得在渲染地表时所能使用的颜色贴图数量增加,地表渲染效果更精细、更真实。

在一种实施方式中,如果目标地表渲染所需颜色贴图的数量小于或等于第一颜色贴图的数量,则第一绘制结果即可作为目标地表的颜色采样结果,对目标地表的颜色采样结果进行渲染,即可得到目标地表的目标渲染结果。

在一种实施方式中,步骤S6012包括:对第一目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第一归一化数值;其中,每一颜色通道对应一张第一颜色贴图,每一颜色通道对应的第一归一化数值用于指示对应第一颜色贴图的第一混合权重;基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果。本实施方式中,由于第一目标采样结果中RGBA颜色通道的数值为0-255范围内的数值,因此,在使用其作为权重值计算之前,需要进行归一化处理,将RGBA颜色通道的数值映射到0-1的数值范围,得到RGBA通道分别对应的第一归一化数值,将每个第一归一化数值与对应第一颜色贴图的第一颜色采样结果进行加权求和,或者根据每个第一归一化数值计算得到所有第一颜色贴图的第一混合权重之后,将所有第一颜色贴图的第一混合权重与第一颜色采样结果进行加权求和,即可得到第一绘制结果。如上述color1的r、g、b、a即为第一归一化数值,具体此处不做限定。

在一种实施方式中,上述基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果,包括:根据所有第一归一化数值,计算无对应的第一颜色贴图的第一混合权重;其中,无对应的第一颜色贴图为所有第一颜色贴图中无对应颜色通道的贴图;将每张第一颜色贴图对应的第一颜色采样结果与对应的第一混合权重相乘,并将所有相乘结果叠加,得到第一绘制结果。本实施方式中,每个颜色通道可以对应一个第一颜色贴图,所有第一颜色贴图中,还可以包含1张没有对应颜色通道的第一颜色贴图,该第一颜色贴图的第一混合权重可以根据其它第一颜色贴图的第一归一化数值之和计算得到,也就是基于所有第一颜色贴图对应的第一混合权重之和为1的原则计算得到,最后,将每张第一颜色贴图对应的第一颜色采样结果与对应的第一混合权重相乘,得到每张第一颜色贴图对应的相乘结果,将所有相乘结果叠加,即可得到第一绘制结果。

步骤S602、判断目标地表渲染所需颜色贴图的数量是否大于第一颜色贴图的数量;

本步骤中,在判断是否需要进行第二次Draw Call(即第二绘制调用)时,可以通过判断目标地表渲染所需的颜色贴图的数量是否大于第一颜色贴图的数量,在一种实施方式中,目标地表渲染所需的颜色贴图可以存放在同一存储路径下,通过判断该存储路径下的颜色贴图数量,即可获得目标地表渲染所需的颜色贴图的数量。在另一种实施方式中,目标地表渲染所需的颜色贴图可以以同一文件前缀命名,通过判断该相同文件名称前缀的文件数量,也可以获得目标地表渲染所需的颜色贴图的数量;目标地表渲染所需的颜色贴图的数量还可以通过其它方式获得,具体此处不做限定。

步骤S603、若是,则将混合模式调整为透明度混合模式;透明度混合模式用于指示源颜色与目标颜色按照透明度通道的数值进行混合;

本步骤中,根据透明度(Alpha)混合模式可以指示源颜色与目标颜色按照透明度(Alpha)通道的数值进行混合的特性,并且该混合模式是所有DirectX版本所支持的混合模式,因此,本实施方式中,通过将混合模式设置为Alpha混合模式,以便于后续第一绘制结果和第二绘制结果的颜色混合。可以理解的是,Alpha混合模式指示的颜色混合方式为:源颜色*alpha+目标颜色*(1-alpha),其中,第一绘制结果为源颜色,第二绘制结果为目标颜色。

步骤S604、响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,预设第二目标贴图还用于:指示第一绘制结果和/或第二绘制结果的目标混合权重;

在一种实施方式中,步骤S604包括:响应于针对目标地表的第二绘制调用,基于与第一绘制调用相同的顶点数据,分别对预设第二目标贴图和多张第二颜色贴图进行采样,得到预设第二目标贴图对应的第二目标采样结果和每张第二颜色贴图对应的第二颜色采样结果;其中,第二目标采样结果中非透明度颜色通道的数值用于指示多张第二颜色贴图的第二混合权重;根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果。

本实施方式中,步骤S604的执行过程与步骤S601的执行过程相似,区别在于:第二目标采样结果中非透明度颜色通道的数值用于指示多张第二颜色贴图的第二混合权重、以及对预设第二目标贴图进行采样获得的第二目标采样结果中还包含用于指示第一绘制结果或第二绘制结果的目标混合权重,目标混合权重用于指示第一绘制结果或第二绘制结果在目标渲染结果中所占的颜色比重。需要说明的是,第二目标采样结果与第一目标采样结果的区别在于:第一目标采样结果中的所有颜色通道均可以用于存放颜色贴图的混合权重,而第二目标采样结果中只有非Alpha通道的颜色通道可以用于存放颜色贴图的混合权重,也就是RGB通道,而Alpha通道则用于存放目标混合权重。因此,第二颜色贴图的数量最多为4张,数量上限少于第一颜色贴图数量上限1张,具体此处不做限定。

需要说明的是,第一次Draw Call和第二次Draw Call是基于相同的顶点数据,该顶点数据可以是顶点缓存区中布局相同的顶点数据,在同一帧中,顶点数据通常相同,因此,本发明实施例是针对同一帧的相同顶点数据执行2次Draw Call,以获得更精细、更真实的地表渲染效果。

在一种实施方式中,上述根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果,包括:对第二目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第二归一化数值;其中,每一颜色通道对应一张第二颜色贴图,每一颜色通道对应的第二归一化数值用于指示对应第二颜色贴图的第二混合权重;基于每一颜色通道的第二归一化数值,对每张第二颜色贴图对应的第二颜色采样结果进行加权求和,得到第二绘制结果。本实施方式与步骤S6012的实施方式相似,具体此处不再赘述。

步骤S605、根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果。

在一种实施方式中,第二目标采样结果中透明度通道的数值用于指示第一绘制结果和/或第二绘制结果的目标混合权重;步骤S605包括:根据预设第二目标贴图中透明度通道的数值指示的第一绘制结果或第二绘制结果的目标混合权重,将第一绘制结果和第二绘制结果混合渲染,得到目标地表的目标渲染结果。本实施方式中,在开启Alpha混合模式之后,源颜色(即第一绘制结果)和目标颜色(即第二绘制结果)即会按照第二目标采样结果中Alpha通道的数值所指示的目标混合权重进行混合,得到目标混合结果,最后,对目标混合结果进行渲染,即可得到目标地表的目标渲染结果。作为示例而非限定,假设第一绘制结果为color1,第二绘制结果为color2,Alpha通道的数值经过归一化处理之后为p,p即为目标混合权重,假设目标混合权重用于指示第二绘制结果在目标混合结果中的比值,那么,目标混合结果color则为:color=color1*(1-p)+color2*p。

上述实施方式提供的地表的渲染方法,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后通过透明度通道设置不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

对应于上述方法实施例,参见图7所示的一种地表的渲染装置的示意图,该装置包括:第一绘制模块70,用于响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对所述多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;第二绘制模块72,用于响应于针对所述目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对所述多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,所述预设第二目标贴图还用于:指示所述第一绘制结果和/或所述第二绘制结果的目标混合权重;颜色混合模块74,用于根据所述目标混合权重,对所述第一绘制结果和所述第二绘制结果进行混合渲染,得到所述目标地表的目标渲染结果。

上述地表的渲染装置,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后按照不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

可选的,上述第一绘制模块70包括:采样子模块,用于响应于针对目标地表的第一绘制调用,分别对预设第一目标贴图和多张第一颜色贴图进行采样,得到所述预设第一目标贴图对应的第一目标采样结果和每张第一颜色贴图对应的第一颜色采样结果;其中,所述第一目标采样结果包括所述多张第一颜色贴图的第一混合权重;混合子模块,用于根据所述第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果。

可选的,上述混合子模块包括:归一化单元,用于对所述第一目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第一归一化数值;其中,每一颜色通道对应一张第一颜色贴图,每一颜色通道对应的第一归一化数值用于指示对应第一颜色贴图的第一混合权重;求和单元,用于基于所述每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果。

可选的,上述求和单元具体用于:根据所有所述第一归一化数值,计算无对应的第一颜色贴图的第一混合权重;其中,所述无对应的第一颜色贴图为所有第一颜色贴图中无对应颜色通道的贴图;将每张第一颜色贴图对应的第一颜色采样结果与对应的第一混合权重相乘,并将所有相乘结果叠加,得到第一绘制结果。

可选的,上述装置还包括:判断模块,用于判断所述目标地表渲染所需颜色贴图的数量是否大于所述第一颜色贴图的数量;调整模块,用于若是,则将混合模式调整为透明度混合模式;所述透明度混合模式用于指示源颜色与目标颜色按照透明度通道的数值进行混合。

可选的,上述第二绘制模块72包括:采样单元,用于响应于针对所述目标地表的第二绘制调用,基于与所述第一绘制调用相同的顶点数据,分别对预设第二目标贴图和多张第二颜色贴图进行采样,得到所述预设第二目标贴图对应的第二目标采样结果和每张第二颜色贴图对应的第二颜色采样结果;其中,所述第二目标采样结果中非透明度颜色通道的数值用于指示所述多张第二颜色贴图的第二混合权重;混合单元,用于根据所述第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果。

可选的,上述混合单元具体用于:对所述第二目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第二归一化数值;其中,每一颜色通道对应一张第二颜色贴图,每一颜色通道对应的第二归一化数值用于指示对应第二颜色贴图的第二混合权重;基于所述每一颜色通道的第二归一化数值,对每张第二颜色贴图对应的第二颜色采样结果进行加权求和,得到第二绘制结果。

可选的,所述第二目标采样结果中透明度通道的数值用于指示第一绘制结果或所述第二绘制结果的目标混合权重;颜色混合模块74具体用于:根据所述预设第二目标贴图中透明度通道的数值指示的所述第一绘制结果或第二绘制结果的目标混合权重,将所述第一绘制结果和所述第二绘制结果混合渲染,得到所述目标地表的目标渲染结果。

本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述地表的渲染方法。该电子设备可以是服务器,也可以是终端设备。

参见图8所示,该电子设备包括处理器800和存储器801,该存储器801存储有能够被处理器800执行的机器可执行指令,该处理器800执行机器可执行指令以实现上述地表的渲染方法。

进一步地,图8所示的电子设备还包括总线802和通信接口803,处理器800、通信接口803和存储器801通过总线802连接。

其中,存储器801可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线802可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成前述实施例的方法的步骤,例如:

响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,预设第二目标贴图还用于:指示第一绘制结果和/或第二绘制结果的目标混合权重;根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果。

该方式中,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后按照不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

可选的,响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果,包括:响应于针对目标地表的第一绘制调用,分别对预设第一目标贴图和多张第一颜色贴图进行采样,得到预设第一目标贴图对应的第一目标采样结果和每张第一颜色贴图对应的第一颜色采样结果;其中,第一目标采样结果包括多张第一颜色贴图的第一混合权重;根据第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果。

可选的,根据第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果,包括:对第一目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第一归一化数值;其中,每一颜色通道对应一张第一颜色贴图,每一颜色通道对应的第一归一化数值用于指示对应第一颜色贴图的第一混合权重;基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果。

可选的,基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果,包括:根据所有第一归一化数值,计算无对应的第一颜色贴图的第一混合权重;其中,无对应的第一颜色贴图为所有第一颜色贴图中无对应颜色通道的贴图;将每张第一颜色贴图对应的第一颜色采样结果与对应的第一混合权重相乘,并将所有相乘结果叠加,得到第一绘制结果。

可选的,在响应于针对目标地表的第二绘制调用之前,方法还包括:判断目标地表渲染所需颜色贴图的数量是否大于第一颜色贴图的数量;若是,则将混合模式调整为透明度混合模式;透明度混合模式用于指示源颜色与目标颜色按照透明度通道的数值进行混合。

可选的,响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果,包括:响应于针对目标地表的第二绘制调用,基于与第一绘制调用相同的顶点数据,分别对预设第二目标贴图和多张第二颜色贴图进行采样,得到预设第二目标贴图对应的第二目标采样结果和每张第二颜色贴图对应的第二颜色采样结果;其中,第二目标采样结果中非透明度颜色通道的数值用于指示多张第二颜色贴图的第二混合权重;根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果。

可选的,根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果,包括:对第二目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第二归一化数值;其中,每一颜色通道对应一张第二颜色贴图,每一颜色通道对应的第二归一化数值用于指示对应第二颜色贴图的第二混合权重;基于每一颜色通道的第二归一化数值,对每张第二颜色贴图对应的第二颜色采样结果进行加权求和,得到第二绘制结果。

可选的,第二目标采样结果中透明度通道的数值用于指示第一绘制结果和/或第二绘制结果的目标混合权重;根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果,包括:根据预设第二目标贴图中透明度通道的数值指示的第一绘制结果或第二绘制结果的目标混合权重,将第一绘制结果和第二绘制结果混合渲染,得到目标地表的目标渲染结果。

本实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述地表的渲染方法,例如:

响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果;响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果;其中,预设第二目标贴图还用于:指示第一绘制结果和/或第二绘制结果的目标混合权重;根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果。

该方式中,通过在两次Draw Call中分别按照目标贴图指示的不同颜色贴图的颜色混合权重,将不同颜色贴图的颜色按照权重混合,获得两个绘制结果,最后按照不同绘制结果的混合比重,将两个绘制结果进行混合渲染,以获得支持更多颜色贴图的地表渲染结果,以渲染获得更丰富的地表效果。

可选的,响应于针对目标地表的第一绘制调用,根据预设第一目标贴图指示的多张第一颜色贴图的第一混合权重,对多张第一颜色贴图的第一颜色采样结果进行混合,得到第一绘制结果,包括:响应于针对目标地表的第一绘制调用,分别对预设第一目标贴图和多张第一颜色贴图进行采样,得到预设第一目标贴图对应的第一目标采样结果和每张第一颜色贴图对应的第一颜色采样结果;其中,第一目标采样结果包括多张第一颜色贴图的第一混合权重;根据第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果。

可选的,根据第一混合权重,对每张第一颜色贴图对应的第一颜色采样结果进行混合,得到第一绘制结果,包括:对第一目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第一归一化数值;其中,每一颜色通道对应一张第一颜色贴图,每一颜色通道对应的第一归一化数值用于指示对应第一颜色贴图的第一混合权重;基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果。

可选的,基于每一颜色通道的第一归一化数值,对每张第一颜色贴图对应的第一颜色采样结果进行加权求和,得到第一绘制结果,包括:根据所有第一归一化数值,计算无对应的第一颜色贴图的第一混合权重;其中,无对应的第一颜色贴图为所有第一颜色贴图中无对应颜色通道的贴图;将每张第一颜色贴图对应的第一颜色采样结果与对应的第一混合权重相乘,并将所有相乘结果叠加,得到第一绘制结果。

可选的,在响应于针对目标地表的第二绘制调用之前,方法还包括:判断目标地表渲染所需颜色贴图的数量是否大于第一颜色贴图的数量;若是,则将混合模式调整为透明度混合模式;透明度混合模式用于指示源颜色与目标颜色按照透明度通道的数值进行混合。

可选的,响应于针对目标地表的第二绘制调用,根据预设第二目标贴图指示的多张第二颜色贴图的第二混合权重,对多张第二颜色贴图的第二颜色采样结果进行混合,得到第二绘制结果,包括:响应于针对目标地表的第二绘制调用,基于与第一绘制调用相同的顶点数据,分别对预设第二目标贴图和多张第二颜色贴图进行采样,得到预设第二目标贴图对应的第二目标采样结果和每张第二颜色贴图对应的第二颜色采样结果;其中,第二目标采样结果中非透明度颜色通道的数值用于指示多张第二颜色贴图的第二混合权重;根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果。

可选的,根据第二混合权重,对每张第二颜色贴图对应的第二颜色采样结果进行混合,得到第二绘制结果,包括:对第二目标采样结果中每一颜色通道的数值进行归一化处理,得到每一颜色通道对应的第二归一化数值;其中,每一颜色通道对应一张第二颜色贴图,每一颜色通道对应的第二归一化数值用于指示对应第二颜色贴图的第二混合权重;基于每一颜色通道的第二归一化数值,对每张第二颜色贴图对应的第二颜色采样结果进行加权求和,得到第二绘制结果。

可选的,第二目标采样结果中透明度通道的数值用于指示第一绘制结果和/或第二绘制结果的目标混合权重;根据目标混合权重,对第一绘制结果和第二绘制结果进行混合渲染,得到目标地表的目标渲染结果,包括:根据预设第二目标贴图中透明度通道的数值指示的第一绘制结果或第二绘制结果的目标混合权重,将第一绘制结果和第二绘制结果混合渲染,得到目标地表的目标渲染结果。

本公开实施例所提供的地表的渲染方法、装置、电子设备及存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本公开实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本公开的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

技术分类

06120116546114