介绍 HeavyM 着色器,创建自己的视觉特效

导言

您有兴趣在 HeavyM 中创建自己的视觉效果吗?在本文中,我们将介绍着色器提供的令人兴奋的创作可能性。顺便问一下,什么是着色器?

着色器是一种在电脑显卡上运行的计算机程序。它可以让你快速操作显示在屏幕或视频投影仪上的数据:像素。

这是一项鲜为人知的技术,因为它被认为是抽象的,但着色器却与我们的日常生活息息相关。这些小型计算机程序可以逼真地模拟复杂的视觉效果,如雨、雾、光反射、物体浮雕等。因此,它们被广泛应用于视频游戏、需要特效的电影、电视机......以及数字艺术领域,也就是我们在此重点讨论的领域。

在 HeavyM 软件中,内置着色器提供了多种可能性。您还可以导入自己的着色器,从而无限增加组合的数量!

使用着色器的视频游戏示例我的世界

使用着色器的视频游戏示例我的世界

投影测绘矿山性能

在投影映射表演中使用着色器的示例

第 1 部分:着色器技术

为了更好地理解着色器的概念,让我们以手工绘图为例。需要逐一绘制组成图形的元素。首先是几何图形,如圆形、矩形和线条,然后添加颜色。就像手工复制绘图一样,一步一步进行。有了着色器,这个过程就快多了,因为所有这些操作都是一次性完成的,就像用一个手势在纸上盖章一样。更棒的是,这个印章可以根据所给的信息(如时间、位置或纸张上已有元素的颜色)而改变。

着色器为什么快?

着色器是非常轻量级的程序,因为与包含几十万行代码的 HeavyM 等软件不同,着色器一般最多只有几百行代码。着色器的速度主要取决于允许其运行的硬件架构:显卡。要使用 HeavyM,您肯定要注意这一点,因为它能让软件提供的可能性成倍增加。

与逐个处理任务的电脑 CPU 不同,显卡的计算是并行进行的。显卡拥有多个小型处理器,而不是一个具有强大计算能力的处理器。这意味着它们可以同时执行任务。依靠这种并行化,着色器可以在几毫秒内完成复杂的图形计算。

着色器的优势:互动艺术

由于着色器的执行速度快,因此可以实时创建图像,即在看到图像的瞬间生成图像。实时一词是与预计算一词相对而言的,后者适用于逐帧渲染的视频文件。渲染计算非常耗时,可能需要数天时间!有了着色器,你就可以直接操作图像,就像在视频游戏中一样。交互式数字艺术依赖于这种实时原理,因为它允许你生成能对音乐或人的动作做出反应的视觉效果。要了解音乐与视觉效果相结合的两个表演实例,请参阅以下艺术家的作品 阿普歇双子星音乐会的 Weirdcore诺诺塔克的表演.

着色器类型

着色器只不过是带有特定扩展名的文本文件。我们将看到着色器的不同类型。它们的共同点是都使用 GLSL 语言编码:OpenGL 着色语言。根据平台和硬件的不同,还有其他类型的着色器,但在此我们将重点介绍基于 OpenGL 的着色器。要在 HeavyM 中使用着色器,需要支持 OpenGL 2.0 的显卡。

像素着色器或片段着色器

片段着色器或像素着色器是一种着色器,其目的是单独计算每个像素的颜色。它将图像中每个像素的数据(位置、纹理坐标、颜色)作为输入,然后输出其颜色。

这些着色器是您在使用 HeavyM 时会感兴趣的。它们通常是 .FRAG 文件,如果是 ISF 格式,则是 .FS 文件。ISF 格式为 GLSL 着色器片段提供了一个标准,以便交互式应用程序能更轻松地解释这些片段。

顶点着色器

顶点着色器用于将输入峰值转换为像素。 

它是一个 .VS 文件,有时与像素着色器伴生,具有相同的名称并位于同一文件夹中。

在哪里可以找到着色器?

在 HeavyM 中使用着色器并不需要懂编程。除了软件中已有的内置库外,还有一些平台可以查找新的着色器,而无需自己创建。着色器艺术家社区正在不断壮大,您经常可以免费使用他们分享的作品。

要查找 .FS.NET,请使用 .FS.NET: https://www.interactiveshaderformat.com/

要查找 .FRAG: http://glslsandbox.com/https://www.shadertoy.com/

警告:HeavyM 不支持 .FRAG。有必要将其转换为 .ISF,我们在下文中提供了转换方法。

请务必检查通常在着色器代码开头指定的许可中的使用权。如果没有特别说明,则默认适用版权,我们强烈建议您与程序作者讨论,如果您希望将其用于商业用途。

开发自己的着色器

如果要创建自己的着色器,我们建议您直接使用 ISF 格式,这样可以最大限度地兼容各种应用程序。本文的目的并不是学习 ISF 格式使用的语言 GLSL 代码。为此,我们建议您阅读内容非常全面的 .NET 网站:

不过,要开始使用,请随时访问 ISF 网站并修改现有的着色器。通过该互动网站,您可以实时查看对着色器所做的修改。您也可以从基本模板开始。

创建和编辑着色器的主要缺点是没有错误反馈。当出现设计问题时,着色器不会运行或显示任何内容。这样就很难找到错误的根源。因此,必须严格编写代码。

第 2 部分:HeavyM 中的着色器

HeavyM 软件内置的视觉效果库中有几百种本地着色器。根据所使用的功能,软件可使用多种类型的特效。

图形效果着色器

点击界面右侧的红色图标,就可以进入自动适应绘制图形的效果类别。这些效果与左侧图层面板中的组相关联。一个组中的所有形状都具有相同的外观。如果要为不同的形状设置不同的效果,则需要创建其他组并将形状添加到这些组中。

HeavyM 着色器 - 对形状的影响

目前无法在此类别中添加或修改现有的特效着色器。

图像生成着色器

在通过右侧垂直工具栏上的白色图标进入的面板中,添加图像生成着色器作为源。这些着色器需要创建一个播放器才能显示。点击目标图标,将源链接到播放器。图像生成着色器没有默认的持续时间,因为它是一个循环运行的程序。不过,您可以更改源的显示持续时间。

着色器 - 生成效果

处理玩家的着色器

你可以对播放器应用图像处理特效。为此,请选择播放器,然后在左下角的属性中使用 + 按钮添加特效。特效会一个接一个地添加。每个播放器都是独立的,因此不同播放器的源和处理效果都会不同,即使播放器在同一个组中也是如此。

着色器 - 玩家特效

在序列上处理着色器

图像处理着色器也可应用于整个视频输出。这些效果是相对于序列而言的。要为序列添加处理效果,请单击齿轮并使用 + 按钮添加着色器。序列上的处理效果与播放器上的处理效果相同。

HeavyM 着色器 - 序列效果

序列上的过渡着色器

转场也与序列相关,并应用于整个视频输出。默认情况下,应用的过渡是 0.20 秒的淡入淡出。通过点击序列的齿轮可在菜单中修改该转场。转场只应用于序列的输入。

HeavyM - 过渡

导入着色器

我们看到,HeavyM 中主要有两大类着色器:生成着色器和处理着色器。HeavyM 可以轻松组合这两类着色器。HeavyM 在每个着色器选择窗口的库选项卡中提供了默认着色器。所有这些着色器都是 .FS,因此符合 ISF 标准。要在 "我的着色器 "选项卡中导入自己的着色器,必须遵守这一标准。这样就可以通过 HeavyM 的界面轻松修改着色器的参数。

您想将其他着色器格式导入 HeavyM?使用此工具转换着色器非常简单:桌面 ISF 编辑器(Windows 测试版/Mac)具有 "从 GLSL 沙盒导入 "和 "从 Shadertoy 导入 "功能。

最后,如果您想详细了解 ISF 格式的架构,以便创建自己的格式,我们建议您查看 ISF 格式文档:https://docs.isf.video/

第 3 部分:控制着色器

着色器可实现实时视觉效果,无需经过渲染阶段即可实时修改。以下是控制特效和创建交互式视觉效果的各种可能性。

单击源图标上的齿轮可以修改着色器参数。数值标度在 0 和 100 之间标准化,并不对应特定单位。HeavyM 提供了不同的参数变化模式,点击每个着色器参数旁边的箭头即可找到。

固定值模式

这是默认模式,可以用鼠标更改数值。缺点是一次只能更改一个参数。您也可以用键盘输入数值。

价值生成器

HeavyM 提供 7 种数值发生器,可以自动修改着色器的参数。这些都是 LFO(低频振荡器)类型的发生器,与音乐软件或合成器中的发生器类似。每个发生器都有两种动画模式:BPM 或时间模式。BPM 模式与界面右下方的总节奏(以节拍器图标表示)相连。时间模式允许你定义一个独立于总 Tempo 的频率。

HeavyM - LFO

通过合理分析进行控制

界面右下方是声音分析模块。它可以检测 3 个不同频率范围的振幅变化:低音 中音 高音。您可以在着色器参数的变化模式中找到这些值的变化。

HeavyM 着色器 - 声音分析

MIDI控制

您希望同时手动控制几个参数?使用 MIDI 协议。市场上有很多 MIDI 音乐控制器。它们都与 HeavyM 兼容。通过界面右上角的橙色图标,在配置窗口中连接硬件。然后,通过 MIDI 学习模式可以配置着色器参数与硬件按键之间的链接。

HeavyM 着色器 - MIDI

总结

着色器提供了无限的创意可能性。只需点击几下,这些程序就能让你发挥显卡的威力。您的电脑可以让您轻松使用生成艺术,即通过算法创作作品。许多数字艺术家都使用这种技术,例如安托万-施密特(Antoine Schmidt)、米格尔-谢瓦利埃(Miguel Chevalier)、维拉-莫尔纳尔(Vera Molnár)、杜振军(Du Zhenjun)、丹尼尔-罗津(Daniel Rozin... 

通过 HeavyM,我们发现使用和控制着色器非常简单。将它们无限组合,创造出自己的视觉效果和个性!