我想重现N64游戏《塞尔达传说:时之笛》标题画面上徽标中的那种火焰效果,如下所示:
快速浏览ROM中使用的纹理可提供看起来与效果相似的单个32x32纹理,但是我不知道该图像(假定是正确的)如何转换为徽标上看到的效果。
如何实现类似的功能?
我想重现N64游戏《塞尔达传说:时之笛》标题画面上徽标中的那种火焰效果,如下所示:
快速浏览ROM中使用的纹理可提供看起来与效果相似的单个32x32纹理,但是我不知道该图像(假定是正确的)如何转换为徽标上看到的效果。
如何实现类似的功能?
Answers:
首先,为徽标/文本制作一个白色对黑色的蒙版,并对其进行模糊处理。
然后创建一个重复的(平铺的)固体噪声纹理(此处使用的是GIMP)
使用Map-> Tile ...过滤器为下一步创建3x3平铺模式(在本示例中为128x128 x 3 = 384x384),以确保我们的纹理仍然可重复-我们将仅保留中心部分。
使用“模糊”->“运动模糊...”使纹理向上模糊,并仅使中心保持1/3(返回128x128)
将两个纹理在GPU上相乘,并将其用于不透明度。
然后通过将图案纹理向上移动到蒙版纹理上方来对其进行动画处理:
完成动画部分。
然后您可以应用渐变贴图(黑色->红色->黄色->白色)为其赋予火彩:
可以使用其他颜色来产生可怕的蓝色火焰,浅黄色的光环场,更烟熏的效果等。
现在,如果将其作为徽标和3D渲染上的添加剂结合使用,则会获得所需的效果:
通过将蒙版和/或图案亮度,和/或顶点颜色和/或渐变颜色映射调整到设计水平,可以使效果变暗。
您甚至可以以不同的速度和方向同时使用两个纹理图案(遮罩*火模式*火模式)来创建更复杂的火效果。
从技术上讲,由于N64在纹理方面的硬件限制,他们可能使用三角形网格和顶点颜色而不是蒙版纹理创建了近似的蒙版,但最终结果是相同的((顶点颜色*图案纹理)vs(蒙版纹理*图案纹理))。
我们仍然可以使用顶点颜色,但是20年后,我们可以使生活更轻松,只需使用2种或更多纹理,即使今天的移动GPU都可以毫无问题地处理额外的256x128灰色纹理。
如果ROM包含小的火焰纹理,那么我想这是通过某种粒子效果完成的。
首先在屏幕上放置标题和徽标的精灵即可。然后,在标题精灵后面放置一些会产生火焰效果的粒子发射器。也就是说,它们的Z /屏幕深度使它们在标题后面呈现。
这是一个使用GameMaker粒子效果创建火焰的示例,可能使您对这种方法的潜力有所了解...
http://martincrownover.com/gamemaker-examples-tutorials/particles-fire/