动态光影


Dynamic lighting and shadows,动态光影 - 这在 3D 游戏中根本不算个事儿。可是,当想要在像素游戏中实现的时候,就没那么简单了,我们之前报道过 Sprite Lamp,那已经是三年前的报道了,不过显然当时就引起了不少人的兴趣,这种利用法线贴图的方式看起来效果真的很不错,这几年间也有不少像素游戏采用了这种方式来实现动态光影效果,当然不都是使用 Sprite Lamp 啦。由于原理简单,出现了大量类似的软件。不过 Sprite Lamp 对 Unity 和 Game Maker 都支持得不错,所以应该还是用得最多的。


最近,我在例行闲逛的时候,发现了这么一款游戏:Pathway


所以,这篇到底是 Preview 还是 Development 的分类呢?


Pathway 的动态光影效果


废话是没有用的,我其实是看了下面这幅标题图片而被吸引着进入 Pathway 的网站的:

 

像素游戏的动态光影效果_技术细节

Pathway

开始我以为这效果是做出来的,后来才发现原来是算出来的……3D、2D 都不稀奇,混合起来观感就大不同了。


这款游戏的开发团队叫做 Robotality,来自德国的哈姆林镇,由 Bachmann 兄弟和 Nia Schmidheiny(名字看起来好像是位女战士)于 2013 年创建,不过合作开发游戏的小伙伴则遍布全世界,包括加拿大、英国以及巴西的成员。


Pathway 是一款回合制的策略游戏,Robotality 之前的作品 Halfway 也是一款回合制策略游戏,Pathway 可以说是比前作提升了一大截。


这款游戏从 2014 年就开始开发了,现在是处于 pre-alpha 阶段。开发团队为这款游戏投入了大量了精力,不过呢,最值得一提的是他们自己研究出了一种号称体素 / 像素混合的技术,然后就实现了我们前面看到的那种颇为惊人的动态光影效果。手机号码卖号平台开发团队认为复古的像素加以现代的科技会让游戏的体验变得更加丰富,更别提游戏本身就是发生在 1930 年代,整体风格也特别适合采用这种技术来表现。


再看一下昼夜交替的效果:

像素游戏的动态光影效果_技术细节_02

像素游戏的动态光影效果_技术细节_03

这看起来确实是有些技术突破的样子,等到发行的时候——是的,快要发行了,2017 年,登陆 Mac / Windows / Linux,显然还会是 Steam,那个时候我们再探探究竟。


至于实现技术具有怎样的细节,我们还不得而知,希望游戏发行后,开发团队能够放出一些技术细节来吧。


延伸阅读


是的,其实今天内容就这么点儿,但是我给大家分享一些相关的内容,对 2D 光影有兴趣的同学不妨点开来瞧瞧:


首先,Unity 现在直接实现起来也不费事啦,有很多教程,可以自己搜搜。



这里列出了很多与 Sprite Lamp 相似的 2D 光影技术,很多是开源的,不妨随意选用。



著名的 SpriteSheet 生成工具 TexturePacker 的公司出品,品质保障啊,看起来很好用的样子。

 

像素游戏的动态光影效果_eclipse_04

SpriteIlluminator,看起来相当专业,功能也很多


Kickstarter 上的项目,也是同样的法线生成功能。

 

像素游戏的动态光影效果_3d_05

采用 Sprite DLight 技术制作的游戏:Bravery and Greed


这是一篇关于如何实现 2D 光影效果的 Blog,介绍了其它的实现方法,有不少有用的链接,顺藤摸瓜,看起来真是津津有味!

 

像素游戏的动态光影效果_linux_06

复杂的多色彩光照场景


这一篇不仅实现了另外一种光影效果,还给出了部分实现代码(WebGL Shader),强烈建议读一读!

 

像素游戏的动态光影效果_linux_07

教程中实现的光影效果,注意建筑物的阴影