上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 70 下一页
摘要: 原文转自:http://qinysong.iteye.com/blog/678941在此把这个算法称作B* 寻路算法(Branch Star 分支寻路算法,且与A*对应),本算法适用于游戏中怪物的自动寻路,其效率远远超过A*算法,经过测试,效率是普通A*算法的几十上百倍。通过引入该算法,一定程度上解决了游戏服务器端无法进行常规寻路的效率问题,除非服务器端有独立的AI处理线程,否则在服务器端无法允许可能消耗大量时间的寻路搜索,即使是业界普遍公认的最佳的A*,所以普遍的折中做法是服务器端只做近距离的寻路,或通过导航站点缩短A*的范围。算法原理 本算法启发于自然界中真实动物的寻路过程,并加以改善以解 阅读全文
posted @ 2013-03-27 12:41 oayx 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 关于Base64编码更精确和全面的介绍请参考rfc2045。大概的转换步骤:1,首先选出64个字符,包括大小写字母(a-z,A-Z),数字(0-9)和符号'+','/'作为一个集合(其实加上作为padding的'='该是65个字符)。2,然后,按(3*8=4*6)每3个8位字节转化为4个6位的字节(高2位补0)的形式,将输入的字节序列都转换成只包含base64集合中的字符的另一个字节序列,如下简图:转换前:.--------+--------+--------.|aaaaaabb|bbbbcccc|ccdddddd|`--------+----- 阅读全文
posted @ 2013-03-18 09:51 oayx 阅读(819) 评论(0) 推荐(1) 编辑
摘要: AES算法的主要数学基础是抽象代数,其中算法中的许多运算是按单字节(8bits)和4字节(32bits)定义的,单字节可看成有限域GF(28)中的一个元素,而4字节则可以看成系数在GF(28)中并且次数小于4的多项式(亦可以理解为:GF(2564)),单字节上的运算有两种:有限域GF(28)上一个8次不可约多项式的模加、点乘(为方便代码实现,推出了X乘的概念),其中,这个不可约多项式为:m(x)= x8+x4+x3+x+1,类似地,4字节运算也分为两种:模加、乘法(为方便代码实现,推出了模乘的概念),而此时使用的模取M(x)=x4+1,由于x4+1=( x2+1)( x2+1)= ( x+1) 阅读全文
posted @ 2013-03-16 16:10 oayx 阅读(7197) 评论(0) 推荐(1) 编辑
摘要: SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列算法 散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲. 阅读全文
posted @ 2013-03-16 16:08 oayx 阅读(2757) 评论(0) 推荐(1) 编辑
摘要: 加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。 对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必 阅读全文
posted @ 2013-03-16 16:07 oayx 阅读(22492) 评论(0) 推荐(0) 编辑
摘要: Shadow Mapping已经成为当前3D游戏的标配。传统SM+PCF可以很好地实现日光环境下的Hard Shadow,但如果要实现由昏暗灯光所产生的Soft Shadow,则要么效果过于生硬(sample次数少)要么效率低下(sample次数多)。因此,越来越多的游戏开始使用能够充分利用硬件特性的软阴影算法。这里主要总结各种Soft Shadow Mapping的算法思想和推导过程,不提及实现上的细节和具体代码,等有空再写写Demo。本文为原创内容,转载请注明出处。Standard Shadow MapsShadow Map的基本思想:Light View画一遍Depth,然后Camera 阅读全文
posted @ 2012-02-07 12:09 oayx 阅读(4428) 评论(0) 推荐(0) 编辑
摘要: 原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由代码工人转为艺术家。下面我来点评一下六大原则,望各位拍砖: 1、单一职责原则(Single Responsibility Principle,简称SRP) 单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者.. 阅读全文
posted @ 2012-02-03 15:28 oayx 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 本文主要总结创建、结束线程和WIN32 API提供的一些线程同步方法。同步方法包括用户态同步方式:InterLock、CriticalSection、SRWLock和内核态同步方式:Event、Semaphore、Mutex等。本文通过简单的例子演示API的使用,没有包含原理的说明,假定读者具有其他语言或者平台的并发编程经验。创建、结束线程WIN32 API虽然提供了CreateThead和ExitThread方法,但是在C++中,永远不应该使用这两个方法创建或结束线程。而应该使用VC++提供的_beginthread、_beginthreadex方法,相应的结束线程方法_endthread、 阅读全文
posted @ 2012-01-29 10:56 oayx 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:“我也早就想把这个问题搞明白了!”经过一段时间的思考之后,有一些很有趣的体会和大家分享。听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白。仔细品以下,还是有那么点滋味的。下面先看一下剑桥大学的教科书对卷积的定义:我们都知道这个公式,但是它有什么物理意义呢,平时我们用卷积做过很多事情,信号处理时,输出函数是输入函数和系统函数的卷积,在图像处理时,两组幅分辨 阅读全文
posted @ 2012-01-20 15:51 oayx 阅读(727) 评论(1) 推荐(0) 编辑
摘要: 完美的画面已经离我们不再遥远——反锯齿技术浅析不管现今的游戏画面有多完美,人物和环境有多真实,但游戏画面的构成的主要方式仍然没有得到改善:一帧画面由成千上万像素构成。这意味着物体多边形的轮廓最终是锯齿状的图形。所以画面质量不可能达到理想的标准,除非完全消除“锯齿”。 别担心,精美的画面品质是要牺牲速度的代价来换取的,并且各大显卡厂商都有自己独到的反锯齿技术,他们新的图形加速卡都纷纷支持全屏抗锯齿。完美的画面已经离我们再遥远。超级采样(Supersampling)无论是什么样的抗锯齿技术都是在超级采样技术的基础上发展而来的。在超级采样技术中,画面里的每一个像素点都被拆分成了几个子像素点,然后对它 阅读全文
posted @ 2012-01-20 15:27 oayx 阅读(1605) 评论(0) 推荐(0) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 70 下一页