战舰少女台服吧 关注:162,212贴子:28,371,523
  • 1回复贴,共1

新型幻影坦克设计方案

取消只看楼主收藏回复

原创教程,转载请注明链接
1.Introductory
最近吧里看到好几个关于幻影坦克的帖子,有教怎么做的,也有求问的,看来大家对幻影坦克是十分的热爱,那么今天我这个万年潜水员,也来讲讲幻影坦克这个东西吧。
幻影坦克是红色警戒系列游戏中,萌军的一种作战单位,建造方式:然在战车工厂点…呃,这个应该不用讲了吧?好的,我们现在就来讲另一种幻影坦克。
说起这个,想必各位老司机们一定不陌生,很多司机也早已熟练掌握了使用PS制作幻影坦克的技巧,在对抗吧务与度娘的作战行动中,取得了重大优势。
目前的幻影坦克的制作方法主要有两种:以白色填充的半透明图片,或者网格分割图片再重合的方式。第一种方式制作简单,没有对图片进行降采样,但外面看上去纯白一片,浪费了一张图片的位置。第二种方式则需要纯熟的PS技巧以及足够的耐心,或者程序辅助。但这种方式生成的图片,因为网格在某些情况下对图像观感存在影响,效果也并不算理想。
 那么,是否有改进的空间呢?
幻影坦克,其基本原理,是利用PNG图像的透明特性,这一格式的图像在色彩通道之外,还拥有一个表示像素透明度的alpha通道。因为这个通道的存在,图片与背景存在叠加关系,这让滤波成为了可能。
是的,对信号编码相关知识比较熟悉的同学此时应该已经反应过来了,一张图片可以看作一个信道,如果该信道中存在两个通道,那么经过适当的处理,该信道中就可以同时传输两种不同的信息,只要采用不同的滤波器,将信号提取出来即可。而在这里,两种信息,就是两张不同的图片,分别占据信道的一部分。而其相应的滤波器,则是纯黑与纯白的背景。如此一来,只要适当调制灰度与透明度【注1】,同一个像素点就能够分别在黑色和白色的背景上,显示为不同的颜色。
注1:严格说来PNG拥有R, G, B, Alpha四个通道,而关键的Alpha通道的使其能够将背景图片用作滤波器。因此在理论上它可以存储很多张不同图片,或者通过某种方式,制作彩色幻影坦克。但此处尚存在一些未解决的问题,因此,本文将RGB合并为灰度通道进行分析和讨论。
2.solving
若用g表示灰度,用a表示透明度,用gb表示黑色背景下的灰度,用gw表示白色背景下的灰度,我们只需要分别找到不同背景下显示的颜色函数关系gb=fb(g, a)与gw=fw(g, a)并反解之,我们就可以得到g=f1(gb, gw)与a=f2(gb, gw)。使用这两个函数,即可制造完全无网格的幻影坦克。
首先,我们利用制作好的图片,分别叠加黑色、白色两种不同的背景,得到函数fb(g, a)与fw(g, a)的某些特殊值,结果如下图所示


根据拟合结果得:
gb = fb(g,a) = g*a/255
gw = fw(g,a) = 255 - (255 - g)*a/255
反解得:(太麻烦懒的写了,反正你们肯定不关心
3.application
这个方法的弊端在于,不再可能通过手工制作,必须借助程序。因此,这里采用程序来实现。OpenCV负责图像生成,窗口是Qt写的。
////----链接----////
beta版下载链接: 1dFnKwO5
提取密码:hfob
解压直接运行.exe即可,报错…回复一下,大概…会改吧
只能保证支持win7及以上,xp兼容性不明
以上
祝各位驾车愉快


IP属地:四川1楼2017-08-31 15:55回复
    以下是测试图片。
    注意:测试图片全部来自于未知的次元,与本人无关。如有侵权,联系后我会立即删除






    IP属地:四川2楼2017-08-31 15:57
    收起回复