魔兽争霸地貌拼接方式

来源:互联网 发布:二战苏军战斗力知乎 编辑:程序博客网 时间:2024/05/01 12:49

先看图片

http://hi.csdn.net/attachment/201109/7/979141_1315404194Eh6m.jpg

 

每个块的图片由4周围4个脚的地貌计算得出。

算法如下。

1.地貌编号0-5,低编码的可以被高编码的覆盖。

2.每种地形图片中,设编码1-15.(0保留,和15其实是一回事),魔兽里面还有16-31的随机填充块,这里简化掉。

用位代表本块覆盖的角。比如左上,右上,左下,右下编码为,1,2,4,8

由此,1-15代表了地形的各种覆盖方向.

3.计算本块图层方法。

排序4个角,并去掉重复的数字,存为数组A,此时留下n个不同的地貌编号。(n=1到4)

for(int i=0;i<n;++i)

 计算等于A[i]角的编码和,存到tile[i];

4.绘制时,对每个tile,绘制0-n层。

比如左上(0,0)块,其周围4个角的地貌编码为

0, 0

5, 5

所以tile[0]=0x00+0;tile[1]=0x500+12

 

最下一层你要计算编码也可以,我这里这么做是为了防止底层遮盖不完全,留出空洞。所以底层完全填充。

 

因为每个块只有4个角,所以每块贴图次数是1到4,d3d的话,4层贴图搞定。

 

原创粉丝点击