李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(15)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 327352
  • 排名 - 58

最新评论

阅读排行榜

评论排行榜

源码已发布,请打开下载http://www.cppblog.com/mybios/archive/2008/10/31/65636.html
上次发了个这样的图,结果被某些人鄙视了,很郁闷啊。

我们把一个魔兽3的草地贴图提取出来,并且用下面的分块方法来标示每一块小贴图,然后通过一种特定的方式来组织这些小贴图,形成真正的地表贴图。
魔兽争霸编辑器中刷地表时,刷一格就会影响四个周围的渲染块,具体如何影响?请看下图:

这是贴图的分块索引方法:




通过魔兽争霸地图编辑器点一下刷地表草之后,在地图中就会出现一小块绿色草地地表,请注意在图中我用数字1、2、4、8来表示四个渲染块对应的贴图索引,而这个1、2、4、8是固定的。代表的是相对于笔刷位置(笔刷位置是指周围四个渲染块中间位置)来说,左下角的角落贴图索引是1;右下角的角落贴图索引是2;左上角的角落贴图索引是4;右上角的角落贴图索引是8。如下图所示:



如果在已经有草地的地表旁边再点一下刷地表,会刷成如下图这个样子:
看明白8+4=12没有?这里是两个角落贴图索引相加后的结果,得到12,就从文章开头的索引贴图中找到12对应的小贴图贴上去。
2+1=3同理,用两个角落贴图索引相加后的结果3从索引贴图中找到3对应的小贴图贴上去。
这样得到的效果就会变成如下图:



这里有是更复杂的情况,有三个角落相加,1+8+4=13,不过道理都是一样的。


最后说一下四周都有贴图的情况,看到中间笔刷位置没有?笔刷左上方有一个贴图,对应的是贴图索引中的0,这是因为他四个角都填充了,所以就需要从0、16~31中随机选择一个小贴图贴上去以完整的填充整个渲染块:


至此贴图选择的方法已经说完了。
至于渲染的方法,都是大同小异,这里就不多说了。


如果本文对你的开发有所帮助,并且你手头恰好有零钱。

不如打赏我一杯咖啡,鼓励我继续分享优秀的文章。




posted on 2008-10-26 12:16 李锦俊(mybios) 阅读(8872) 评论(11)  编辑 收藏 引用 所属分类: 3D引擎开发

Feedback

# re: 魔兽争霸3的自动拼接地形渲染方式 2008-11-01 09:23 hyp
好亲切啊 我看到了魔兽地图编辑器  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2008-11-02 20:37 Touchsoft
我上次看了,可没有BS你 :)
不要轻易被别人惹恼。下来看看。  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-01-15 17:55 learn
如果在同一个坐标,点击了两下该如何判断  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-01-16 11:47 李锦俊
@learn
那一般情况下结果不变,除非是0、16~31的图层就可以随机重新自动选择。从而多样化。  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-01-16 13:56 learn
谢谢你,我最近在研究这个,对于你所说的结果不变。我想应该是通过什么来判断, 4+4 8+8 1+1 2+2。代码中画纹理的那一部分我看的不是很明白。  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-05-12 09:25 yafare
Good job.  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-07-10 15:05 realizz
请问用的什么工具转化blp文件?我用的BLPConv转化出来的图片不像你的图片那样有空白区,而是有颜色的。  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2009-07-12 08:20 vsc
楼上的,你用photoshop看看通道,里面有alpha通道,设为可见就有透明度了  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2010-03-18 10:12 小熙
你好,当拉近看地表纹理时,可以看到接缝,如何解决这个问题啊  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2011-05-20 07:25 lhc
也可以用4个角的位码理解
1010
1100...  回复  更多评论
  

# re: 魔兽争霸3的自动拼接地形渲染方式 2011-10-16 14:04 TasNat
我用Delphi
实现了一下
目前有个和learn 一样的问题.
不能点两次
怎么检测 已经+过了???  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理