热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

魔兽争霸3的自动拼接地形渲染方式

源码已发布,请打开下载http:www.cppblog.commybiosarchive2008103165636.html上次发了个这样的图,结果被某些人鄙视了,很郁闷啊。我们把一个

源码已发布,请打开下载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中随机选择一个小贴图贴上去以完整的填充整个渲染块:


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

 


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
author-avatar
手机用户2502875023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有