代码改变世界

SilverXna初体验:基本游戏框架——古老的三段式

2011-09-01 21:42 by 独孤残云, 2913 阅读, 5 推荐, 收藏, 编辑
摘要: 今年上半年,微软Silverlight5 Beta发布,随之而来的是更多的惊喜与更加亮眼的新特性。 其中最令我在意的一点便是针对Xna 3D API的支持,虽然目前Silverlight5 Beta版中的Xna还只是完整Xna框架中的一个轻量子集,但自此之后web3D已再不是遥不可及的抽象概念~ 本节我们就以一个古老的三段式框架为例,看Silverlight如何帮我们将Xna实实在在的嵌入到网页中 ^ ^ 阅读全文

Direct3D轮回:游戏特效之全屏泛光(Bloom)

2011-08-25 20:40 by 独孤残云, 9907 阅读, 6 推荐, 收藏, 编辑
摘要: Bloom又称“全屏泛光”,是大名鼎鼎的虚幻3游戏引擎中最通用的后期特效技术~ Bloom特效的实现主要依赖于PostProcess框架,即实时绘制当前场景到一后台渲染表面,而后针对其对应贴图进行像素级渲染~ 大家还记得我们之前实现的水面效果中的反射和折射贴图吗?此即为PostProcess的典型应用,与Bloom特效有异曲同工之妙。 本篇,我们就来揭秘这个Bloom特效的实现流程~ 阅读全文

Direct3D轮回:游戏特效之风动、雾化

2011-08-14 09:56 by 独孤残云, 3888 阅读, 0 推荐, 收藏, 编辑
摘要: 风动和雾化都是相对而言比较简单的游戏特效,实现起来甚至比我们前一节提到的晴天光晕还要简单。 大家还记得上上节中我们为陆地种植的那片植被吗?现在我们在场景中加入风的效果,让草儿动起来。 而雾化特效是D3D设备自身携带的一种效果,我们只需打开几个状态开关并设置一下相应的参数即可~ 阅读全文

Direct3D轮回:游戏特效之晴天光晕

2011-08-07 11:15 by 独孤残云, 4468 阅读, 3 推荐, 收藏, 编辑
摘要: 基本的场景元素具备之后,本节我们来为已构建的场景新增一些特殊效果~ 玩过摄影的朋友应该都知道,当我们把镜头对准某一发光体的时候,会有光晕现象产生,这种光晕现象也称作“镜头眩光”。 在晴天的场景中实现这样一个光晕特效,往往会有意想不到的效果~ 阅读全文

Direct3D轮回:游戏场景之植被

2011-07-30 09:30 by 独孤残云, 3002 阅读, 5 推荐, 收藏, 编辑
摘要: 完成天空、陆地、河流模块的构建之后,这一节再为我们的游戏场景添加一点其他的装饰——植被~ 阅读全文

*Direct3D轮回:游戏场景之河流

2011-07-24 19:11 by 独孤残云, 3981 阅读, 1 推荐, 收藏, 编辑
摘要: 继天空、陆地之后,用于构建游戏场景的另一个必须的元素莫过于河流。 本节我们基于特定的特效文件Water.fx来完成水面模块的构建。不要求掌握其中的原理,只需懂得如何运用其构建水面特效即可,这也是题目前加注星号的原因。 阅读全文

Direct3D轮回:游戏场景之陆地

2011-07-23 13:32 by 独孤残云, 3380 阅读, 3 推荐, 收藏, 编辑
摘要: 继天空效果之后,这一节简单阐述一点地形生成的基本原理和方法~ 如果哪里说的不对,还望园子的前辈们多多拍砖 ^ ^ 阅读全文

Direct3D轮回:游戏场景之天空

2011-07-09 12:23 by 独孤残云, 3712 阅读, 4 推荐, 收藏, 编辑
摘要: 游戏场景中的天空效果实现起来其实很简单,我们使用一个称之为“天空盒”的技术即可~ 阅读全文

Direct3D轮回:为D3D量身订做SpriteBatch类

2011-07-05 21:53 by 独孤残云, 3131 阅读, 1 推荐, 收藏, 编辑
摘要: ID3DXSprite虽然使用起来非常方便,但其自身存在着诸多的限制与弊端,一个最明显的体现,ID3DXSprite没有提供自身顶点级操作,因此无法应用特效;另外,其接口的设计也不是十分的友好~ 这一节,我们使用D3D中最基本的图元绘制法,为其量身订做一个专属于D3D的CSpriteBatch类。 阅读全文

Direct3D轮回:基于ID3DXSprite的2D元素绘制

2011-07-03 11:07 by 独孤残云, 6218 阅读, 1 推荐, 收藏, 编辑
摘要: D3D中的2D元素绘制主要是通过ID3DXSprite来完成的。 我们通过调用D3DXCreateSprite来完成ID3DXSprite接口对象的创建,同时使用介于Begin与End之间的Draw方法来完成D3D中2D元素的绘制。 下面,我们对IDirect3DTexture9和ID3DXSprite进行二次封装,使其接口趋于人性化,使用起来更加便捷~ 阅读全文

Direct3D轮回:基于HLSL实现D3D中的光照特效

2011-06-30 14:51 by 独孤残云, 3727 阅读, 1 推荐, 收藏, 编辑
摘要: 相较于固定功能流水线,使用HLSL的优势是不言而喻的。 使用HLSL编写的模块工作于GPU之上,取代了原有的固定功能流水线,从而使得我们从那些事先定义好的固定运算中解脱出来,在特效编写过程中获得巨大的灵活度~ 阅读全文

Direct3D轮回:基于.X文件的网格加载及渲染

2011-06-29 13:26 by 独孤残云, 2723 阅读, 0 推荐, 收藏, 编辑
摘要: 虽然.X文件不再被广泛支持,但其数据定义仍具有相当的参考价值和意义~ 本篇简单实现了.X网格的加载及渲染,意在服务于后续章节,感兴趣的朋友可以简单参考一下~ 阅读全文

Direct3D轮回:构建基于Direct3D的通用摄影机类

2011-06-23 20:30 by 独孤残云, 2953 阅读, 4 推荐, 收藏, 编辑
摘要: Direct3D渲染管线主要完成了三次矩阵变换,其中的摄影变换我们大都通过封装一个称之为“摄影机”的对象加以实现~ 阅读全文

Direct3D轮回:构建基于DirectInput机制的键盘输入设备

2011-06-22 22:20 by 独孤残云, 2011 阅读, 0 推荐, 收藏, 编辑
摘要: 有了鼠标输入设备,这一篇简单讨论基于DirectInput机制的键盘输入设备的构建。 阅读全文

Direct3D轮回:构建基于DirectInput机制的鼠标输入设备

2011-06-22 15:56 by 独孤残云, 3826 阅读, 1 推荐, 收藏, 编辑
摘要: Direct3D环境中,因为工程本身基于Win32App,所以我们可以获得窗口消息的支持,从而检测鼠标和键盘的当前状态。不过,处于效率考虑,这里推荐大家使用更加高效的机制——DirectInput~ 阅读全文