1. 项目定位与用途
Radiant 是一个精选的生成式着色器艺术集合,定位为 Web 视觉效果的即插即用资源库。它提供 94 个覆盖 Canvas 2D 与 WebGL 的着色器,每个均为独立 HTML 文件,零依赖、零构建步骤。主要用途是为网站、演示文稿或数字标牌提供动态背景、Hero 视觉元素或创意编码参考,降低高质量 Web 图形集成的门槛。
Radiant 提供 94 个精选生成式着色器,每个均为独立 HTML 文件,零依赖零构建。通过 iframe 嵌入网页,支持 postMessage 动态调整参数,6 种 CSS 滤镜配色方案。适用于网站背景、Hero 区域、数字标牌等。本页包含完整安装指南、使用方法和实现特点。
Radiant 是一个精选生成式着色器艺术库,提供 94 个零依赖的 Canvas 2D/WebGL 视觉效果,通过 iframe 即可嵌入网页,支持运行时参数调整和 6 种 CSS 滤镜配色切换,适用于网站背景、Hero 区域等多种场景。
Radiant 是一个精选的生成式着色器艺术集合,定位为 Web 视觉效果的即插即用资源库。它提供 94 个覆盖 Canvas 2D 与 WebGL 的着色器,每个均为独立 HTML 文件,零依赖、零构建步骤。主要用途是为网站、演示文稿或数字标牌提供动态背景、Hero 视觉元素或创意编码参考,降低高质量 Web 图形集成的门槛。
Radiant 解决了 Web 开发者集成复杂着色器效果时的三大痛点:一是消除 WebGL/Canvas 的开发学习成本和代码复杂度,提供开箱即用的文件;二是避免依赖管理和构建配置的麻烦,每个着色器可直接在浏览器运行;三是提供统一的参数控制接口(postMessage)和配色方案(CSS filter),实现运行时定制而无需修改源码。此外,可见性暂停和 DPR 自适应等优化也减轻了性能负担。
项目明确适用于:网站全屏背景动画、 landing page 的 Hero 区域视觉、演示文稿和演讲背景、 lobby 或活动的数字标牌显示,以及创意编码学习与 remix。着色器按视觉风格分类(如 fill、object、particles、physics、noise、organic、geometric),用户可根据需求选择合适的效果。所有着色器均支持交互,适合需要用户参与的场景。
要本地运行 Radiant 画廊或开发新着色器,需执行以下步骤:首先克隆仓库(git clone https://github.com/pbakaus/radiant.git),然后进入目录运行 npm install 安装依赖。开发模式下使用 npm run dev 启动 Vite 开发服务器;生产构建使用 npm run build;若需生成着色器压缩包,运行 npm run build:zip。仓库中未明确给出其他包管理器(如 yarn)的指令,也未提供 CDN 或直接下载单文件的安装方式,但用户可直接从 static/ 目录复制 HTML 文件使用。
使用 Radiant 着色器非常简单:第一步,从在线画廊(radiant-shaders.com)下载压缩包,或直接从仓库 static/ 目录选取单个 HTML 文件;第二步,通过 iframe 嵌入页面,示例代码为 <iframe src="shader.html" style="position: fixed; inset: 0; width: 100%; height: 100%; border: 0; z-index: -1;"></iframe>;第三步,如需动态控制,使用 postMessage 向 iframe 发送参数更新,格式为 { type: 'param', name: 'PARAM_NAME', value: newValue }。所有可用参数及其范围定义在 src/lib/shaders.ts 中。配色切换则通过对 iframe 应用 CSS filter 实现,如 filter: hue-rotate(175deg) 对应蓝色方案。
Radiant 的技术实现具有几个关键特点:前端画廊基于 SvelteKit 2 + Svelte 5 构建,采用静态站点适配(@sveltejs/adapter-static);着色器本身完全独立,不依赖任何运行时库。性能优化方面,画廊组件使用 IntersectionObserver 实现 iframe 懒加载,并自动在不可见时暂停动画以节省电量;着色器渲染考虑设备像素比但上限为 2x,并目标 60fps。元数据驱动设计:src/lib/shaders.ts 集中管理所有着色器的参数、标签和 hero 布局配置,支持动态过滤与排序。仓库还包含脚本用于生成预览图(generate-previews.mjs)和视频(generate-videos.mjs),以及构建 zip 包的脚本(build-zip.mjs)。配色方案定义在 src/lib/color-schemes.ts,共 6 种,通过 CSS 滤镜实现无损切换。
只需使用 iframe 标签引用 static/ 目录下的 HTML 文件,并设置样式为全屏固定定位即可。示例:<iframe src="shader.html" style="position: fixed; inset: 0; width: 100%; height: 100%; border: 0; z-index: -1;"></iframe>。
通过 postMessage 向 iframe 的 contentWindow 发送消息,格式为 { type: 'param', name: '参数名', value: 新值 }。所有可用参数及其默认值、范围均定义在 src/lib/shaders.ts 文件中。
没有。每个着色器都是自包含的独立 HTML 文件,内联了样式和脚本,直接在浏览器中打开即可运行,无需安装任何库或执行构建。
Radiant 提供 6 种配色方案(Amber、Mono、Blue、Rose、Emerald、Arctic),通过对 iframe 应用 CSS filter 实现,无需修改着色器代码。例如,filter: hue-rotate(175deg) 对应蓝色方案。
可以。Radiant 采用 MIT 许可证,允许在个人或商业产品、客户项目中自由使用, attribution(署名)表示欢迎但非强制要求。