CN117197275A - 地形渲染方法及装置 - Google Patents

地形渲染方法及装置 Download PDF

Info

Publication number
CN117197275A
CN117197275A CN202311172675.XA CN202311172675A CN117197275A CN 117197275 A CN117197275 A CN 117197275A CN 202311172675 A CN202311172675 A CN 202311172675A CN 117197275 A CN117197275 A CN 117197275A
Authority
CN
China
Prior art keywords
rendering
data
grass
topographic
terrain
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
Application number
CN202311172675.XA
Other languages
English (en)
Inventor
刘立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Yiju Future Network Technology Co ltd
Original Assignee
Guangzhou Yiju Future Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Yiju Future Network Technology Co ltd filed Critical Guangzhou Yiju Future Network Technology Co ltd
Priority to CN202311172675.XA priority Critical patent/CN117197275A/zh
Publication of CN117197275A publication Critical patent/CN117197275A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

本申请公开了一种地形渲染方法及装置,基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据;基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染。通过有限的地形纹理图,通过不同的混合比例能够达到不同的地形纹理的渲染效果,无需针对每种预期的渲染效果单独绘制一张地形纹理图,从而减少了绘制大量的地形纹理图的工作量,提高地形渲染效率。

Description

地形渲染方法及装置
技术领域
本申请涉及计算机技术领域,具体涉及一种地形渲染方法及装置。
背景技术
为了提高地形渲染的多样性,通常由人工绘制多张不同的地形纹理图,然后在不同的渲染区域内用不同的地形纹理图进行渲染。
采用上述方法时,需要人工绘制大量的地形纹理图,导致地形渲染的效率低下。
发明内容
本申请提供了一种地形渲染方法及装置,能够减少了绘制大量的地形纹理图的工作量,提高地形渲染效率。所述技术方案如下。
第一方面,提供了一种地形渲染方法,所述方法包括:
基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据;
基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染,包括:
基于所述混合比例数据对多个地形纹理图进行混合,得到混合纹理图;
基于所述混合纹理图,对所述地形网格区域中所述像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述混合比例数据包括所述多个地形纹理图中每个地形纹理图的权重,所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于取样图像中所述像素点的颜色通道的值,获取与所述颜色通道对应的地形纹理图在所述像素点的权重。
在一种可能的实现方式中,所述多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,所述基于取样图像中所述像素点的颜色通道的值,获取与所述颜色通道对应的地形纹理图在所述像素点的权重,包括:
基于取样图像中所述像素点的红通道的值,获取所述第一地形纹理图在所述像素点的权重,所述第一地形纹理图对应所述红通道;
基于取样图像中所述像素点的蓝通道的值,获取所述第二地形纹理图在所述像素点的权重,所述第二地形纹理图对应所述蓝通道;
基于取样图像中所述像素点的绿通道的值,获取所述第三地形纹理图在所述像素点的权重,所述第三地形纹理图对应所述绿通道;
基于取样图像中所述像素点的不透明通道的值,获取所述第四地形纹理图在所述像素点的权重,所述第四地形纹理图对应所述不透明通道。
在一种可能的实现方式中,所述取样图像包括N个分区取样图像,所述地形网格区域包括N个渲染区域;
所述基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染,包括:
基于所述第M分区取样图像获取第M混合比例数据;
基于所述多个地形纹理图和所述第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染;
其中,N为大于1的整数,M为小于等于N的正整数。
在一种可能的实现方式中,所述基于所述多个地形纹理图和所述第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染,包括:
基于所述第M混合比例数据,对所述多个地形纹理图进行混合,得到所述第M混合纹理图;
基于所述第M混合纹理图,对所述第M渲染区域中的像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述多个地形纹理图包括K个地形纹理图集合,所述取样图像包括K个同区取样图像;
所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于所述第L同区取样图像中像素点的参数,获得第L地形纹理图集合中的地形纹理图在所述像素点的第L比例数据;
全部的第L比例数据构成所述混合比例数据;
其中,K为大于1的整数,L为小于等于K的正整数。
在一种可能的实现方式中,所述方法还包括:
基于所述取样图像所述像素点的每个颜色通道的值,获得所述地形网格区域的渲染数据;
基于所述渲染数据向所述地形网格区域***草插片。
在一种可能的实现方式中,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
响应于确定所述地形网格区域中单位区域内的渲染数据满足草地纹理特征,向所述单位区域内***所述草插片。
在一种可能的实现方式中,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
基于所述渲染数据指示的草地纹理的占比,确定所述草插片的数量,所述草插片的数量与所述草地纹理的占比正相关;
向所述单位区域中***所述数量的所述草插片。
在一种可能的实现方式中,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
基于所述渲染数据以及所述地形网格区域中单位区域与所述渲染中心之间的距离,确定草插片,所述草插片包括至少一个顶点,所述草插片中的顶点数量与所述距离负相关;
向所述单位区域中***所述草插片。
在一种可能的实现方式中,所述草插片包括第一草插片以及第二草插片,所述第一草插片中的顶点数量大于所述第二草插片中的顶点数量,所述基于所述渲染数据以及所述地形网格区域中单位区域与所述渲染中心之间的距离,确定草插片,包括:
响应于确定所述距离小于或等于距离阈值,确定所述第一草插片;或者,
响应于确定所述距离大于或等于距离阈值,确定所述第二草插片。
在一种可能的实现方式中,所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于取样图像中所述像素点的灰度值,获得与灰度值对应的地形纹理图在所述像素点的混合比例数据;或者,
基于取样图像中所述像素点的透明度通道的值,获得与透明度通道对应的地形纹理图在所述像素点的混合比例数据;或者,
基于取样图像中所述像素点的高度值,获得与高度值对应的地形纹理图在所述像素点的混合比例数据。
第二方面,提供了一种地形渲染装置,所述装置包括:
获取模块,用于基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据;
渲染模块,用于基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述渲染模块,用于基于所述混合比例数据对多个地形纹理图进行混合,得到混合纹理图;基于所述混合纹理图,对所述地形网格区域中所述像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述混合比例数据包括所述多个地形纹理图中每个地形纹理图的权重,所述获取模块,用于基于取样图像中所述像素点的颜色通道的值,获取与所述颜色通道对应的地形纹理图在所述像素点的权重。
在一种可能的实现方式中,所述多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,所述获取模块,用于基于取样图像中所述像素点的红通道的值,获取所述第一地形纹理图在所述像素点的权重,所述第一地形纹理图对应所述红通道;基于取样图像中所述像素点的蓝通道的值,获取所述第二地形纹理图在所述像素点的权重,所述第二地形纹理图对应所述蓝通道;基于取样图像中所述像素点的绿通道的值,获取所述第三地形纹理图在所述像素点的权重,所述第三地形纹理图对应所述绿通道;基于取样图像中所述像素点的不透明通道的值,获取所述第四地形纹理图在所述像素点的权重,所述第四地形纹理图对应所述不透明通道。
在一种可能的实现方式中,所述取样图像包括N个分区取样图像,所述地形网格区域包括N个渲染区域;
所述渲染模块,用于基于所述第M分区取样图像获取第M混合比例数据;基于所述多个地形纹理图和所述第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染;其中,N为大于1的整数,M为小于等于N的正整数。
在一种可能的实现方式中,所述渲染模块,用于基于所述第M混合比例数据,对所述多个地形纹理图进行混合,得到所述第M混合纹理图;基于所述第M混合纹理图,对所述第M渲染区域中的像素点对应的顶点进行渲染。
在一种可能的实现方式中,所述多个地形纹理图包括K个地形纹理图集合,所述取样图像包括K个同区取样图像;
所述获取模块,用于基于所述第L同区取样图像中像素点的参数,获得第L地形纹理图集合中的地形纹理图在所述像素点的第L比例数据;全部的第L比例数据构成所述混合比例数据;
其中,K为大于1的整数,L为小于等于K的正整数。
在一种可能的实现方式中,所述获取模块,还用于基于所述取样图像所述像素点的每个颜色通道的值,获得所述地形网格区域的渲染数据;
所述渲染模块,还用于基于所述渲染数据向所述地形网格区域***草插片。
在一种可能的实现方式中,所述渲染模块,用于响应于确定所述地形网格区域中单位区域内的渲染数据满足草地纹理特征,向所述单位区域内***所述草插片。
在一种可能的实现方式中,所述渲染模块,用于基于所述渲染数据指示的草地纹理的占比,确定所述草插片的数量,所述草插片的数量与所述草地纹理的占比正相关;向所述单位区域中***所述数量的所述草插片。
在一种可能的实现方式中,所述渲染模块,用于基于所述渲染数据以及所述地形网格区域中单位区域与所述渲染中心之间的距离,确定草插片,所述草插片包括至少一个顶点,所述草插片中的顶点数量与所述距离负相关;向所述单位区域中***所述草插片。
在一种可能的实现方式中,所述草插片包括第一草插片以及第二草插片,所述第一草插片中的顶点数量大于所述第二草插片中的顶点数量,所述渲染模块,用于响应于确定所述距离小于或等于距离阈值,确定所述第一草插片;或者,响应于确定所述距离大于或等于距离阈值,确定所述第二草插片。
在一种可能的实现方式中,所述获取模块,用于基于取样图像中所述像素点的灰度值,获得与灰度值对应的地形纹理图在所述像素点的混合比例数据;或者,基于取样图像中所述像素点的透明度通道的值,获得与透明度通道对应的地形纹理图在所述像素点的混合比例数据;或者,基于取样图像中所述像素点的高度值,获得与高度值对应的地形纹理图在所述像素点的混合比例数据。
第三方面,提供了一种服务器,所述服务器包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述服务器实现上述第一方面或第一方面任一种可选方式所述的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所述的方法。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所述的方法。
第六方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第一方面或第一方面任一种可选方式所述的方法。
第七方面,提供一种服务器集群,该服务器集群包括第一服务器以及第二服务器,第一服务器以及第二服务器用于协同实现如上述第一方面或第一方面任一种可选方式所述的方法。
由此可见,本申请实施例具有如下有益效果:
通过基于取样图像中像素点的参数,获得多个地形纹理图在像素点的混合比例数据;基于多个地形纹理图和混合比例数据,对地形网格区域中像素点对应的顶点进行渲染,从而能够通过有限的地形纹理图,通过不同的混合比例能够达到不同的地形纹理的渲染效果,无需针对每种预期的渲染效果单独绘制一张地形纹理图,从而减少了绘制大量的地形纹理图的工作量,提高地形渲染效率。
附图说明
图1是本申请实施例提供的一种地形渲染方法的流程图;
图2是本申请实施例提供的一种取样图像的示意图;
图3是本申请实施例提供的一种根据图2示出的取样图像得到渲染效果的示意图;
图4是本申请实施例提供的一种地形网格数据的示意图;
图5是本申请实施例提供的一种地形渲染装置的结构示意图;
图6是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种地形渲染方法的流程图。图1所示方法包括如下步骤S110至步骤S120。
步骤S110,基于取样图像中像素点的参数,获得多个地形纹理图在像素点的混合比例数据。
在一种可能的实现方式中,基于取样图像中像素点的色彩数据,获得多个地形纹理图在像素点的混合比例数据。例如,取样图像中包括第一像素点,第一像素点的色彩数据包括第一像素点的多个色彩通道的值,获取第一像素点的不同色彩通道的值之间的比例,作为多个地形纹理图的混合比例数据。例如,取样图像中第一像素点的第一色彩通道的值为0.3,第一像素点所有色彩通道(包括第一色彩通道以及第一色彩通道之外其他色彩通道)的值的总和为1,第一色彩通道对应于第一地形纹理图,第一色彩通道的值在所有色彩通道的值的总和中所占的比例为0.3,则在渲染第一像素点对应的顶点时,第一地形纹理图的权重为0.3。
可以解析取样图像,得到取样图像中像素点的色彩通道的值。获取与色彩通道对应的地形纹理图在像素点的权重,将每个地形纹理图的权重作为像素点的混合比例数据。
在一种可能的实现方式中,对每个色彩通道的值进行归一化,使得每个色彩通道的值在0到1之间;然后,计算每个色彩通道的值的总和;然后,计算每个色彩通道的值在总和中所占的比例,得到混合比例数据。
通过基于取样图像中像素点的色彩通道值来获取对应地形纹理图在该像素点的权重,精确控制各个地形纹理图的混合比例。不同色彩通道的值对应不同地形纹理图的权重,使得在渲染过程中可以根据像素点的色彩通道数值来决定不同地形纹理图的显示强度,从而精细调整地形纹理的呈现。并且,每个地形纹理图都对应着取样图像中的不同色彩通道,从而能够根据每个不同色彩通道的值来决定具体的纹理混合的方式,从而实现更灵活和多样化的地形纹理组合。
在一种可能的实现方式中,通过取样图像的红色通道(R)、绿色通道(G)、蓝色通道(B)以及不透明通道(A)分别对应一个地形纹理图,示例性地,多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,第一地形纹理图对应红色通道,第二地形纹理图对应蓝色通道,第三地形纹理图对应绿色通道,第四地形纹理图对应不透明通道。解析取样图像,获得取样图像中像素点的红色通道的值、像素点的蓝色通道的值、像素点的绿色通道的值以及像素点的不透明通道的值。基于取样图像中像素点的红色通道的值,获取第一地形纹理图在像素点的权重;基于取样图像中像素点的蓝色通道的值,获取第二地形纹理图在像素点的权重;基于取样图像中像素点的绿色通道的值,获取第三地形纹理图在像素点的权重;基于取样图像中像素点的不透明通道的值,获取第四地形纹理图在像素点的权重。
在一种可能的实现方式中,根据R、G、B和A这四种色彩通道之间的比值确定地形纹理权重。例如,获取红色通道的值、蓝色通道的值、绿色通道的值和不透明通道的值这四种色彩通道的总和。确定取样图像中像素点的红色通道的值与四种色彩通道的总和的比值,作为第一地形纹理图在像素点的权重;确定取样图像中像素点的蓝色通道的值与四种色彩通道的总和的比值,作为第二地形纹理图在像素点的权重;确定取样图像中像素点的绿色通道的值与四种色彩通道的总和的比值,作为第三地形纹理图在像素点的权重;确定取样图像中像素点的不透明通道的值与四种色彩通道的总和的比值,作为第四地形纹理图在像素点的权重。
例如,请参考附图2和附图3,附图2是本申请实施例提供的一种取样图像的示意图,附图3是本申请实施例提供的一种根据图2示出的取样图像得到渲染效果的示意图,附图2中的取样图像中每个像素点的色彩数据包括R、G、B和A这四种色彩通道的值,取样图像的四种色彩通道对应于四个地形纹理图,根据附图2中的取样图像得到的渲染效果如附图3所示。
例如,取样图像中包括第一像素点,取样图像中第一像素点在红色通道的值为0.3,第一像素点在绿色通道(G)上的值为0.4,蓝色通道(B)上的值为0.2,不透明度通道(A)上的值为0.1。计算出这四个色彩通道值的总和:0.3+0.4+0.2+0.1=1.0;然后,计算出每个色彩通道的值与总和之间的比值,得出红色通道(R)的权重:0.3/1.0=0.3(30%),绿色通道(G)的权重:0.4/1.0=0.4(40%),蓝色通道(B)的权重:0.2/1.0=0.2(20%),不透明度通道(A)的权重:0.1/1.0=0.1(10%)。确定第一地形纹理图在像素点的权重为0.3,第二地形纹理图在像素点的权重为0.4,第三地形纹理图在像素点的权重为0.2,第四地形纹理图在像素点的权重为0.1。
在另一种可能的实现方式中,通过地形纹理图的青色通道(C)、洋红色通道(M)、黄色通道(Y)以及黑色通道(A)分别对应一个地形纹理图,示例性地,多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,第一地形纹理图对应青色通道,第二地形纹理图对应黄色通道,第三地形纹理图对应洋红色通道,第四地形纹理图对应黑色通道。解析取样图像,获得取样图像中像素点的青色通道的值、像素点的黄色通道的值、像素点的洋红色通道的值以及像素点的黑色通道的值。基于取样图像中像素点的青色通道的值,获取第一地形纹理图在像素点的权重;基于取样图像中像素点的黄色通道的值,获取第二地形纹理图在像素点的权重;基于取样图像中像素点的洋红色通道的值,获取第三地形纹理图在像素点的权重;基于取样图像中像素点的黑色通道的值,获取第四地形纹理图在像素点的权重。
例如,获取青色通道的值、黄色通道的值、洋红色通道的值和黑色通道的值这四种色彩通道的总和。确定取样图像中像素点的青色通道的值与四种色彩通道的总和的比值,作为第一地形纹理图在像素点的权重;确定取样图像中像素点的黄色通道的值与四种色彩通道的总和的比值,作为第二地形纹理图在像素点的权重;确定取样图像中像素点的洋红色通道的值与四种色彩通道的总和的比值,作为第三地形纹理图在像素点的权重;确定取样图像中像素点的黑色通道的值与四种色彩通道的总和的比值,作为第四地形纹理图在像素点的权重。
在再一种可能的实现方式中,通过地形纹理图的色相通道(Hue)、饱和度通道(Saturation)以及亮度通道(Y)分别对应一个地形纹理图,示例性地,多个地形纹理图包括第一地形纹理图、第二地形纹理图以及第三地形纹理图,第一地形纹理图对应色相通道,第二地形纹理图对应亮度通道,第三地形纹理图对应饱和度通道。解析取样图像,获得取样图像中像素点的色相通道的值、像素点的亮度通道的值以及像素点的饱和度通道的值。基于取样图像中像素点的色相通道的值,获取第一地形纹理图在像素点的权重;基于取样图像中像素点的亮度通道的值,获取第二地形纹理图在像素点的权重;基于取样图像中像素点的饱和度通道的值,获取第三地形纹理图在像素点的权重。
在一种可能的实现方式中,根据色相、饱和度和亮度这三种色彩通道之间的比值确定地形纹理权重。例如,获取色相通道的值、饱和度通道的值和亮度通道的值这三种色彩通道的总和。确定取样图像中像素点的色相通道的值与三种色彩通道的总和,作为第一地形纹理图在像素点的权重;确定取样图像中像素点的饱和度通道的值与三种色彩通道的总和,作为第二地形纹理图在像素点的权重;确定取样图像中像素点的亮度通道的值与三种色彩通道的总和,作为第三地形纹理图在像素点的权重。
在另一种可能的实现方式中,基于取样图像中像素点的高度值,获得多个地形纹理图在像素点的混合比例数据。例如,将像素点的高度值作为一个地形纹理图的权重。例如,响应于确定像素点的高度值大于阈值,使用第一地形纹理图,响应于确定像素点的高度值小于或等于阈值,使用第二地形纹理图。又如,对像素点的高度值以及像素点的每个色彩通道的值进行归一化处理。例如,将像素点的高度值进行线性映射或标准化处理,以及对色彩通道值进行除以255(或其他范围)的操作,使得像素点的高度值与像素点的每个色彩通道缩放到相同的数值范围。然后,计算像素点的每个色彩通道的值以及像素点的高度值的总和;然后,分别计算像素点的每个色彩通道的值以及像素点的高度值在总和中所占的比例,得到混合比例数据。
在另一种可能的实现方式中,基于取样图像中像素点的法线向量,获得多个地形纹理图在像素点的混合比例数据。例如,将像素点的法线向量的斜率或法线向量的方向中至少一项映射为一个地形纹理图的权重。
在另一种可能的实现方式中,基于取样图像中像素点的光照值,获得多个地形纹理图在像素点的混合比例数据。例如,将像素点的光照值作为一个地形纹理图的权重。
在另一种可能的实现方式中,基于取样图像中像素点的遮挡值或阴影值,获得多个地形纹理图在像素点的混合比例数据。例如,将像素点的遮挡值或阴影值作为一个地形纹理图的权重。
在另一种可能的实现方式中,基于取样图像中像素点的灰度值,获得与灰度值对应的地形纹理图在像素点的混合比例数据。
步骤S120,基于多个地形纹理图和混合比例数据,对地形网格区域中像素点对应的顶点进行渲染。
地形网格区域是用于表示地形的离散化区域,通常用于地形渲染和模拟。在计算机图形学中,地形网格区域可以看作是一个二维或三维的网格,由一系列相邻的顶点和连接它们的边组成。在二维情况下,地形网格区域是一个网格平面,由一系列的顶点和边构成。每个顶点代表地形表面的一个点,边表示相邻点之间的连接关系。可以为每个顶点分配一个高度值,以模拟地形的高度变化。使用插值算法可以通过已知的高度值来推断未知的点的高度,以形成一个平滑的地形模型。在三维情况下,地形网格区域是一个由三角形(或其他多边形)连接而成的网格,类似于网格的表面。每个顶点代表地形表面的一个点,每个三角形代表地形的一个小片段。可以为每个顶点分配一个高度值,以模拟地形的高度变化,通过在每个三角形上插值和平滑高度值,可以得到一个连续的地形表面模型。地形网格区域的精细度取决于网格的分辨率,即顶点的数量。较高的分辨率可以提供更详细和真实的地形表现,但也会增加计算和渲染的复杂性。较低的分辨率可以提高性能,但会导致地形表面的精细度降低。
在一种可能的实现中,步骤S130包括如下步骤A至步骤C。
步骤A、在选定的网格中,通过预设的序列数组确定网格中每个像素点的高度值以及每个像素点的位置信息。基于像素点的高度值以及像素点的位置信息构建地形网格区域。
在一种可能的实现中,地形网格数据的表现与灰度图类似。例如,使用高度地形图中的色彩明暗程度(灰度)表示地形的高度变化。具体来说,当高度地形图中某个区域的区域越白,就表示该区域的高度值越大,也就是该区域的地形越高。相反,当高度地形图中某区域的色彩越黑或者色彩较深,就表示该区域的高度值越小,即地形越低。例如,请参考附图4,附图4是本申请实施例提供的一种地形网格数据的示意图,通过观察图4中色彩的明暗程度,可以直观地了解地形的高度变化情况。
序列数组是指由序列作为数据的数组。换句话说,序列数组中的每个元素都是序列类型的数据。序列数组中每个元素(即序列)的位数可以根据精度要求而设置。例如,序列的位数可以是8位或者16位等。序列的位数越大,可以提供更精细的高度值表示。序列的数值就对应着高度值。序列是二进制的格式。
数组的存储形式就意味着序列的分布是有序的。数组的每行每列的序列数据数量分别对应地形网格中像素点的数量。例如,数组的每行的序列数据数量指示地形网格中每行像素点的数量。数组的每列的序列数据数量指示地形网格中每列像素点的数量。例如,数组每行有1080个序列,数组每列有960个序列,则表示地形网格的数据包含1080*960个像素点,且地形网格每行有1080个像素点,每列有960个像素点。每个像素点之间的水平距离是相同的,因此将序列作为像素点的高度值则可以渲染出高度地形图。
步骤B、基于网格中的像素点的坐标信息和像素点的高度值,获得网格中的顶点数据。
在一种可能的实现方式中,取样图像中每一个像素点均作为地形网格区域中一个顶点。顶点的数据包括坐标信息和高度值,后续用于顶点的纹理渲染。
步骤C、获取地形网格区域的全部顶点数据,然后根据需要渲染的纹理特征配置,对地形网格区域的全部顶点进行纹理渲染。
通常情况下,需要对整个地形网格区域都进行纹理渲染,但是有的地形因为较大,受限于硬件的问题,无法一次性对整个地形网格区域同时进行渲染,或者不希望占用太多硬件,不会一次性对地形网格区域进行渲染。因此将完整的地形网格区域划分为多个渲染区域,然后按照预设的规则对多个渲染区域进行先后渲染,从而实现整个地形网格区域的渲染。或者,也可以不同时对整个地形网格区域都进行渲染,而是根据需要对特定的渲染区域进行渲染,例如以指定虚拟人物的位置在预设半径内所涉及的渲染区域作为特定的渲染区域进行渲染,从而能够降低渲染所需的硬件要求。
纹理特征配置是通过地形纹理图作为地形纹理数据。具体的,对地形纹理图进行解析,得到地形纹理图中所有像素点的色彩分布数据,色彩的数据为RGB数据,然后将该些色彩分布数据作为地形纹理数据(包括像素点数量、像素点对应的色彩)。
在一种可能的实现中,对待渲染的地形网格区域,通过将地形纹理数据在该地形网格区域中进行密铺,使得该地形网格区域全部完成渲染。
密铺是指将地形纹理数据(或者说地形纹理图)在地形网格区域内进行平铺填充,使得地形网格区域整个区域表面被地形纹理图完全覆盖。
在一种可能的实现中,通过配置平铺度参数来调整密铺的精度。例如地形纹理图的像素尺寸是20*20,需要在一个尺寸为40*40的渲染区域内进行平铺,根据平铺度的不同,可以在40*40的渲染区域内选择1:1的平铺度,此时则40*40的渲染区域内每个像素点都被一一覆盖渲染到,此时平铺地形纹理图的数量是4张;当选择1:4的平铺度,则40*40的渲染区域内只有四分之一的像素点被覆盖到,也即每4个像素点中有一个像素点被渲染。
如果仅是通过单个地形纹理图进行渲染,会使得渲染出来的地形显得单一。而如果没有引入混合比例数据,仅是在不同的渲染区域内用不同的地形纹理图来进行渲染,当需要的地形纹理图多了之后,就会导致需要过多的人力来绘制地形纹理图。而本实施例中,通过基于取样图像获得混合比例数据,基于混合比例数据以及多个地形纹理图进行渲染,从而能够通过有限的地形纹理图,通过不同的混合比例来达到更多的地形纹理效果,且大大减少了人工绘制地形纹理图的数量。
本实施例提供的方法,通过基于取样图像中像素点的参数,获得多个地形纹理图在像素点的混合比例数据;基于多个地形纹理图和混合比例数据,对地形网格区域中像素点对应的顶点进行渲染,从而能够通过有限的地形纹理图,通过不同的混合比例能够达到不同的地形纹理的渲染效果,无需针对每种预期的渲染效果单独绘制一张地形纹理图,从而减少了绘制大量的地形纹理图的工作量,提高地形渲染效率。
此外,相比于只使用单一地形纹理图,混合多个纹理图能够在不同区域呈现更多样化的地表特征,使地形更加真实和细致。
此外,通过使用取样图像中的像素点的参数来获取混合比例数据,有助于提高地形纹理渲染效果的精确性。每个像素点都可以根据其参数的数值确定所使用的地形纹理图和对应的混合比例,有助于将渲染效果精确到每个像素点,从而更加细致地呈现地形的细节和特征,使地形更加真实和逼真。
此外,如果需要新的地形效果或者修改原有纹理效果,可以通过添加或者替换原始纹理图,或者调整原有纹理图的混合比例即可,而不需要重新绘制和修改大量的单一纹理图,因此扩展性较好。
下面对获取多个地形纹理图以及取样图像的实现方式举例说明。
地形纹理图是一种包含了地形纹理数据的图像,地形纹理图用于在地形渲染中给地形表面赋予不同的纹理和色彩。
在一种可能的实现方式中,地形纹理图中每个像素点的色彩数据表示该像素点的纹理特征。色彩数据包括一个或多个色彩通道的值。
示例性地,通过地形纹理图的RGBA数据表示纹理特征。具体地,地形纹理图中每个像素点的色彩数据包括该像素点在红色通道的值(Red,简称R值)、该像素点在绿色通道的值(Green,简称G值)、该像素点在蓝色通道的值(Blue,简称B值)以及该像素点在不透明通道的值(Alpha值,简称A值)。R值、G值、B值和A值这四种参数的组合也称为RGBA值。每个色彩通道的值的范围通常是从0到255。Alpha值为0表示完全透明,Alpha值为1表示完全不透明。
示例性地,通过地形纹理图的CMYK数据表示纹理特征。具体地,地形纹理图中每个像素点的色彩数据包括该像素点在青色(Cyan)通道的值、该像素点在洋红色(Magenta)通道的值、该像素点在黄色(Yellow)通道的值和该像素点在黑色(Key,即K)通道的值。
示例性地,通过地形纹理图的HSL数据表示纹理特征。具体地,地形纹理图中每个像素点的色彩数据包括该像素点在色相(Hue)通道的值、该像素点在饱和度(Saturation)通道的值和该像素点在亮度(Lightness)通道的值。
示例性地,通过地形纹理图的HSV数据表示纹理特征。具体地,地形纹理图中每个像素点的色彩数据包括该像素点在色相(Hue)通道的值、该像素点在饱和度(Saturation)通道的值和该像素点在明度(Value)通道的值。
混合比例数据用于指示多个地形纹理图在渲染过程中的混合比例。例如,混合比例数据包括多个地形纹理图中每个地形纹理图的权重。又如,混合比例数据包括多个地形纹理图中不同地形纹理图的权重之间的比例关系。又如,混合比例数据包括多个地形纹理图中每个地形纹理图的权重在所有地形纹理图的权重之和中的占比。根据一个像素点的混合比例数据,能够确定针对该像素点对应的顶点进行渲染时,采用多个地形纹理图中哪个地形纹理图以及该地形纹理图在渲染过程中所占的比例。
取样图像是指用于提取混合比例数据的图像。取样图像中像素点的参数用于指示像素点对应的顶点的混合比例数据。取样图像中不同像素点对应的混合比例数据可以是相同的。取样图像中不同像素点对应的混合比例数据也可以是不同的。
在一种可能的实现方式中,取样图像中像素点的参数包括取样图像中像素点的色彩数据。色彩数据包括一个或多个色彩通道的值。色彩通道的值用于指示混合比例数据。具体地,取样图像中每一个色彩通道对应于一个地形纹理图。色彩通道的值指示该色彩通道对应的地形纹理图的权重。例如,一个地形纹理图对应的权重为该地形纹理图对应的色彩通道的值在每个色彩通道的值的总和中所占的比例。
地形纹理数据可以由遥感数据获取、地形测量或模拟等多种途径获得。取样图像可以由设计人员基于预期的渲染效果绘制得到。设计人员可以通过命令行或者web网页将取样图像配置至。或者,取样图像也可以是由传感器、摄像机或其他设备捕获的实际图像;或者,取样图像也可以是通过计算机生成的合成图像。
在另一种可能的实现方式中,取样图像为数字高程图像,取样图像中像素点的参数包括取样图像中像素点的高度值,像素点的高度值用于指示混合比例数据。
在另一种可能的实现方式中,取样图像中像素点的参数包括取样图像中像素点的坡度(如像素点周围的高度差),像素点的坡度用于指示混合比例数据。
在另一种可能的实现方式中,取样图像中像素点的参数包括取样图像中像素点的法线向量,像素点的法线向量用于指示混合比例数据。
在另一种可能的实现方式中,取样图像中像素点的参数包括取样图像中像素点的光照值,像素点的光照值用于指示混合比例数据。
在另一种可能的实现方式中,取样图像中像素点的参数包括取样图像中像素点的遮挡值或阴影值,像素点的遮挡值或阴影值用于指示混合比例数据。
下面对图1实施例中使用混合比例数据进行渲染的实现方式举例说明。
在一种可能的实现方式中,获取的混合比例数据包括多个地形纹理图中每个地形纹理图在同一个像素点的权重。基于多个地形纹理图在该同一个像素点的色彩数据以及每个地形纹理图在该像素点的权重,确定该像素点的地形纹理色彩;例如,基于每个地形纹理图在该像素点的权重,对多个地形纹理图在该像素点的色彩数据进行加权求和,将多个地形纹理图在该像素点的色彩数据的加权和值作为该像素点的地形纹理色彩;或者,基于每个地形纹理图在该像素点的权重,对多个地形纹理图在该像素点的色彩数据进行加权平均,将多个地形纹理图在该像素点的色彩数据的加权平均值作为该像素点的地形纹理色彩。基于该像素点的地形纹理色彩,对地形网格区域中像素点对应的顶点进行着色,从而实现该顶点的渲染。在渲染过程中,混合比例数据决定了不同地形纹理图的贡献程度。权重越大的地形纹理图对渲染得到的地形纹理颜色的贡献越大。
例如,上述多个地形纹理图包括地形纹理图A和地形纹理图B,获得的多个地形纹理图在一个像素点的混合比例数据包括weightA和weightB,weightA是地形纹理图A对应的权重,weightB是地形纹理图B对应的权重,该像素点对应的顶点处的地形纹理色彩例如=weightA*colorA+weightB*colorB,colorA和colorB分别为地形纹理图A和地形纹理图B在该像素点处的颜色。
在一种可能的实现方式中,遍历取样图像中的每个像素点;对于当前遍历到的像素点,基于多个地形纹理图在像素点的混合比例数据,对地形网格区域中像素点对应的顶点进行渲染,直至取样图像中的每个像素点均遍历结束。在另一种可能的实现中,并行地针对地形网格区域中每个顶点进行渲染。例如,创建线程池,通过线程池中第一线程使用第一像素点的混合比例数据和多个地形纹理图,对地形网格区域中第一顶点进行渲染,通过第二线程使用第一像素点的混合比例数据和多个地形纹理图,对地形网格区域中第一顶点进行渲染。
在一种可能的实现方式中,取样图像中每一个像素点对应地形网格区域中一个顶点,即顶点的精度达到了像素点。在这种情况下,以地形网格区域包括P个顶点为例,针对P个顶点中的第Q个顶点,基于多个地形纹理图在第Q个像素点的混合比例数据,对地形网格区域中第Q个顶点进行渲染。其中,P为大于1的整数,Q为小于等于P的正整数。通过这种方式,渲染效果就可以精确到每个像素点。
示例性地,多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图。取样图像中第Q个像素点R、G、B和A这四种色彩通道的值分别是0.2、0.3、0.1和0.4,第Q个像素点对应的混合比例数据为(0.2,0.3,0.1,0.4)。确定在第Q个像素点处,第一地形纹理图的权重为20%,第二地形纹理图的权重为30%,第三地形纹理图的权重为10%,第四地形纹理图的权重为40%。根据第一地形纹理图的权重、第二地形纹理图的权重、第三地形纹理图的权重以及第四地形纹理图的权重,将第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图按照相应的权重混合起来,从而对第Q个顶点进行渲染。
以地形网格区域包括四个顶点,使用两个地形纹理图进行混合以渲染地形网格区域为例进行说明,例如获得两个地形纹理图,一个是草地纹理图,一个是岩石纹理图。顶点1的混合比例数据包括0.8(草地纹理图在顶点1的权重)和0.2(岩石纹理图在顶点1的权重)。顶点2的混合比例数据包括0.5(草地纹理图在顶点2的权重)和0.5(岩石纹理图在顶点2的权重)。顶点3的混合比例数据包括0.3(草地纹理图在顶点3的权重)和0.7(岩石纹理图在顶点3的权重)。顶点4的混合比例数据包括0.6(草地纹理图在顶点4的权重)和0.4(岩石纹理图在顶点4的权重)。根据上述四个顶点的混合比例数据,得出混合纹理图中四个顶点的色彩数据分别为(0.8*草地像素颜色+0.2*岩石像素颜色)、(0.5*草地像素颜色+0.5*岩石像素颜色)、(0.3*草地像素颜色+0.7*岩石像素颜色)和(0.6*草地像素颜色+0.4*岩石像素颜色)。当地形网格区域包括更多数量的顶点以及使用更多的地形纹理图的实现方式与此同理。
在另一种可能的实现方式中,取样图像中多个像素点对应地形网格区域中一个顶点。在这种情况下,以地形网格区域包括P个顶点为例,针对P个顶点中的第Q个顶点,例如第Q个顶点对应于第Q个像素点集合,对多个地形纹理图在第Q个像素点集合中每个像素点的混合比例数据取平均值,得到第Q个顶点的混合比例数据,基于多个地形纹理图在第Q个顶点的混合比例数据,对地形网格区域中第Q个顶点进行渲染。
在一种可能的实现方式中,基于混合比例数据对多个地形纹理图进行混合,得到混合纹理图;基于混合纹理图,对地形网格区域中像素点对应的顶点进行渲染。例如,使用图像合成算法,例如线性插值或alpha混合等,基于混合比例数据来对多个地形纹理图进行混合,得到混合纹理图。混合纹理图中每个像素点的色彩数据例如是多个地形纹理图在该像素点的色彩数据的加权平均值或者加权和值。然后,针对地形网格区域P个顶点中的第Q个顶点,从混合纹理图中获取第Q个像素点的色彩数据,使用第Q个像素点的色彩数据对地形网格区域中第Q个顶点进行着色。由于混合纹理图包含了两个或多个地形纹理图的混合后的地形纹理数据,混合纹理图中不同像素点的地形纹理数据的过渡相对比较平滑,从而降低在相邻顶点之间出现明显的地形纹理边界导致过渡不平滑的概率。此外,对地形网格区域中的同一个顶点,通过使用混合纹理图中对该顶点着色,使得顶点的渲染效果呈现多个地形纹理图中对应的纹理,而不需要使用每一个地形纹理图分别对该顶点着色一次,从而减少了需要执行着色操作的次数,减少了渲染的计算量。
在另一种可能的实现方式中,通过混合比例数据将多个地形纹理图依次对像素点对应的顶点进行渲染。以针对地形网格区域中第一顶点进行渲染的过程为例,地形网格区域中第一顶点例如对应于取样图像中第一像素点。获取第一地形纹理图在第一像素点的色彩数据,基于第一地形纹理图在第一像素点的色彩数据以及第一地形纹理图在第一像素点对应的权重,确定第一地形网格区域中第一顶点的第一色彩数据。例如,第一顶点的第一色彩数据为第一地形纹理图在第一像素点的色彩数据与第一地形纹理图在第一像素点对应的权重之间的乘积;使用第一顶点的第一色彩数据对地形网格区域中第一顶点进行着色。然后,基于第二地形纹理图在第一像素点的色彩数据以及第二地形纹理图在第一像素点对应的权重,对地形网格区域中第一顶点进行重新着色。例如,对地形网格区域中第一顶点的第一色彩数据、第二地形纹理图在第一像素点的色彩数据以及第二地形纹理图在第一像素点对应的权重进行加权求和,得到第一顶点的第二色彩数据。使用第一顶点的第二色彩数据对第一顶点进行重新着色。依次类推,重复执行基于一个地形纹理图的权重使用该地形纹理图对地形网格区域中相应的顶点进行渲染的步骤,直至多个地形纹理图均已使用完成。通过依次采用地形纹理图对顶点进行渲染,不需要额外的资源来合成以及存储混合纹理图,从而可以节省内存和计算资源。并且,每个地形纹理图都会直接影响顶点上的颜色,从而保留了原始纹理图的细节,使得渲染结果更加真实。
在一种可能的实现方式中,地形网格区域包括N个渲染区域,取样图像包括N个分区取样图像;基于第M分区取样图像获取第M混合比例数据;基于多个地形纹理图和第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染;其中,N为大于1的整数,M为小于等于N的正整数。
分区取样图像是与地形网格区域中特定渲染区域对应的取样图像。不同分区取样图像包含不同渲染区域的混合比例数据。可选地,N个渲染区域对应N个分区取样图像。N个分区取样图像对应于N个混合比例数据。N个渲染区域中每个渲染区域对应N个分区取样图像中一个分区取样图像。第M分区取样图像表示地形网格区域中的第M个渲染区域对应的取样图像。第M分区取样图像包括第M混合比例数据。第M分区取样图像用于对第M渲染区域进行渲染。
第M混合比例数据是指第M渲染区域对应的混合比例数据。例如,第M混合比例数据包括多个地形纹理图中每个地形纹理图在第M个渲染区域中的权重。或者,第M混合比例数据包括多个地形纹理图中每个地形纹理图在第M个渲染区域中的权重之间的比例关系。第M混合比例用于对第M渲染区域进行渲染。基于第M分区取样图像获取第M混合比例数据的过程可参考步骤S120的描述。例如,确定第M分区取样图像中不同色彩通道的值的比例,作为第M渲染区域的混合比例数据。
由于针对每个渲染区域提供了对应的分区取样图像,能够针对不同渲染区域利用不同的混合比例数据进行渲染,实现不同渲染区域之间的渲染效果差异性,例如,需要在地形网格区域中的不同渲染区域分别渲染出山区、草地和河流的效果,基于山区对应的分区取样图像获得的混合比例数据中,岩石纹理图的权重最大;基于草地对应的分区取样图像获得的混合比例数据中,草地纹理图的权重最大;基于河流对应的分区取样图像获得的混合比例数据中,水面纹理图的权重最大,由于不同渲染区域中不同地形纹理图的权重不同,对地形网格区域渲染后不同区域可以呈现不同的地形特征,使地形网格区域呈现出丰富多样的外观。
渲染区域可以是地形网格区域中的子区域。一个地形网格区域包括一个或多个渲染区域。在一种可能的实现中,按照预设规则对地形网格区域进行划分,得到一个或多个渲染区域。
在确定渲染区域的一种可能实现方式中,确定渲染区域的尺寸。根据地形网格区域的总尺寸以及渲染区域的尺寸,确定需要划分的渲染区域的数量。根据确定的渲染区域大小和数量,对完整的地形网格区域进行划分。可以使用均等划分的方法,将地形网格区域分割为尺寸相同的渲染区域。也可以根据特定需求和地形特征将地形网格区域进行不均匀划分,以更好地适应地形的不同部分。例如,当地形变化较大或者细节较多时,可以将渲染区域的尺寸设置得较小,以更精细地描绘地形的细节。而当地形变化较平缓或者细节较少时,可以将渲染区域的尺寸设置得较大,以减少渲染的计算量。
通过将地形网格区域划分出一个或多个渲染区域,有助于将复杂的地形渲染过程(针对整个地形网格区域进行渲染)拆分为多个较小的渲染任务(针对一个渲染区域进行渲染),从而便于并行处理(例如并行渲染多个渲染区域),从而提高渲染性能和效率。通过对每个渲染区域均进行渲染,从而实现整个地形网格区域的渲染。
在确定渲染区域的另一种可能实现方式中,根据需要从地形网格区域中确定渲染区域。例如,基于虚拟对象所处的位置以及预设半径,确定渲染区域,渲染区域的边界与虚拟对象所处的位置之差为预设半径。
虚拟对象例如是游戏中的对象。虚拟对象例如是虚拟人物,例如虚拟对象为游戏角色。游戏角色具有模型、动画和交互行为,可以在游戏世界中自由移动和与其他对象进行互动。又如,虚拟对象为虚拟道具物品,例如虚拟对象为可收集的宝藏、武器、装备或其他增益物品。或者,虚拟对象是敌人或怪物,敌人或怪物被设计为与玩家进行战斗或其他形式的交互。或者,虚拟对象是游戏场景中的环境物体,例如虚拟树木、虚拟建筑物、虚拟岩石等。或者,虚拟对象是NPC(非玩家角色),NPC是由游戏程序控制的虚拟对象。NPC可以是提供任务、对话或购买等服务的商人、居民或其他角色,用户可以与NPC进行互动,获取任务、获得信息或交换物品。或者,虚拟对象是游戏任务目标。
虚拟对象所处的位置例如为虚拟对象的二维坐标或者三维坐标。作为基于虚拟对象所处的位置确定渲染区域的一种可能实现方式,使用虚拟对象的位置作为球心,设置一个半径,将所有与球心距离小于等于半径的像素点被选取为渲染区域内的像素点。像素点与球心的距离可以通过计算两者的欧几里得距离获得。例如,虚拟对象的位置为(x,y,z),预设半径为r,那么渲染区域的边界可以定义为一个以虚拟对象位置为中心,半径为r的球形区域。作为基于虚拟对象所处的位置确定渲染区域的另一种可能实现方式,使用虚拟对象的位置作为矩形中心点,设置一个宽度和长度,通过计算虚拟对象与某个像素点的横向距离和纵向距离来判断该像素点是否在矩形区域内,从而确定该像素点是否属于渲染区域。作为基于虚拟对象所处的位置确定渲染区域的再一种可能实现方式,使用虚拟对象的位置作为圆心,设置一个半径,将与圆心距离小于等于半径的像素点被选取为渲染区域内的像素点。
由于将渲染区域限制在虚拟对象周围的区域,相较于对整个地形网格区域都进行渲染而言,不需要对远离虚拟对象的区域进行渲染,因此降低了处理器渲染的计算量,节省渲染过程占用的内存空间,降低渲染所需的计算机硬件要求。此外,通过将虚拟人物周围的区域渲染草地纹理,使得虚拟人物周围的区域与其他区域形成鲜明对比,比如草地纹理的绿色和丰富细节可以使虚拟人物更加显眼,有助于玩家将注意力集中在虚拟人物身上,提升虚拟人物在游戏场景中的存在感。
在一种可能的实现中,遍历N个渲染区域中每个渲染区域,针对当前遍历到的第M渲染区域,使用第M渲染区域对应的混合比例数据以及多个地形纹理图,对第M渲染区域中的像素点对应的顶点进行渲染,直至M=N,即第N个渲染区域渲染结束。
在另一种可能的实现中,并行地针对N个渲染区域中每个渲染区域进行渲染,从而减少整体渲染时间。例如,创建线程池,线程池包括N个线程,N个线程中每个线程用于对一个渲染区域进行渲染。通过N个线程并行执行N个渲染区域的渲染过程,N个线程中第M线程使用第M渲染区域对应的混合比例数据以及多个地形纹理图,对第M渲染区域中的像素点对应的顶点进行渲染。
在一种可能的实现方式中,基于第M混合比例数据,对多个地形纹理图进行混合,得到第M混合纹理图;基于第M混合纹理图,对第M渲染区域中的像素点对应的顶点进行渲染。
第M混合纹理图是根据第M混合比例数据和多个地形纹理图进行混合生成的一张纹理图。第M混合纹理图用于对第M渲染区域中的像素点对应的顶点进行渲染。N个分区取样图像可以对应于N个混合纹理图。可以基于第1个混合纹理图,对第1个渲染区域进行渲染,同时基于第2个混合纹理图,对第2个渲染区域进行渲染,以此类推。
在另一种可能的实现方式中,基于第M混合比例数据,将多个地形纹理图依次对第M渲染区域中的像素点对应的顶点进行渲染。
在一种可能的实现方式中,多个地形纹理图包括K个地形纹理图集合,取样图像包括K个同区取样图像;基于第L同区取样图像中像素点的参数,获得第L地形纹理集合中的地形纹理图在像素点的第L比例数据;全部的第L比例数据构成混合比例数据;其中,K为大于1的整数,L为小于等于K的正整数。
同区取样图像是指地形网格区域中同一个渲染区域对应的取样图像。具体地,一个渲染区域可以对应于多个取样图像,同一个渲染区域对应的不同取样图像可以包括不同的混合比例数据。本实施例将与同一个渲染区域对应的一个或多个取样图像定义为同区取样图像。一个同区取样图像对应于一个地形纹理图集合。地形纹理图集合包括一个或多个地形纹理图。K个同区取样图像中不同的同区取样图像对应的地形纹理图集合中包含的地形纹理图的数量可以是相同的也可以是不同的。第L同区取样图像对应于第L地形纹理集合。第L比例数据是指第L同区取样图像中一个同区取样图像包含的混合比例数据。在第L个渲染区域对应一个取样图像的情况下,第L同区取样图像为一个取样图像,基于第L同区取样图像中每个像素点的参数可以获得一个混合比例数据。在第L个渲染区域对应多个取样图像的情况下,第L同区取样图像为多个取样图像,基于第L同区取样图像中每个同区取样图像在一个像素点的参数,可以获得一个比例数据,对第L同区取样图像中每个同区取样图像对应的比例数据采用线性组合、平均值或加权平均值等方式进行组合,可以得到每个第L比例数据组成的混合比例数据。
举例来说,地形网格区域中渲染区域1对应于取样图像1和取样图像2这两个取样图像,取样图像1和取样图像2可以称为同区取样图像。取样图像1对应于地形纹理图集合1。取样图像2对应于地形纹理图集合2。根据取样图像1中像素点的参数,可以确定地形纹理图集合1中的每个地形纹理图在该像素点上的比例数据,得到比例数据1。据取样图像2中像素点的参数,可以确定地形纹理图集合2中的每个地形纹理图在该像素点上的比例数据,得到比例数据2。对比例数据1与比例数据2进行组合,得到渲染区域1中像素点的混合比例数据。
由于针对同一个渲染区域,基于每个同区取样图像对应的混合比例数据以及地形纹理图集合进行渲染,每个同区取样图像对应的地形纹理图集合可以包含不同的地形纹理图,通过混合渲染尽可能多的地形纹理图,实现多种不同纹理的组合,为地形增加多样性。例如,在一个山地区域中,可以使用一个取样图像和对应的地形纹理图集合来渲染出山脉纹理,同时使用另一个取样图像和对应的地形纹理图集合来渲染出岩石纹理,实现岩石覆盖山脉的渲染效果,使地形呈现更真实细致。
在一种可能的实现方式中,基于取样图像像素点的每个色彩通道的值(例如RGB数据),获得地形网格区域的渲染数据;基于渲染数据向地形网格区域***草插片。
通过取样图像的RGB数据以及地形纹理图获取渲染数据,进而通过***草插片来得到草地区域,而无需对已渲染的地形网格区域进行数据读取来获取渲染数据以得到草地区域,从而复用了渲染地形过程中使用的数据,降低了数据处理量,以及不用等待地形渲染完成之后才可以读取处理数据,缩短了时间。
草插片为用来表示草地的小片状元素。草插片代表着真实草地中的一小片草丛或草叶。草插片通常采用平面或近似平面的几何形状。草插片包括至少一个顶点。例如,一个草插片可以具有四个顶点,草插片可以具有菱形的几何形状或者矩形的几何形状。一个草插片也可以具有三个顶点,草插片可以具有三角形的几何形状。当然,三个顶点以及四个顶点仅是草插片的顶点数量的举例,一个草插片也可以具有五个顶点,草插片可以具有一个不规则的多边形形状,或者,一个草插片也可以具有六个顶点,草插片可以凸六边形的形状。草插片也可以为3D模型。
在获取草插片的一种可能实现方式中,确定草插片的顶点数量,基于草插片的顶点数量,创建具有该顶点数量的几何体;将草的贴图映射到该几何体上,得到一个草插片。其中,草的贴图包括草的特征,如草的颜色、草的纹理和透明度等。
在一种可能实现方式中,响应于确定地形网格区域中单位区域内的渲染数据满足草地纹理特征,向单位区域内***草插片。由于将渲染数据满足草地纹理特征作为确定***草插片的标准,在单位区域的渲染数据满足草地纹理特征的情况下自动***草插片,由于无需人工选定草地区域,从而节省人工选定草地区域带来的人力成本,提高渲染效率。此外,当单位区域的渲染数据不满足草地纹理特征则无需***草插片,相当于***草插片之前过滤掉了一些不适合***草插片的区域,从而降低在不必要的区域上***草插片的概率,从而减少了渲染负荷和资源消耗。此外,由于草插片能够模拟真实草地中植物的分布和形态,因此***草插片后单位区域在视觉上呈现出草地的特征,渲染出草地的效果,增强渲染的真实感和细节。
在一种可能实现方式中,基于单位区域内像素点的色彩数据以及草地色彩区间,确定单位区域内目标像素点的数量;基于单位区域内目标像素点的数量,确定单位区域的渲染数据满足草地纹理特征,向单位区域内***草插片。
草地色彩区间是指用于描述草地颜色特征的一个范围。例如,在RGB空间下,草地色彩区间可以包括R、G、B三个分量的范围;在HSV空间下,草地色彩区间可以包括H(色相)、S(饱和度)和V(亮度)等分量的范围。在确定草地色彩区间的一种可能实现方式中,对真实草地图片进行采样从而确定草地色彩区间。例如,收集多种真实草地图片,包括不同场景、不同光照条件下的草地照片。从这些真实草地图片中选择代表草地颜色的样本图像,从样本图像中提取出色彩数据,作为草地色彩区间。可选地,基于草地图像对应的环境条件,如阳光强度、阴影、周围物体反射等因素,对确定出的草地色彩区间的范围进行调整,使草地色彩区间能够包括不同环境下的草地颜色变化。
目标像素点是指色彩数据属于草地色彩区间的像素点。例如,比较一个像素点的色彩数据与草地颜色区间的上下界。如果像素点的色彩数据在草地颜色区间之内,则该像素点为目标像素点。考虑到色彩数据通常通过多个色彩通道定义,在一种可能的实现方式中,比较一个像素点的色彩数据中的每个色彩通道的值与草地颜色区间中对应通道的区间上下界,如果一个像素点的色彩数据中的每个色彩通道的值均属于对应通道的区间上下界,则该像素点为目标像素点。以在RGB空间为例,例如,如果一个像素点在红色通道的值在草地颜色区间的红色通道的上下界内,且该像素点在绿色通道的值在草地颜色区间的绿色通道的上下界内,且该像素点在蓝色通道的值在草地颜色区间的在蓝色通道的上下界内,则该像素点为目标像素点。
在一种可能的实现方式中,遍历单位区域内的每个像素点,对于当前遍历到的像素点,如果像素点的色彩数据在定义的草地颜色区间内,则将该像素点判定为目标像素点,对已记录的目标像素点的数量加一,直到遍历到单位区域中的最后一个像素点,输出已记录的目标像素点的数量。
在一种可能的实现方式中,对单位区域内目标像素点的数量与数量阈值进行比较。当确定单位区域内目标像素点的数量大于或等于数量阈值,则确定单位区域的渲染数据满足草地纹理特征,向单位区域内***草插片。当确定单位区域内目标像素点的数量小于数量阈值,则确定单位区域的渲染数据不满足草地纹理特征,无需向单位区域内***草插片。通过比较单位区域内目标像素点的数量与数量阈值,可以快速判断是否满足草地纹理特征,这种方法相对简单,易于实现。且相比手动处理,能够自动化选定待渲染为草地的区域,因此更快速、准确。
在另一种可能的实现方式中,获取单位区域内目标像素点的数量与单位区域内像素点的总数量之间的比值,对比值与第一比值阈值进行比较;当比值大于或等于第一比值阈值,则确定单位区域的渲染数据满足草地纹理特征,向单位区域内***草插片。当比值小于第一比值阈值,则确定单位区域的渲染数据不满足草地纹理特征,无需向单位区域内***草插片。在一个示例性场景下,在单位区域使用了多个地形纹理图(如5个地形纹理图)进行渲染,该多个地形纹理图包括草地纹理图,草地纹理图的占比就决定了是否向该单位区域***草插片。草地纹理图的占比例如为草地纹理所占据的像素点(目标像素点)数量与像素点总数量之间的比值,即单位区域内目标像素点的数量与单位区域内像素点的总数量之间的比值。如果草地纹理占据了大部分的像素点,那么草地纹理的占比就会比较高。例如,第一比值阈值为20%,当草坪纹理占比大于20%,表示该单位区域内有足够多的草坪纹理存在,则向单位区域内***草插片,从而增加草地的真实感。此外,通过比较目标像素点的数量与单位区域内像素点的总数量之间的比值,可以更好地把握渲染数据中草地的相对比例,此外,在不同缩放级别或视角下,单位区域内像素点的总数量可能发生变化,而目标像素点的数量与单位区域内像素点的总数量之间的比值具有相对不变性,因此有助于适应不同尺度下的渲染要求。且相比手动处理,能够自动化选定待渲染为草地的区域,因此更快速、准确。
在一种可能的实现方式中,基于单位区域内每个像素点的色彩数据,获取单位区域内像素点的色彩数据的统计值,确定色彩数据的统计值与草地色彩阈值之间的比值,对色彩数据的统计值与草地色彩阈值之间的比值与第二比值阈值进行比较;如果色彩数据的统计值与草地色彩阈值之间的比值大于或等于第二比值阈值,则确定单位区域的渲染数据满足草地纹理特征,向单位区域内***草插片。如果色彩数据的统计值与草地色彩阈值之间的比值小于第二比值阈值,则确定单位区域的渲染数据不满足草地纹理特征,无需向单位区域内***草插片。色彩数据的统计值与草地色彩阈值之间的比值可以理解为草坪纹理占比。以第二比值阈值为20%为例,如果草坪纹理占比大于或等于20%,则向单位区域内***草插片。
获取单位区域内像素点的色彩数据的统计值的方式例如为:获取单位区域内每个像素点的色彩数据的平均值。例如,对单位区域内所有像素点的色彩数据进行相加,将色彩数据的总和除以像素点数量,得到色彩数据的平均值;相应地,如果单位区域内色彩数据的平均值大于或等于第二比值阈值,则向单位区域内***草插片。由于利用了单位区域内所有像素点的色彩数据,相当于考虑了单位区域整体的色彩特征,从而更加准确。同时通过计算平均值作为判断是否应该选定为草地区域或者说***草插片的量化条件,降低了噪声干扰的影响,使得结果较为平滑和稳定。
获取单位区域内像素点的色彩数据的统计值的方式又如为:获取单位区域内中心像素点的色彩数据。相应地,如果单位区域内内中心像素点的色彩数据大于或等于第二比值阈值,则向单位区域内***草插片。由于利用中心像素点的色彩数据,而无需利用单位区域内所有像素点的色彩数据,从而减少了需要处理的数据量,提高计算效率。并且,能够更好地捕捉到单位区域边角的色彩特征,适用于草地边缘较为明显的场景。
获取单位区域内像素点的色彩数据的统计值的方式再如为:获取单位区域内各个角点的像素点的色彩数据的平均值。例如,获取单位区域内左上角点、左下角点、右上角点、右下角点这四个角点的色彩数据的平均值。相应地,如果单位区域内各个角点的像素点的色彩数据的平均值大于或等于第二比值阈值,则向单位区域内***草插片。
在另一种可能的实现方式中,渲染数据包括单位区域内像素点的纹理数据。可以根据单位区域内像素点的纹理数据判断是否向单位区域***草插片。草地的材质通常具有一定的细密度,可能包括细小的纹理元素(如草叶、草茎等)。可以检测单位区域的纹理数据中是否存在符合草地特征的纹理元素(如细小而规律的纹理,比如说细长的斑点、斑驳的形状等),如果单位区域的纹理数据中是否存在符合草地特征的纹理元素,则将该单位区域判断为草地区域,向单位区域内***草插片。
在另一种可能的实现方式中,渲染数据包括单位区域内像素点的光照数据。可以根据单位区域内像素点的光照数据判断是否向单位区域***草插片。草地通常呈现出受到光照的明暗变化,具有一定的高光和阴影效果。可以检测单位区域内的光照数据是否存在符合草地特征的光照分布和阴影效果,从而判断是否向单位区域内***草插片。例如,如果单位区域内的光照数据呈现具有较亮的光照反射特征,而且会在不同光照角度下产生反射变化,则将该单位区域判断为草地区域,向单位区域内***草插片。
在另一种可能的实现方式中,结合单位区域的色彩数据、纹理数据、光照数据、材质数据以及几何数据中至少两项判断单位区域是否满足草地纹理特征,当单位区域满足草地纹理特征则向单位区域内***草插片,当单位区域不满足草地纹理特征则无需向单位区域内***草插片。
在一种可能的实现方式中,渲染数据包括单位区域内草地纹理的占比,基于单位区域内草地纹理的占比,确定草插片的数量。草插片的数量与草地纹理的占比正相关。也即是,草地纹理的占比越大,草插片的数量越多。示例性地,预先设定草插片的数量与草地纹理的占比之间的第一映射关系,该第一映射关系的输入参数包括单位区域内草地纹理的占比,该第一映射关系的输出参数包括草插片的数量。基于单位区域内草地纹理的占比以及第一映射关系,确定草插片的数量。草插片的数量与草地纹理的占比之间的第一映射关系可以为函数,可以是线性第一映射关系,也可以是指数函数、对数函数或者分段函数等来非线性函数作为第一映射关系。由于草插片的数量与草地纹理的占比正相关,从而实现模拟现实中草地更绿的地方对应的草就会更多的情况,使得草的数量与草地颜色更加适配。
在一种可能的实现方式中,渲染数据包括单位区域内像素点的色彩数据,获取像素点的色彩数据与草地色彩阈值之间的比值,基于像素点的色彩数据与草地色彩阈值之间的比值,确定草插片的数量。草地色彩阈值用于确定属于草地的色彩范围。获取像素点的色彩数据与草地色彩阈值之间的比值的方式例如为距离比较,比如说计算像素点的色彩值与草地色彩阈值之间的距离(例如欧氏距离、差异度等),将距离转换为比值。获取像素点的色彩数据与草地色彩阈值之间的比值的方式又如为计算像素点的色彩值与草地色彩阈值之间的相似度,将相似度转换为比值。获取像素点的色彩数据与草地色彩阈值之间的比值的方式又如为将像素点的色彩值与草地色彩阈值进行比较,得到一个布尔值,布尔值表示该像素点的色彩值是否处于草地色彩阈值指示的色彩范围内。
在一种可能的实现方式中,基于单位区域内每个像素点的色彩数据的平均值与草地色彩阈值之间的比值,确定草插片的数量。例如,设定像素点的色彩数据的平均值以及草插片的数量之间的第二映射关系,基于像素点的色彩数据的平均值以及第二映射关系,确定草插片的数量。又如,当单位区域内每个像素点的色彩数据的平均值与草地色彩阈值之间的比值大于或等于阈值时,确定草插片的数量为第一数量;当单位区域内每个像素点的色彩数据的平均值与草地色彩阈值之间的比值小于阈值时,确定草插片的数量为第二数量。草插片的数量可以与每个像素点的色彩数据的平均值与草地色彩阈值之间的比值正相关。这样,当色彩数据的平均值增加时,草插片的数量也会相应增加,从而模拟草地更绿的地方对应的草就会更多。
在一种可能的实现方式中,基于单位区域内中心像素点的色彩数据与草地色彩阈值之间的比值,确定草插片的数量。例如,设定中心像素点的色彩数据以及草插片的数量之间的第三映射关系,基于中心像素点的色彩数据以及第三映射关系,确定草插片的数量。又如,当单位区域内中心像素点的色彩数据与草地色彩阈值之间的比值大于或等于阈值时,确定草插片的数量为第一数量;单位区域内中心像素点的色彩数据与草地色彩阈值之间的比值小于阈值时,确定草插片的数量为第二数量。草插片的数量可以与每个像素点的色彩数据的平均值与草地色彩阈值之间的比值正相关。草插片的数量可以与中心像素点的色彩数据与草地色彩阈值之间的比值正相关。这样,当中心像素点的色彩数据增加时,草插片的数量也会相应增加,从而模拟草地更绿的地方对应的草就会更多。
在一种可能的实现方式中,基于单位区域内各个角点的像素点的色彩数据的平均值与草地色彩阈值之间的比值,确定草插片的数量。例如,设定各个角点的像素点的色彩数据的平均值以及草插片的数量之间的第四映射关系,基于各个角点的像素点的色彩数据的平均值以及第四映射关系,确定草插片的数量。又如,当各个角点的像素点的色彩数据的平均值与草地色彩阈值之间的比值大于或等于阈值时,确定草插片的数量为第一数量;当各个角点的像素点的色彩数据的平均值与草地色彩阈值之间的比值小于阈值时,确定草插片的数量为第二数量。草插片的数量可以与各个角点的像素点的色彩数据的平均值与草地色彩阈值之间的比值正相关。这样,当各个角点的色彩数据增加时,草插片的数量也会相应增加,从而模拟草地更绿的地方对应的草就会更多。
通常情况下,草插片的顶点数量越多,可以提供更丰富的几何细节、更光滑的曲面和更细致的纹理映射,精度越高,渲染效果越好,但是增加草插片的顶点数量也导致更多的顶点计算和渲染操作,导致对硬件的要求越高;反之,草插片的顶点数量越少,草的外观相对简化或粗糙一些,精度越低,导致渲染效果有所下降,但是也能减少顶点计算和渲染操作,从而降低硬件的要求。
例如,当使用四个顶点构成两个三角形的菱形草插片,使得草插片更接近真实草的外观,但每个草插片需要渲染四个顶点,这对硬件的要求较高。相比之下,采用三个顶点构成三角形的草插片在逼真效果上稍有差距,但能降低对硬件的要求。
为了兼顾渲染效果以及渲染的处理开销,可以基于渲染区域中单位区域与渲染中心之间的渲染距离,确定需要向单位区域中***的草插片,草插片中的顶点数量与单位区域与渲染中心之间的渲染距离负相关。换句话说,单位区域与渲染中心之间的渲染距离越近,则向单位区域***的草插片的顶点数量越多,使得渲染效果更加逼真,单位区域与渲染中心之间的渲染距离越远,则向单位区域***的草插片的顶点数量越少,从而降低渲染产生的处理开销,降低硬件要求。尤其是,在以虚拟人物所处的位置作为渲染中心的情况下,使得虚拟人物远处的草地呈现细节较少、较少顶点数量的形态,而近处的草地则呈现更多的细节和顶点数量的形态,从而模拟出一种视觉透视效果,提升游戏的真实感和立体感。
在一种可能的实现中,草插片包括第一草插片以及第二草插片,第一草插片中的顶点数量大于第二草插片中的顶点数量,对渲染距离与距离阈值进行比较;响应于确定渲染距离小于或等于距离阈值,确定第一草插片;或者,响应于确定渲染距离大于或等于距离阈值,确定第二草插片。例如,当确定渲染距离小于或等于距离阈值,确定具有四个顶点的草插片(第一草插片),向单位区域***具有四个顶点的草插片,当确定渲染距离大于或等于距离阈值,确定具有三个顶点的草插片(第二草插片),向单位区域***具有三个顶点的草插片。距离阈值可以根据地形网格区域或者渲染区域的尺寸或者渲染效果的要求来设定。
在另一种可能的实现中,基于渲染距离以及第一对应关系,确定草插片。第一对应关系指示渲染距离以及第一数量之间的对应关系,草插片中的顶点数量为第一数量。对应关系可以使用数组、表格或函数来表示。例如,以渲染距离为索引,查找表格形式的第一对应关系,获得第一数量;从候选草插片中筛选具有第一数量的顶点的草插片。渲染距离以及第一数量之间的对应关系可以使用线性插值的方式计算得到。或者,使用指数函数来表示渲染距离和顶点数量之间的对应关系,让远距离的顶点数量呈指数减少。或者,使用曲线函数、多项式等拟合出非线性函数形式的第一对应关系,以获得更精确的顶点数量。
在一种可能的实现中,对地形网格区域中多个渲染区域之间的边界进行平滑处理。平滑处理是指对渲染区域之间的边界进行处理以减少不连续性、锯齿状或明显的过渡,使渲染边界更加自然和平滑。平滑处理的方式包括而不限于融合接缝、纹理过渡、法线平均、顶点缩放或者边缘模糊中至少一项。
融合接缝例如通过融合相邻渲染区域的纹理、颜色或其他属性来实现平滑过渡,可以通过在边界处绘制一个接缝区域,在接缝区域内进行纹理插值、颜色混合等操作来实现。接缝区域可以使用渐变和过渡效果以将相邻渲染区域的特征逐渐融合。纹理过渡例如使用多个纹理并通过混合技术将多个纹理进行过渡,以平滑渲染区域之间的边界。纹理过渡可以使用贴图融合、权重混合等技术来实现,通过调整纹理的透明度或使用Alpha贴图,可以控制不同纹理之间的过渡效果。法线平均例如使相邻渲染区域之间的法线向量平滑过渡。通过计算相邻面的法线方向,并进行平均化或插值处理,可以减少法线差异,并使边界更加平滑,使用平滑的法线可以产生更真实的渲染效果。顶点缩放例如通过调整相邻渲染区域边界上的顶点位置,使其在相邻区域之间逐渐过渡平滑,顶点缩放可以通过插值或权重化等方法来实现,使得相邻区域的高度和形状变化平滑过渡。边缘模糊例如在渲染边界周围应用模糊效果,以减少边缘的锯齿感和硬边缘现象。边缘模糊可以使用高斯模糊等算法对边界像素进行处理,并将边缘像素的颜色与周围像素进行平滑混合。
可选地,图1所示方法由一个计算设备执行。或者,图1所示方法由包括多个计算设备的计算设备集群协同执行。例如,计算设备A执行图1所示方法中S110,计算设备B执行图1所示方法中S120。计算设备例如为终端或者服务器。在一种可能的实现中,附图1所示方法由计算设备通过运行应用程序执行。应用程序例如为浏览器软件或者客户端软件,本实施例对图1所示方法的执行主体不做限定。
图5是本申请实施例提供的一种地形渲染装置的结构示意图,图5所示的装置500包括:
获取模块510,用于基于取样图像中像素点的参数,获得多个地形纹理图在像素点的混合比例数据;
渲染模块520,用于基于多个地形纹理图和混合比例数据,对地形网格区域中像素点对应的顶点进行渲染。
在一种可能的实现方式中,渲染模块520,用于基于混合比例数据对多个地形纹理图进行混合,得到混合纹理图;基于混合纹理图,对地形网格区域中像素点对应的顶点进行渲染。
在一种可能的实现方式中,混合比例数据包括多个地形纹理图中每个地形纹理图的权重,获取模块510,用于基于取样图像中像素点的颜色通道的值,获取与颜色通道对应的地形纹理图在像素点的权重。
在一种可能的实现方式中,多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,获取模块510,用于基于取样图像中像素点的红通道的值,获取第一地形纹理图在像素点的权重,第一地形纹理图对应红通道;基于取样图像中像素点的蓝通道的值,获取第二地形纹理图在像素点的权重,第二地形纹理图对应蓝通道;基于取样图像中像素点的绿通道的值,获取第三地形纹理图在像素点的权重,第三地形纹理图对应绿通道;基于取样图像中像素点的不透明通道的值,获取第四地形纹理图在像素点的权重,第四地形纹理图对应不透明通道。
在一种可能的实现方式中,取样图像包括N个分区取样图像,地形网格区域包括N个渲染区域;
渲染模块520,用于基于第M分区取样图像获取第M混合比例数据;基于多个地形纹理图和第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染;其中,N为大于1的整数,M为小于等于N的正整数。
在一种可能的实现方式中,渲染模块520,用于基于第M混合比例数据,对多个地形纹理图进行混合,得到第M混合纹理图;基于第M混合纹理图,对第M渲染区域中的像素点对应的顶点进行渲染。
在一种可能的实现方式中,多个地形纹理图包括K个地形纹理图集合,取样图像包括K个同区取样图像;
获取模块510,用于基于第L同区取样图像中像素点的参数,获得第L地形纹理图集合中的地形纹理图在像素点的第L比例数据;全部的第L比例数据构成混合比例数据;
其中,K为大于1的整数,L为小于等于K的正整数。
在一种可能的实现方式中,获取模块510,还用于基于取样图像像素点的每个颜色通道的值,获得地形网格区域的渲染数据;
渲染模块520,还用于基于渲染数据向地形网格区域***草插片。
在一种可能的实现方式中,渲染模块520,用于响应于确定地形网格区域中单位区域内的渲染数据满足草地纹理特征,向单位区域内***草插片。
在一种可能的实现方式中,渲染模块520,用于基于渲染数据指示的草地纹理的占比,确定草插片的数量,草插片的数量与草地纹理的占比正相关;向单位区域中***数量的草插片。
在一种可能的实现方式中,渲染模块520,用于基于渲染数据以及地形网格区域中单位区域与渲染中心之间的距离,确定草插片,草插片包括至少一个顶点,草插片中的顶点数量与距离负相关;向单位区域中***草插片。
在一种可能的实现方式中,草插片包括第一草插片以及第二草插片,第一草插片中的顶点数量大于第二草插片中的顶点数量,渲染模块520,用于响应于确定距离小于或等于距离阈值,确定第一草插片;或者,响应于确定距离大于或等于距离阈值,确定第二草插片。
在一种可能的实现方式中,获取模块510,用于基于取样图像中像素点的灰度值,获得与灰度值对应的地形纹理图在像素点的混合比例数据;或者,基于取样图像中像素点的透明度通道的值,获得与透明度通道对应的地形纹理图在像素点的混合比例数据;或者,基于取样图像中像素点的高度值,获得与高度值对应的地形纹理图在像素点的混合比例数据。
上述实施例提供的地形渲染装置在渲染地形时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将地形渲染装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的地形渲染装置与地形渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种服务器的结构示意图,服务器600包括:处理器601,处理器601与存储器602耦合,存储器602中存储有至少一条计算机程序指令,至少一条计算机程序指令由处理器601加载并执行,以使服务器600实现图1实施例提供的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一地形纹理图和第二地形纹理图用于区别不同的地形纹理图,而不是用于描述地形纹理图的特定顺序,也不能理解为第一地形纹理图比第二地形纹理图更重要。
本申请实施例所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的地形纹理图都是在充分授权的情况下获取的。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个地形纹理图是指两个或两个以上的地形纹理图。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (16)

1.一种地形渲染方法,其特征在于,所述方法包括:
基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据;
基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染,包括:
基于所述混合比例数据对多个地形纹理图进行混合,得到混合纹理图;
基于所述混合纹理图,对所述地形网格区域中所述像素点对应的顶点进行渲染。
3.根据权利要求2所述的方法,其特征在于,所述混合比例数据包括所述多个地形纹理图中每个地形纹理图的权重,所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于取样图像中所述像素点的颜色通道的值,获取与所述颜色通道对应的地形纹理图在所述像素点的权重。
4.根据权利要求3所述的方法,其特征在于,所述多个地形纹理图包括第一地形纹理图、第二地形纹理图、第三地形纹理图以及第四地形纹理图,所述基于取样图像中所述像素点的颜色通道的值,获取与所述颜色通道对应的地形纹理图在所述像素点的权重,包括:
基于取样图像中所述像素点的红通道的值,获取所述第一地形纹理图在所述像素点的权重,所述第一地形纹理图对应所述红通道;
基于取样图像中所述像素点的蓝通道的值,获取所述第二地形纹理图在所述像素点的权重,所述第二地形纹理图对应所述蓝通道;
基于取样图像中所述像素点的绿通道的值,获取所述第三地形纹理图在所述像素点的权重,所述第三地形纹理图对应所述绿通道;
基于取样图像中所述像素点的不透明通道的值,获取所述第四地形纹理图在所述像素点的权重,所述第四地形纹理图对应所述不透明通道。
5.根据权利要求1所述的方法,其特征在于,所述取样图像包括N个分区取样图像,所述地形网格区域包括N个渲染区域;
所述基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染,包括:
基于所述第M分区取样图像获取第M混合比例数据;
基于所述多个地形纹理图和所述第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染;
其中,N为大于1的整数,M为小于等于N的正整数。
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个地形纹理图和所述第M混合比例数据,对第M渲染区域中的像素点对应的顶点进行渲染,包括:
基于所述第M混合比例数据,对所述多个地形纹理图进行混合,得到所述第M混合纹理图;
基于所述第M混合纹理图,对所述第M渲染区域中的像素点对应的顶点进行渲染。
7.根据权利要求1所述的方法,其特征在于,所述多个地形纹理图包括K个地形纹理图集合,所述取样图像包括K个同区取样图像;
所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于所述第L同区取样图像中像素点的参数,获得第L地形纹理图集合中的地形纹理图在所述像素点的第L比例数据;
全部的第L比例数据构成所述混合比例数据;
其中,K为大于1的整数,L为小于等于K的正整数。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述取样图像所述像素点的每个颜色通道的值,获得所述地形网格区域的渲染数据;
基于所述渲染数据向所述地形网格区域***草插片。
9.根据权利要求8所述的方法,其特征在于,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
响应于确定所述地形网格区域中单位区域内的渲染数据满足草地纹理特征,向所述单位区域内***所述草插片。
10.根据权利要求8所述的方法,其特征在于,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
基于所述渲染数据指示的草地纹理的占比,确定所述草插片的数量,所述草插片的数量与所述草地纹理的占比正相关;
向所述单位区域中***所述数量的所述草插片。
11.根据权利要求8所述的方法,其特征在于,所述基于所述渲染数据向所述地形网格区域***草插片,包括:
基于所述渲染数据以及所述地形网格区域中单位区域与所述渲染中心之间的距离,确定草插片,所述草插片包括至少一个顶点,所述草插片中的顶点数量与所述距离负相关;
向所述单位区域中***所述草插片。
12.根据权利要求11所述的方法,其特征在于,所述草插片包括第一草插片以及第二草插片,所述第一草插片中的顶点数量大于所述第二草插片中的顶点数量,所述基于所述渲染数据以及所述地形网格区域中单位区域与所述渲染中心之间的距离,确定草插片,包括:
响应于确定所述距离小于或等于距离阈值,确定所述第一草插片;或者,
响应于确定所述距离大于或等于距离阈值,确定所述第二草插片。
13.根据权利要求1所述的方法,其特征在于,所述基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据,包括:
基于取样图像中所述像素点的灰度值,获得与灰度值对应的地形纹理图在所述像素点的混合比例数据;或者,
基于取样图像中所述像素点的透明度通道的值,获得与透明度通道对应的地形纹理图在所述像素点的混合比例数据;或者,
基于取样图像中所述像素点的高度值,获得与高度值对应的地形纹理图在所述像素点的混合比例数据。
14.一种地形渲染装置,其特征在于,包括:
获取模块,用于基于取样图像中像素点的参数,获得多个地形纹理图在所述像素点的混合比例数据;
渲染模块,用于基于所述多个地形纹理图和所述混合比例数据,对所述地形网格区域中所述像素点对应的顶点进行渲染。
15.一种服务器,其特征在于,所述服务器包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述服务器实现权利要求1-13中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-13中任一项所述的方法。
CN202311172675.XA 2023-09-12 2023-09-12 地形渲染方法及装置 Pending CN117197275A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311172675.XA CN117197275A (zh) 2023-09-12 2023-09-12 地形渲染方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311172675.XA CN117197275A (zh) 2023-09-12 2023-09-12 地形渲染方法及装置

Publications (1)

Publication Number Publication Date
CN117197275A true CN117197275A (zh) 2023-12-08

Family

ID=88992025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311172675.XA Pending CN117197275A (zh) 2023-09-12 2023-09-12 地形渲染方法及装置

Country Status (1)

Country Link
CN (1) CN117197275A (zh)

Similar Documents

Publication Publication Date Title
US11386528B2 (en) Denoising filter
US20190266788A1 (en) System and method of rendering a surface
US20070253640A1 (en) Image manipulation method and apparatus
US7265761B2 (en) Multilevel texture processing method for mapping multiple images onto 3D models
CN110115841B (zh) 一种游戏场景中植被对象的渲染方法和装置
JP3626144B2 (ja) 立体オブジェクトデータからの漫画的表現の2次元画像の生成方法および生成プログラム
CN112169324A (zh) 游戏场景的渲染方法、装置及设备
CN106898040A (zh) 虚拟资源对象渲染方法和装置
CN113457137B (zh) 游戏场景生成方法、装置、计算机设备及可读存储介质
CN110610504A (zh) 基于骨架与色调的铅笔画生成方法及装置
CA2227502C (en) Method and system for determining and or using illumination maps in rendering images
CN117197275A (zh) 地形渲染方法及装置
CN115761138A (zh) 三维房屋模型确定方法、装置、电子设备和存储介质
CN117475053A (zh) 草地渲染方法及装置
CN116485981A (zh) 三维模型贴图制作方法、装置、设备及存储介质
CN117197276A (zh) 草地渲染方法及装置
CN115409932A (zh) 一种三维人头脸模型的纹理映射与补全方法
Kennelly et al. Non-photorealistic rendering and terrain representation
CN111462343B (zh) 数据处理方法、装置、电子设备及存储介质
US20240193864A1 (en) Method for 3d visualization of sensor data
CN107481184A (zh) 一种低多边形风格图生成交互***
CN115888103A (zh) 游戏的显示控制方法、装置、计算机设备和介质
Cheok et al. Humanistic Oriental art created using automated computer processing and non-photorealistic rendering
Zhao Interactive texture replacement of cartoon characters based on deep learning model
JP4585298B2 (ja) 描画方法及びその装置

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