我所遭遇过的游戏中间件--Kynapse
摘要:我所遭遇过的游戏中间件--Kynapse Autodesk Kynapse游戏中间件是一款面向游戏开发、非玩家控制角色实时模拟的领先的人工智能解决方案。Kynapse具有先进的路径查找功能,比如三维路径查找、动态环境评估,并支持复杂地形中的群体路径查找。高效的制作工具包以及专为简便集成和自定义而设计的结构可帮助游戏开发人员简化创建顶级控制台游戏和 PC游戏的过程。这项高性能的游戏人工智能技术能够帮助游戏开发者在复杂的地形中,模拟先进的动态三维自动寻路、环境感知与大规模群体移动。其主要功能有: (1)实时三维自动寻路—使用面向游戏内角色的经过验证的算法,能够面向复杂地形的动态3D路径查找,找到他
阅读全文
posted @
2013-12-27 20:29
叶飞影
阅读(1868)
推荐(1) 编辑
3D屏保:排色榜
摘要:3D屏保:排色榜 排色榜,是一个针对图形学中的色彩进行排序的DEMO,这里的色是色彩的意思,看成别的点进来的同学请自觉面壁.该DEMO可以按RGB,GBR,BRG,灰度值四种方式进行排序.排序算法为冒泡排序,之所以选择这种排序算法,是因为该算法容易实现相邻两个颜色的交换旋转. 前些天看到一个图片是关于四六级中关于颜色的单词和GRE中关于颜色的单词的对比.我突然想到有必要定义一套图形学中的色彩,然后将其一一摆列显示出来.这样当我写程序时想选择一个颜色时,启动该程序选就是了.记得我写自己的第一款游戏"Hello Color",为了找到10个对比度明显的颜色费了不少劲.有了这个D
阅读全文
posted @
2013-12-26 17:26
叶飞影
阅读(1918)
推荐(0) 编辑
3维DEMO: 抽奖圆盘
摘要:抽奖圆盘 前些日子去超市,消费满一定钱数可以参加抽奖,就是在电视机上有个可旋转的圆盘,按一键开始,按一键抽奖结束.看到最大奖的扇形区域大约有个10度角的样子,按说中大奖的概率应该是36分之1.当然,这是天真的想法.盘子上奖项区域面积的大小不会等于其抽中概率的大小.于是我写了这个DEMO,圆盘上随机生成十种颜色,用户可以分别设置每个颜色的区域面积大小和抽中概率大小.面积大的颜色中奖概率不一定大,面积小的颜色中奖概率不一定小,一切尽在我的掌握之中.写这个程序算是为自己以后的抽奖积累人品吧,希望明年能中个什么奖.右侧控件设置圆盘颜色区域大小与抽中概率大小.如下图所示:空格键控制抽奖,"R&
阅读全文
posted @
2013-12-26 08:39
叶飞影
阅读(1542)
推荐(4) 编辑
我所遭遇过的游戏中间件--FlashOcx
摘要:使用Flash做游戏界面的另一种方式是通过Abode提供flash.ocx处理Flash界面.将Flash图像通过GDI绘制出来后,再将图像数据拷贝到一个D3D的纹理结构中,最后由引擎的D3D接口进行渲染。用它来做游戏UI界面的好处就是方便,快捷.做出来的Flash在Abode的播放器中什么样,那么在游戏客户端中的就是什么样.不用担心什么显示不一致,脚本不支持之类的问题.另一方面,FlashOcx对AS脚本的处理效率比Scaleform强得多.但最大的问题就是渲染效率,毕竟需要做大量的像素拷贝工作,这很耗时. 在项目中,一开始使用FlashOcx做UI界面,后来买了Scaleform...
阅读全文
posted @
2013-12-25 17:33
叶飞影
阅读(1268)
推荐(1) 编辑
我所遭遇过的游戏中间件--Scaleform
摘要:我所遭遇过的游戏中间件---Scaleform Scaleform帮助开发人员利用现代系统的三维硬件加速性能创建电影品质的菜单、游戏内HUD,动画纹理、迷你游戏以及移动游戏与应用。Scaleform作为一个可视化UI设计的中间件解决方案,其高性能已被充分证明,有了它,开发者通过Adobe Flash Studio可以高效率、低成本地创建富有现代感的GPU加速动画用户界面和矢量图形,而无需学习新工具的使用或者动画处理方法。Scaleform的另外一个名子叫GFX,在本文中有时使用Scaleform,有时会使用GFX,读者把它们当成一个东西就可以了.GFx为直接在Flash Studio创作游戏用
阅读全文
posted @
2013-12-25 07:33
叶飞影
阅读(5903)
推荐(2) 编辑
3D屏保:N皇后
摘要:前几天园子里有人发表关于8皇后的算法.只有代码,没有能运行的DEMO多枯燥.于是我这两天抽时间写了个N皇后的屏保程序.程序启动后会从4皇后到14皇后显示其所有排列,每隔0.5秒自动切换一次.按下空格键会停止自动切换,按-=键可以手动切换排列.算法是对网上找的程序做了点修改,先申请一块8M的内存区域,将N皇后中所有合适的位置保存到该内存中,代码如下: 1 static Ybyte g_listQueen[YD_MAX_STACKS_NUM] = {0}; 2 3 bool check_pos_valid(Ybyte loop, Ybyte value) 4 { 5 Yby...
阅读全文
posted @
2013-12-24 20:29
叶飞影
阅读(1878)
推荐(2) 编辑
我所遭遇过的游戏中间件---Redux
摘要:我所遭遇过的游戏中间件---Redux一.关于Redux Substance Redux 是一款纹理处理软件加中间件,专门用于纹理生成和压缩。具其用户指南介绍,它能够对纹理集进行优化,可以将现有压缩算法的性能提高50%或更多。其压缩方式可是无损压缩,也可以是无损压缩。压缩时可以由用户自定义压缩比和图像质量。 Redux可以针对批量纹理文件进行压缩打包。操作流程是新建一个Project项目,为该项目导入若干个纹理文件,可以设置每一个纹理的压缩参数。最后导出压缩文件。Redux可以对多种格式的图像文件进行压缩。如果输入图像的长宽不为2的N次幂,Redux会自动将其拉伸至2的N次幂。ReduxSDK
阅读全文
posted @
2013-12-20 19:30
叶飞影
阅读(1728)
推荐(0) 编辑
3D屏保: 彩色盘子
摘要:一个彩色盘子的屏保 记得小时候在电视上看过一个科普节目,由多个颜色组成的盘子,如果快速旋转起来,会看上去是白色的.于是我就写了这个屏保程序,但发现在计算机上模拟并不是这样的."RollPlate.scr"全屏可执行程序"RollPlate.exe"窗口可执行程序鼠标左键右键拖动,调节视角.鼠标滚轮,调节摄像机的远近.X,恢复为默认视角并停止视角旋转.空格,暂停与恢复.ESC,退出.R,重新开始.[,] 加减盘子旋转的速度-,= 加减盘子的颜色数目,最小是3,最大是720,默认为180盘子的旋转速度每隔一秒会变化一下.屏保设置方式XP:将目录下的所有文件拷
阅读全文
posted @
2013-12-14 14:56
叶飞影
阅读(729)
推荐(0) 编辑
我所遭遇过的游戏中间件--Apex
摘要:我所遭遇过的游戏中间件--Apex Apex是PhysX的扩展中间件,它是在PhysX的基础上封装了一层.用于实现布料,粒子,破碎这三种物理效果.我只研究其布料处理.使用Apex做物理最大的好处是:它的布料可以即受物理影响,又受骨骼蒙皮的影响.物理布料有很大的不确定性,你无法知道在做了一套动作后,布料的模拟还是否正常.然而有了骨骼蒙皮的影响,就给布料带来确定性.在PhysX的Max导出插件中,美工可以设置布料上每一个顶点受物理影响的范围.运算过程应该是先对布料上的点做骨骼蒙皮运算,再做物理模拟. Apex是我碰到过的接口最难搞的中间件,它里面使用了大量的回调,接口十分晦涩难懂,官方文档也不够.
阅读全文
posted @
2013-12-14 14:26
叶飞影
阅读(2138)
推荐(3) 编辑
我所遭遇过的游戏中间件--PhysX
摘要:我所遭遇过的游戏中间件--PhysX PhysX现在是Nvidia的物理中间件.其特点是简练且功能强大.当我最初拿到PHYSX的SDK时,就发现这个物理中间件比Havok要小很多,但该有的功能都有,甚至有软体softbody,这是Havok没有的功能.而后我便从Havok的坑跳到了PhysX的坑里.下面将我在PhysX里碰到的坑一一讲述下.(1)Max导出插件 PhysX的Max导出插件做的不如Havok,最缺少的功能是无法对导出的模型进行矩阵变换.要知道Max的坐标系为Z轴向上右手坐标系,而游戏中的坐标系为Y轴向上的左手坐标系.并且,我这的美术在Max中建模时,会将模型放大100倍.那么导出
阅读全文
posted @
2013-12-14 08:07
叶飞影
阅读(2238)
推荐(2) 编辑
我所遭遇过的中间件--VTK
摘要:我所遭遇过的中间件--VTK Vtk是我接触的第一款软件开发包,它引导我对图形学的入门.我是先学的VTK,后学的OpenGL和D3D.VTK是专为图形学开发,特点是接口清晰,好上手,又含有大量的图像处理算法.从VTK入手3D图形学,要比从OpenGL和D3D容易的多. 最初接触VTK是研一那年暑假,研一时我做医学图像处理.VTK很适合由图像处理转到3D图形学,对做医学图像也很方便.它集成着DICOM图像文件格式的解析器.我看过解析DICOM文件的代码,大约5000多行.这代码量对当时的我来说如同天文数字,而使用VTK,几行代码就可以搞定.这就是中间件的方便之处,为开发者提供成熟的功能.我用V.
阅读全文
posted @
2013-12-13 19:06
叶飞影
阅读(2836)
推荐(6) 编辑
我所遭遇过的游戏中间件--Havok
摘要:我所遭遇过的游戏中间件--Havok Havok是我接触的第一款游戏中间件,那是在五,六年前,我刚刚毕业,对游戏开发还是个菜鸟.我记得先是对游戏场景中的地形和其他静态物体生成刚体,然后做角色的Ragdoll就是模拟人死之后顺着地形躺下,然后又做车辆模拟,后来还做过破碎.下面先一一枚举下我做的事情: (1)地形刚体是每次场景加载时实时生成的. (2)场景中的所有静态物体生成一个巨大的组合刚体,每一个静态物体都是刚体的一个Shape,然后将该刚体保存到文件中. (3)创建出一堵刚体所组成的墙.然后可以用物体砸它. (4)Ragdoll搞的很辛苦,因为当时我还不太了解骨骼动画,还没吃透游戏引擎中..
阅读全文
posted @
2013-12-11 16:20
叶飞影
阅读(2286)
推荐(1) 编辑
818这些年我所遭遇过的游戏中间件
摘要:818这些年我所遭遇过的游戏中间件 生活中总有些之前从没想过的东西,却出现在自己以后的生活中.比如,上中学时我从没想过自己能上大学.在学校时多次路过一家公司,看它的大楼很是个性,从没想过自己毕业后会坑在这家公司.第一次听说中间件,是我读研时的一个舍友,他的研究方向就是中间件.我问他什么是中间件,他...
阅读全文
posted @
2013-12-10 12:15
叶飞影
阅读(2459)
推荐(3) 编辑
关于Windows平台下应用程序加载DLL模块的问题.
摘要:本文将讨论以下问题:(1)Windows可执行程序会从哪些目录下加载DLL.(2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE同一目录.(3)可执行程序加载了不该加载的DLL.(4)Win7,Win8下,"\Windows\System32"中的可执行程序无法加载DLL.(1)当启动一个可执行程序时,如果该程序需要加载其他DLL,那么当DLL的路径不是完整路径时,会先从当前目录下查找,找不到会再搜索系统目录,还是找不到的话,则依次搜索环境变量path的目录.这个顺序很重要.我自己系统的默认环境变量path的目录如下:C:\Program Files (x86)
阅读全文
posted @
2013-12-09 16:38
叶飞影
阅读(2970)
推荐(1) 编辑
3D屏保:魔方2.0版本
摘要:一个三维魔方的屏保软件,可支持2级到72级的魔方.启动后魔方会自动旋转,并最终回到初始状态.有很多人问我这是怎么做到的,用的什么解魔方的算法,其实我自己根本就不会玩魔方,别人用技巧解魔方,我这程序中用的是记忆.将魔方正着旋转若干次,再反过来转就自动回到初始了. 魔方实现是对共6个面的每个方片做矩阵变化,这里不是方块,而是方片.每个方片有其自己的矩阵变化,每次旋转,先通过区域选定需要旋转的方片集合,然后对这些方片做旋转90度的变换.2级魔方72级魔方:双击"MagicCubeSP.scr"可运行全屏程序MagicCube.exe为窗口程序.由于程序为一个屏保,所以启动后,点击
阅读全文
posted @
2013-12-08 08:16
叶飞影
阅读(1303)
推荐(2) 编辑
3D屏保程序:汉诺塔
摘要:学过程序的人一定记得汉诺塔.我们学的第一个程序是HelloWorld,而碰到的第一个坑就是汉诺塔,短短十几行代码,不知花费了多少时间精力去理解.我记得当年的开发环境还是蓝屏的,汉诺塔程序的输出还是一行行枯燥无趣的字符串.现在重写了这个程序,以三维可视化的方式看下汉诺塔的运行过程. 1 void hanoi(char src, char mid, char dst, Yuint stacks, Ychar* pMoveSteps, Yuint& index) 2 { 3 if (stacks == 1) 4 { 5 Ychar& value = pMoveSt...
阅读全文
posted @
2013-12-06 11:34
叶飞影
阅读(2715)
推荐(6) 编辑
C++代码文件名标准化处理工具
摘要:工具功能:批量处理C++代码文件,将C++代码文件名中大写字母改为下划线+小写字母。为了方便代码在不同平台下的移植,代码文件命名规范为:不使用大写字母,单词之间用下划线间隔开。为此写了这个小工具,将文件夹拖入界面即可处理。形如代码:#include "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h"#include "BulletDynamics/Dynamics/btSimpleDynamicsWorld.h"#include "BulletDynamics/Dynamics/btRigid
阅读全文
posted @
2013-12-03 13:45
叶飞影
阅读(535)
推荐(0) 编辑
C 图像处理 颜色相关宏定义
摘要:很多年前整理的,像素处理的宏定义,包括r8g8b8到r5g6b5之间的相互转化,浮点数像素与整数值之间的相互转化,像素值的插值、取反等处理。具体没什么好说的,宏定义的代码还是很容易看的。这套东西对搞图像处理的来说非常有意义。 1 /**************************************************************** 2 3 File name : WhyColorDefines.h 4 Author : 叶飞影 5 Version : 2.0 6 Create Date : 2010/08...
阅读全文
posted @
2013-12-02 16:29
叶飞影
阅读(1088)
推荐(1) 编辑