使用着色器
简而言之
着色器是在GPU上运行的小型图形程序,用于生成实时的生成式视觉效果。在投影映射中,它们能够提供无限且动态的纹理,而无需使用体积庞大的视频文件。借助HeavyM等软件,您可以轻松导入ISF等标准格式,并编辑生成式视觉效果,完全无需编写代码。.
什么是着色器?
着色器是一种专门设计用于在图形处理单元(GPU)上运行的计算机程序。. ‘着色器’(shader)一词源自‘阴影’(shade),因为着色器的最早用途之一就是模拟3D图形中的阴影和反射。然而,如今,, 着色器被用于各种各样的图形处理任务,, 从应用纹理和颜色到生成复杂的特效。.
着色器 在非常低的水平上运行,, 这意味着它们能够对构成图像或视频的各个像素进行直接且精确的控制。它们能够以极少的资源快速处理图像数据,因此特别 适用于实时图形应用程序,, 例如电子游戏、虚拟现实以及 视频映射.
各种类型的着色器
着色器有多种类型,包括处理 3D 数据点(顶点)的顶点着色器、利用这些数据点生成新形状的几何着色器,以及决定屏幕上每个像素最终颜色的片段着色器(也称为像素着色器)。着色器通常使用专门的编程语言编写,例如 GLSL(OpenGL着色语言)或适用于 DirectX 的 HLSL(高级着色语言)。.
像素着色器或片段着色器
片段着色器或像素着色器是一种专门用于单独计算每个像素颜色的着色器。. 它以图像中每个像素的数据(位置、纹理坐标、颜色)作为输入,并返回该像素的颜色。.
这些着色器正是您在使用 HeavyM 时最感兴趣的。它们通常是 .FRAG 文件,如果是 ISF 格式,则是 .FS 文件。. ISF 格式为 GLSL 片段提供了标准 着色器,, 使交互式应用程序更容易对其进行解析。.
顶点着色器
顶点着色器用于将顶点转换为像素。.
它们是 .VS 文件 这些文件有时会随像素着色器一同提供,名称相同,且必须位于同一文件夹中。.
HeavyM 形状效果着色器
点击 HeavyM 界面右侧的红色图标,即可访问会自动适应所绘形状的各类特效。这些特效与左侧图层面板中的组相关联。 同一组内的所有形状将具有相同的外观。若要对不同的形状应用不同的效果,您需要创建更多组,并将形状添加到这些组中。.

目前无法在此类别中添加或修改现有效果着色器的代码。.
图像生成着色器
您可以在右侧垂直工具栏中的白色图标所对应的面板中,将图像生成着色器添加为源。这些着色器需要创建一个播放器才能显示。然后,点击靶形图标将源与播放器关联。 图像生成着色器没有默认持续时间,因为它们是循环运行的程序。不过,您可以调整该源的显示时长。.
目前无法在此类别中添加或修改现有效果着色器的代码。.
图像生成着色器
您可以在右侧垂直工具栏中的白色图标所对应的面板中,将图像生成着色器添加为源。这些着色器需要创建一个播放器才能显示。然后,点击靶形图标将源与播放器关联。 图像生成着色器没有默认持续时间,因为它们是循环运行的程序。不过,您可以调整该源的显示时长。.

在播放器上处理着色器
您可以为播放器应用图像处理效果。要执行此操作,请选中播放器,然后在左下角的“属性”面板中点击“+”按钮添加效果。效果将按顺序添加。每个播放器都是独立的,因此即使播放器位于同一组中,其源效果和处理效果也会有所不同。.

导入或创建着色器
在哪里可以找到着色器?
使用 HeavyM 时,您无需掌握编程知识即可使用着色器。除了软件中已包含的库之外,, 有些平台可以让你找到新的着色器 而无需自己动手制作。着色器创作者的社区正在迅速壮大,而且 通常,你可以将他们分享的作品用于非商业项目。.
查找 .FS 着色器: https://www.interactiveshaderformat.com/
查找 .FRAG 着色器: http://glslsandbox.com/ 和 https://www.shadertoy.com/
注意:HeavyM 不支持 .FRAG 文件。需要将它们转换为 .ISF 格式,我们将在下文提供具体方法。.
请务必查阅许可协议中的使用权限,这些内容通常在着色器代码开头有所说明。如果没有具体说明,则默认受版权保护,因此如果您打算将该着色器用于商业用途,我们强烈建议您与作者进行沟通。.
导入着色器
如前所述,, 在 HeavyM 中,着色器主要分为两类:生成着色器和处理着色器。. HeavyM 允许您轻松组合这两类着色器。在每个着色器选择窗口的“库”选项卡中,HeavyM 提供了默认着色器。所有这些着色器均为 .FS 格式,因此均符合 ISF 标准。. 要将您自己的着色器导入“我的着色器”选项卡,, 它们必须符合此标准。这样,您就可以在 HeavyM 的界面中轻松修改着色器的参数。.
想将其他着色器格式导入 HeavyM 吗?使用以下工具转换着色器非常简单:
- https://magicmusicvisuals.com/utils/shadertoy_to_isf.php – Beta
- ISF Editor 软件(仅限 Mac)使用“从 GLSL Sandbox 导入”和“从 Shadertoy 导入”功能
开发自己的着色器
创建您自己的着色器, ,我们建议直接使用 ISF 格式,以确保与尽可能多的应用程序兼容。本文的目的并非教授 ISF 格式所使用的语言——GLSL 的编程。关于这方面,我们建议阅读以下内容非常全面的网站:
- https://thebookofshaders.com/ 对于 GLSL
- https://docs.isf.video/ 对于 ISF
不过,首先,, 欢迎访问 ISF 网站并修改现有的着色器。. 在这个交互式网站上,您可以实时查看着色器的修改情况。您还可以从一个基础模板开始。.
创建和修改着色器的主要缺点在于缺乏错误反馈。当出现设计问题时,着色器可能无法执行或无法显示任何内容,这使得难以定位错误根源。因此,在编写代码时务必细致入微。.
继续
本指南由……编写 HeavyM, ,这是一家自2013年起专注于视频投影映射的公司。.
如有任何问题、意见、建议等,请使用此联系表单: https://help.heavym.net/hc/requests/new. 保证在24小时内回复。.
常见问题(FAQ)
在视频映射中,什么是着色器?
着色器是一种计算机程序,用于在图形硬件上以高度灵活的方式计算渲染效果。在视频映射中,着色器可直接在GPU上生成动态的、实时的纹理以及对声音做出反应的视觉效果,而非播放预渲染的视频循环。.
什么是ISF格式?
ISF 是“交互式着色器格式”(Interactive Shader Format)的缩写。该标准基于 GLSL(OpenGL 着色语言),可让您在不同的 VJ 软件和投影映射软件之间轻松共享和使用生成式视觉效果,从而确保跨平台兼容性。.
使用着色器需要会编程吗?
不,你不需要是程序员。虽然着色器是用代码(GLSL)编写的,但像 HeavyM 您可以导入现成的 ISF 文件,或通过将内置着色器效果直接拖放至图形上来使用它们。.