设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 游戏开发 >> 地面凹陷
精品推荐
游戏开发点击TOP10
·DirectX5.0最新游戏编程指南 DirectDraw教程篇 二、第一个DirectDraw实例
·用Excel编写小游戏
·五子棋的原代码
·游戏开发方面相关的电子书下载
·游戏文件系统的解决方案
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
·用MFC构造DirectX应用框架
·游戏开发开门
·《Windows游戏编程大师技巧》(第二版)第11章
·DirectX8.1的DirectDraw7研究手记(三)
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

地面凹陷

作者: 来源:网络文章 时间:2005-12-17 23:10:35

 

2D 游戏中有许多技巧来获得比较好的视觉效果, 使游戏更加吸引人. 最常见的是使用 Alpha 通道来做光影, 好象被人用烂了 ;-) 我们需要来点新奇的东西?

留意 Starcraft, C&C II 等新点的游戏中都使用过一种,爆炸后地面波动起伏的效果. 下面我们来实现它:

5799 字节2000/gamedev/tips/grid.gif" width=240 align=left> 首先是对 2D 平面做一些变形. 让人感受到立体的感觉. 算法是非常简单的, DXGuide 主页上有篇专门的文章讲解 图象扭曲算法. 这里我就偷懒不写了 ;-) 这里要实现特定的效果, 关键在于变形网格的制作. 简述下云风的方法: 在 3DMAX 里制作一个平面. 单位多边形网格为 1:2 的长方形. 这里我制作了一个 15x7 格大小的平面, 选择正中间一格让它凹陷. 注意, 为了处理方便, 我们是从扭曲的网格向方形网格映射, 而不是 3D 引擎中常用的从方形纹理向三维空间的多边形映射. 所以我们需要的变形网格还需要旋转 180 度, 也就是说, 当要做凹陷效果时, 网格数据是凸起的. 然后旋转摄象机 30 度, 关闭透视矫正 (一般我们的 2D 游戏都使用这个视角, 不是吗?). 我想你还记得前面我们的单位网格是 1:2 的长方形, 现在它们看起来是 1:1 的正方形了. 将这张图 render 出来, 记得只 render 方的框架, 好象左边你看到的那张图一样. 这张图是被缩放到 240x112 大小的, 刚好满足每个格子的面积为 16x16. 记得格子的边长必须是 2 的整数次幂哟, 这关系到变形算法的速度. ok, 使用你能想到的方法取出图上的格子的顶点. (我自己写了个小程序, 计算机辅助人工记录每个顶点) 下面就可以扭曲 2D 图形了.

无光线处理(5792 字节) 有光线处理(5153 字节)
图一 图二

5266 字节 这样做出来的效果(图一)会让人感觉怪怪的, 好象隔着一个凹镜看着图片, 而没有凹陷的感觉. 为什么呢? 因为当地面下陷的时候, 光线也会随着变化. 所以我们还需要有一个光照图. 看右边这张图, 坑的左边比较暗, 右边比较亮. 处理的时候, 我们把四角作为基本亮度, 比基本亮度小的地方, 减去相应的亮度; 比基本亮度大的地方, 加上对应的亮度值. (这个处理在风魂的下个版本将提供) 经过这个光线处理步骤. 效果就相当真实了 (图二 ;-) 你可以下载云风做的一个 简单的例子(70k). 源码由于使用了 风魂 正在开发的下一个版本, 所以暂不提供.

 


地面凹陷 相关文章:
地面凹陷 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com