CN109920038B - 一种生成地形混合贴图材质的方法 - Google Patents
一种生成地形混合贴图材质的方法 Download PDFInfo
- Publication number
- CN109920038B CN109920038B CN201811580261.XA CN201811580261A CN109920038B CN 109920038 B CN109920038 B CN 109920038B CN 201811580261 A CN201811580261 A CN 201811580261A CN 109920038 B CN109920038 B CN 109920038B
- Authority
- CN
- China
- Prior art keywords
- zone
- terrain
- weight
- map
- offset
- 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.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
一种生成地形混合贴图材质的方法,其特征在于,包括以下步骤:1)统计地形包含的混合贴图材质种类;2)将所述混合贴图材质种类进行排序;3)为所述混合贴图材质制作对应的权重图;4)将所述地形以zone为单位进行拆分;5)将所述权重图拆分为权重分图;6)将拆分后相同zone内的所述权重分图相互混合,重新计算所述权重分图像素权重;7)将所述权重数据送入绘制shader,参与所述地形绘制计算。本发明的生成地形混合贴图材质的方法,可以提高生成地形混合贴图材质的速度与效率和效果。
Description
技术领域
本发明涉及游戏引擎技术领域,特别是涉及一种生成地形混合贴图材质的方法。
背景技术
随着互联网技术的出现,互联网游戏应运而生。游戏场景作为游戏玩家在游戏中主要的活动场所,起到表达游戏世界地面整体外观的作用。传统方法在进行游戏地形编辑的时候,首先需要选择刷新在游戏地形上混合贴图类型,然后通过游戏引擎提供的笔刷工具,在选择笔刷类型(添加/删除)/形状/尺寸/混合强度等参数后,手动刷新在地形表面。由于这种方法使用过程中需要大量的手动操作,而且要求操作人员拥有一定的美术功底。因此操作过程繁琐耗时,对制作的过程也难以上手。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种生成地形混合贴图材质的方法,可以提高生成地形混合贴图材质的速度与效率和效果。
为实现上述目的,本发明提供的生成地形混合贴图材质的方法,包括以下步骤:
1)统计地形包含的混合贴图材质种类;
2)将所述混合贴图材质种类进行排序;
3)为所述混合贴图材质制作对应的权重图;
4)将所述地形以zone为单位进行拆分;
5)将所述权重图拆分为权重分图;
6)将拆分后相同zone内的所述权重分图相互混合,重新计算所述权重分图像素权重;
7)将所述权重数据送入绘制shader,参与所述地形绘制计算。
进一步地,所述步骤3)进一步包括,设置所述权重图的取值范围,所述权重图的大小与所述地形大小对应成比例。
进一步地,所述步骤5)进一步包括,
计算所述地形中心坐标OT相对于所述权重图中心坐标OW的偏移量offset_xz,
offset_xz.x = OW.x - OT.x
offset_xz.z = OW.z - OT.z;
计算所述地形和所述权重图在uv坐标系中的原点偏移量offset_uv,
offset_uv.u = WidthT * 0.5 - Widthw * 0.5 + offset_xz.x
offset_uv.v = HeightT * 0.5 - Heightw * 0.5 + offset_xz.z;
遍历所述权重图的所有像素,将权重图像素uv坐标uw和vw转换为地形uv坐标ut和vt,
ut = uw + offset_uv.u
vt = vw + offset_uv.v;
计算所述zone的长度,
Widthzone = WidthT / c
Heightzone = HeightT / r;
计算所述权重图像素在所述zone的行号i和列号j,
i = ut / Widthzone
j = vt / Heightzone;
计算所述权重图像素在所述zone内的uv坐标uzone和vzone,
uzone = ut – i * Widthzone
vzone = vt – j * Heightzone。
进一步地,还包括,根据所述uzone和vzone,将所述权重图像素值写入到zone上,并保存到磁盘。
进一步地,所述步骤6)进一步包括,
遍历Z0至Zn中每一个像素;
设当前位置像素权重值为mask = 1.0,像素值为pixeli;
将像素值pixeli转换为浮点值alphai;
Alphai = pixeli / 255。
进一步地,还包括,重新计算Z0至Zn的像素值alphai:
alphai = alphai * mask
mask = alphai。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行如上文所述的生成地形混合贴图材质的方法步骤。
为实现上述目的,本发明还提供一种生成地形混合贴图材质设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行如上文所述的生成地形混合贴图材质的方法步骤。
本发明的生成地形混合贴图材质的方法,具有以下有益效果:
1)提供一种通过导入图片,快速生成地形混合贴图材质的方法,提高生成地形混合贴图材质的速度与效率和效果。
2)通过对每一种地形材质,指定一张分布权重图。并根据真实地形构造情况进行分层排序后。通过地形材质的分布权重图,重新计算材质的混合权重。通过计算结果,生成混合后的地形材质,无需大量手动操作,节省人力成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的生成地形混合贴图材质的方法流程图;
图2为根据本发明的生成地形效果图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的生成地形混合贴图材质的方法流程图,下面将参考图1,对本发明的生成地形混合贴图材质的方法进行详细描述。
首先,在步骤101,统计地形包含的混合贴图材质种类。该步骤中,首先统计整个场景内地形包含的混合贴图材质种类,这里假设场景内包含M0到Mn一共n+1种材质类型。
在步骤102,将所述混合贴图材质种类进行排序。该步骤中,按照类似于地质学中的地址剖面,从地形地表到地底,地层构造出现的顺序,对0到n种混合贴图材质排序。排序后的材质仍然命名为M0到Mn。
在步骤103,为所述混合贴图材质制作对应的权重图。该步骤中,由美术人员为混合贴图材质M0到Mn制作对应的权重图W0到Wn。这里权重图的“权重”指的是,图上每个像素的值的大小,决定该权重图代表的地形混合贴图材质,在该像素位置上所占权重比例的多少。
优选地,设置所述权重图的取值范围,所述权重图的大小与所述地形大小对应成比例。该步骤中,W0到Wn制作为8位单通道格式,也就是说图上每个像素值大小为1字节,取值范围为0~255。W0到Wn的大小由场景地形的大小(或任意大小)和地形单位长度对应像素值多少来决定。如果地形单位长度为1,每个单位长度对应权重图上两个像素。则制作出的W0到Wn尺寸应为地形尺寸的2倍。W0到Wn长宽应相同。
在步骤104,将所述地形以zone为单位进行拆分。该步骤中,设混合贴图材质的导入范围为整个地形(或任意范围但保持长宽相等),平均的将地形范围划分成r行c列长宽相等的矩形范围,每个划分出的范围用zone表示。
在步骤105,将所述权重图拆分为权重分图。该步骤中,将W0到Wn均匀拆分为r * c张小图片,这样,该步骤的目的是不会由于W0到Wn尺寸过大,加载至内存后使内存爆掉。
优选地,设地形中心世界坐标系位置为OT,W0到Wn贴图中心世界坐标系位置为OW。计算得到地形中心OT相对于权重图W0到Wn图片中心位置OW在世界坐标系XZ平面上的偏移offset_xz。其中:
offset_xz.x = OW.x - OT.x
offset_xz.z = OW.z - OT.z
将地形范围和图片W0到Wn,切换到图片uv坐标系(坐标系原点在各自范围的左上角,水平向右为坐标轴u+,垂直向下方向为坐标轴v+)。设地形长宽为WidthT和HeightT,W0到Wn图片长宽为Widthw和Heightw。
设地形范围和图片W0到Wn的uv坐标系原点偏移为offset_uv
offset_uv.u = WidthT * 0.5 - Widthw * 0.5 + offset_xz.x
offset_uv.v = HeightT * 0.5 - Heightw * 0.5 + offset_xz.z
按照遍历行的顺序,遍历图片W0到Wn中的所有像素,图片像素uv坐标系坐标为 uw和 vw。 转换为地形uv坐标系坐标ut和vt
ut = uw + offset_uv.u
vt = vw + offset_uv.v
由于地形被划分为r行c列因此每个zone的长宽为
Widthzone = WidthT / c
Heightzone = HeightT / r
通过地形范围uv坐标计算得到像素所在的zone行列序号i和j
i = ut / Widthzone
j = vt / Heightzone
继而计算得到像素在zone对应小图片内部的uv坐标uzone和vzone。
uzone= ut – i * Widthzone
vzone = vt – j * Heightzone
按照zone对应小图片的uv坐标,将像素值写入到小图片上,并保存到磁盘。
在步骤106,将拆分后相同zone内的所述权重分图相互混合,重新计算所述权重分图像素权重。该步骤中,按照zone排列的行列顺序关系,针对每个zone都会从W0至Wn的指定像素区域生成分割后的图片Z0至Zn。对每个zone的Z0至Zn的像素值做混合,计算Z0至Zn图片像素新的权重值。
优选地,所述步骤106进一步包括,从Z0至Zn每个相同位置像素值的计算方法为:
遍历Z0至Zn中每一个像素,设当前位置像素权重值为mask = 1.0,像素值为pixeli(i>= 0 且i <= n , pixeli >= 0 且pixeli<= 255)。
将像素值pixeli转换为浮点值alphai
Alphai = pixeli / 255 (Alphai >= 0.0 且 Alphai <= 1.0)
重新计算Z0至Zn的像素值alphai:
alphai = alphai * mask
mask = alphai
在步骤107,将所述权重数据送入绘制shader,参与所述地形绘制计算。该步骤中,将混合后权重图送入地形Shader,参与地形zone的绘制,假设地形Pix Shader中某混合贴图采样像素颜色为color,采样权重图权重为alpha,则该像素受权重影响的结果为:
color = color * alpha
优选地,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行如上文所述的生成地形混合贴图材质的方法步骤。
优选地,本发明还提供一种终端设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行如上文所述的支持生成地形混合贴图材质的方法步骤。
优选地,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行如上文所述的生成地形混合贴图材质的方法步骤。
优选地,本发明还提供一种生成地形混合贴图材质设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行如上文所述的生成地形混合贴图材质的方法步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种生成地形混合贴图材质的方法,包括以下步骤:
1)统计地形包含的混合贴图材质种类;
2)将所述混合贴图材质种类进行排序;
3)为所述混合贴图材质制作对应的权重图;
4)将所述地形以zone为单位进行拆分;
5)将所述权重图拆分为权重分图;
6)将拆分后相同zone内的所述权重分图相互混合,重新计算所述权重分图像素权重;
7)将所述权重数据送入绘制shader,参与所述地形绘制计算。
2.根据权利要求1所述的方法,其特征在于,所述步骤3)进一步包括,设置所述权重图的取值范围,所述权重图的大小与所述地形大小对应成比例。
3.根据权利要求1所述的方法,其特征在于,所述步骤5)进一步包括,
计算所述地形中心坐标OT相对于所述权重图中心坐标OW的偏移量offset_xz,
offset_xz.x = OW.x - OT.x
offset_xz.z = OW.z - OT.z;
计算所述地形和所述权重图在uv坐标系中的原点偏移量offset_uv,
offset_uv.u = WidthT * 0.5 - Widthw * 0.5 + offset_xz.x
offset_uv.v = HeightT * 0.5 - Heightw * 0.5 + offset_xz.z;
遍历所述权重图的所有像素,将权重图像素uv坐标uw和vw转换为地形uv坐标ut和vt,
ut = uw + offset_uv.u
vt = vw + offset_uv.v;
计算所述zone的长度,
Widthzone = WidthT / c
Heightzone = HeightT / r;
计算所述权重图像素在所述zone的行号i和列号j,
i = ut / Widthzone
j = vt / Heightzone;
计算所述权重图像素在所述zone内的uv坐标uzone和vzone,
uzone = ut – i * Widthzone
vzone = vt – j * Heightzone。
4.根据权利要求3所述的方法,其特征在于,还包括,根据所述uzone和vzone,将所述权重图像素值写入到zone上,并保存到磁盘。
5.根据权利要求1所述的方法,其特征在于,所述步骤6)进一步包括,
遍历Z0至Zn中每一个像素;
设当前位置像素权重值为mask = 1.0,像素值为pixeli;
将像素值pixeli转换为浮点值alphai;
Alphai = pixeli / 255。
6.根据权利要求5所述的方法,其特征在于,还包括,重新计算Z0至Zn的像素值alphai:
alphai = alphai * mask
mask = alphai。
7.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至6任一项所述的生成地形混合贴图材质的方法步骤。
8.一种生成地形混合贴图材质设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行权利要求1至6任一项所述的生成地形混合贴图材质的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580261.XA CN109920038B (zh) | 2018-12-24 | 2018-12-24 | 一种生成地形混合贴图材质的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580261.XA CN109920038B (zh) | 2018-12-24 | 2018-12-24 | 一种生成地形混合贴图材质的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109920038A CN109920038A (zh) | 2019-06-21 |
CN109920038B true CN109920038B (zh) | 2022-07-15 |
Family
ID=66959962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811580261.XA Active CN109920038B (zh) | 2018-12-24 | 2018-12-24 | 一种生成地形混合贴图材质的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109920038B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112675545B (zh) * | 2021-01-07 | 2022-12-13 | 腾讯科技(深圳)有限公司 | 地表仿真画面的显示方法和装置、存储介质及电子设备 |
CN113181642B (zh) * | 2021-04-29 | 2024-01-26 | 网易(杭州)网络有限公司 | 一种具有混合材质的墙体模型的生成方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105321200B (zh) * | 2015-07-10 | 2018-03-06 | 苏州蜗牛数字科技股份有限公司 | 离线渲染的预处理方法 |
CN105957133B (zh) * | 2016-05-10 | 2018-06-05 | 网易(杭州)网络有限公司 | 一种加载贴图的方法和装置 |
CN106780642B (zh) * | 2016-11-15 | 2020-07-10 | 网易(杭州)网络有限公司 | 迷雾遮罩贴图的生成方法及装置 |
-
2018
- 2018-12-24 CN CN201811580261.XA patent/CN109920038B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109920038A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7095418B2 (en) | Apparatus and methods for texture mapping | |
US20170200301A1 (en) | Apparatus and method of image rendering | |
KR100896155B1 (ko) | 내장형 디바이스의 플렉시블 안티에일리어싱 | |
CN100481890C (zh) | 图像特效设备、图形处理器和记录方法 | |
CN113947657B (zh) | 目标模型的渲染方法、装置、设备及存储介质 | |
CN1155715A (zh) | 轮廓边缘的去混叠 | |
CN109920038B (zh) | 一种生成地形混合贴图材质的方法 | |
CN109035383A (zh) | 一种体积云的绘制方法、装置及计算机可读存储介质 | |
TW201541403A (zh) | 用於紋理映射至非正交網格的梯度調整 | |
CN107610225B (zh) | 一种倾斜摄影实景三维模型单体化方法 | |
CN109584366B (zh) | 一种地形渲染方法、装置、设备及可读存储介质 | |
CN110841293B (zh) | 一种自动动态输出游戏贴图合适度的方法和系统 | |
WO2022148292A1 (zh) | 地表虚拟画面的显示方法和装置、存储介质及电子设备 | |
CN111508054B (zh) | 地形构建方法、装置及设备 | |
WO2005073925A1 (en) | Image rendering with multi-level z-buffers | |
CN106447761A (zh) | 一种阴影渲染方法 | |
CN108154543B (zh) | 确定游戏贴图尺寸的方法、装置及存储介质 | |
US9208611B2 (en) | System and method for displaying 3-dimension map using texture mapping | |
CN105574934A (zh) | 一种基于lod绘制树模型实例的方法和装置 | |
CN1256707C (zh) | 基于多样图的纹理合成方法 | |
CN104079915B (zh) | 一种并行虚拟视点合成方法 | |
CN108553902A (zh) | 一种基于ue引擎的多维材质的变换方法 | |
CN108776987A (zh) | 一种基于屏幕空间的模型轮廓绘制方法 | |
US11620820B1 (en) | Repetition reduction for real-time tile-based texture synthesis of aerial imagery | |
CN113822997B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |