iShader

iShader 是一个用 Metal 编写的开源着色器集合,专为 SwiftUI 项目设计。 该软件包根据着色器的用例和功能组织成不同的子模块。

音频可视化 (AudioVisualizer)

此模块中的着色器旨在响应声音频率的变化。 本节中的着色器主要为非科学目的而设计。 它的编写是为了在可视化音乐时看起来具有响应性和美观性。

色彩效果 (ColorEffect)

色彩效果着色器充当每个像素颜色的滤镜效果。 您可能在编辑手机拍摄的照片时多次使用过它们。

扭曲效果 (DistortionEffect)

扭曲效果会操纵每个像素的位置。 在许多视频编辑工具中都可以看到。

图层效果 (LayerEffect)

与色彩效果非常相似,但功能更强大。 这些着色器能够采样 SwiftUI layer 在从任何 position 派生的位置,然后应用某种转换以产生新的颜色。

着色器艺术 (ShaderArt)

使用纯数学的艺术! 结果令人着迷。

转场 (Transition)

转场是一种动画,可以平滑地动画两个 SwiftUI Views 之间的中间步骤。

观看实际效果

Book iShader 是一个基于 SwiftUI 的示例应用程序,演示了 iShader 库中提供的所有 metal 片段着色器集合。

资源

大多数着色器来源于 ShaderToyGL-Transition 等平台,并随后针对 Metal 进行了适配。 在包含到 iShader 之前,已确保原始代码以宽松的许可证发布。 原始来源的链接在每个文件的标头中提供。