|
上次我简要介绍了MMX全速加速下的Alpha混合新方法,本来这次应该为大家带来其他主题的内容。不过上次留了个尾巴,没有加如COLORKEY和CLIP功能,而且在具体实践过程中,半透明是最好写的,当我把其他级的混合函数写完时,我感到需要把这些函数介绍给大家,目的是希望大家能直接应用(注意不是理解),因为实在是不好写,不注意就会出错,我写的全部代码在AresAlpha.cpp中,大家只需要稍做修改就可以用在自己的程序中,如果还是觉得困难,请等待我的Ares游戏引擎的发布,目前正在做输入部分的接口,正在加速做剩下的部分
因为现在所有的精力都在完善引擎的工作中,所以写文档的时间很少,上次有不少朋友看了我文章后加了我的QQ(35830152),我很高兴认识你们,和你们一起家流成长,有朋友问我现在有什么产品,遗憾的是由于其他原因,我的编程工作时断时续,没有太多的作品,我找到我高中时用Borland C++写的2个留下的程序,这次也传上来,希望对初学DirectX编程的朋友有帮助,由于以前刚从DOS平台转到WINDOWS平台搞开发,所以面向对象的概念很淡薄,后果就是,我现在都不愿意看以前的代码(留着就是做个纪念)。但我相信对没接触过游戏编程的朋友来说,还是可以凑活看看的。
这次原理的东西我不想说,等我的引擎出来后,我会写个详细的文档介绍。有朋友想把它放在主页上下载我也欢迎,因为我的代码将是开放和免费的,不过引擎做完前代码还暂时公布。
最后说一下附件中的东西。有一个Euho.exe的东西是一个小车,你选中后可以点左键移动它,左键可以攻击电脑,右键取消选择,电脑会一直试图攻击你。还有个没可执行文件的是地图编辑器,不过我没Borland C++现在,所以无法编译,有兴趣的朋友就凑活看看,不然就Delete好了。最后一个Rainbow.exe是我的Alpha效果的DEMO,由于时间仓促,没有做什么花样,也没怎么优化,大家就当看看我的代码能不能有效的执行好了。推荐的源代码有AresAlpha.cpp.
好了,我要工作了,这次就说到这里,下次我给大家带来的就是完整的Ares引擎,你会发现它确实能减少你很多工作量,关键是它屏蔽了DirectDraw的复杂性。上次有朋友说有GDI+或硬件加速,用D3D做Alpha混合,MMX做旋转就吃力了等等。我想说的是,我写的是2D引擎,而DirectDraw是不支持Alpha硬件加速的(不是说D3D),如果支持也不会有这么多人研究了,还有旋转效果DirectDraw的Blt是硬件支持的,所以我也不会用MMX去做,做了也没效果,因为MMX根本不适合。还有即使有硬件实现Alpha混合或有GDI+(我没用过),研究快速的实现算法本身就比较有趣,大家愉快。
|
|