[Art Trick] 2D游戏中的法线纹理

之前空闲时间会读一些文章,觉得有趣的会记下来,笔记阅读时间一般都不超过两分钟,遂模仿油管的Two Minutes Papers系列希望能坚持记录下来。这篇是一两年前写的,补充了点新的当做第一篇~


这两天看了一些怎么在2D游戏里增加动态光照的文章,原理都是为2D Sprite使用法线纹理,记录如下。

# Dead Cells

参考:gamasutra.com/view/news

这篇文章是通过直接使用3D模型作为原型,用cel shading渲染到一张尺寸很小的纹理中来生成sprite,后续可以再人工修图。这样的好处是出图很快,作者也说他之所以一开始会这么做是因为他的工作实在忙不过来,用这种方法可以大大缩短制作时间,而且一旦动作或者设定发生变化也可以很快修改模型。从效果看,游戏结果也比较好。



# The Siege and the Sandfox

参考:gamasutra.com/view/news

受到上篇文章启发,但他们更极端,是几乎完全手绘来制作法线贴图,但效果明显更好了。作者也尝试了一些自动化生成的方法,比如靠灰度值反推,但效果总是不尽如人意,因此索性完全手绘。

作者手绘法线贴图的时候也使用了一些工具。首先作者拿标准球体的法线作为调色板 之类的存在,来表示所有可能角度的法线颜色。除了取色外,作者也会单独绘制法线贴图的RGB通道来表示某些角度。还使用了NDo、Crazybump和 AwesomeBump来混合手绘法线的不同部分。最后使用英伟达的TextureTools来归一化法线贴图。

# 其他

半手绘输入、程序生成法线的有一篇文章,kencho-dev-blog.blogspot.com.es。作者是靠手绘输入两个方向的打光图,一个从左往右横向打光,一个从上到下纵向打光,这其实就分别是法线纹理的xy分量,z分量靠归一化求得。


Twitter上也一直有个大佬更新他在PS里手绘法线做光影的例子,twitter.com/beatnik3d/s,动态绘制过程还是蛮酷的。


编辑于 2020-05-24 01:06