【免费下载链接】thebookofshaders
Step-by-step guide through the abstract and complex universe of Fragment Shaders.
本文以《The Book of Shaders》附录《如何在树莓派上运行示例程序》为核心,系统讲解如何用一块成本约 30 欧元的 Raspberry Pi 搭建完整的 GLSL 片元着色器开发环境:安装 Raspbian 与 glslViewer、拉取本书仓库、以-l实时预览模式"边改边看",并支持 ssh/sftp 远程编辑。读完本文,你将掌握一条不依赖昂贵 GPU 工作站、可在教室或工作坊低成本复制的 shader 学习与编码流水线。
为什么选择树莓派运行 shader
几年前,假设每个人都拥有一台带图形处理单元(GPU)的计算机还是一种奢望。如今大多数电脑都已配备 GPU,但在工作坊、课堂等批量教学场景中,"每人一台高性能 GPU 电脑"仍然是一道不低的门槛。
树莓派基金会(Raspberry Pi Foundation)推出的低成本单板计算机改变了这一局面:一块板子约 30 欧元(约 35 美元),就足以进入教室。对本书而言更关键的是,Raspberry Pi 搭载了一颗可用的 Broadcom GPU,并且可以直接从控制台访问——不需要额外的显示服务器或图形驱动配置,开箱即可用于 GLSL 渲染。这让它成为运行本书全部示例的理想载体。
glslViewer:本书配套的 GLSL 实时编程工具
为了让树莓派上的 shader 体验顺畅,本书作者为《The Book of Shaders》专门开发了开源命令行工具glslViewer。它具备两大核心能力:
- 运行本书全部示例:仓库中每个章节目录下的
.frag文件(如 02/hello_world.frag、03/space.frag)都可以直接交给 glslViewer 渲染。 - 保存即重编译(hot reload):程序会监视 shader 源文件,一旦你保存修改,shader 会被自动重新编译并立即渲染——这就是所谓的"实时编程"(live coding)体验:改一行代码,保存,画面立刻更新。
作为通用命令行工具,glslViewer 还能像 ImageMagick 一样融入bash脚本和 Unix 管道,例如在 第 04 章"运行你的 Shader" 中演示的用法:
glslViewer yourShader.frag yourInputImage.png -w 500 -h 500 -E screenshot,yourOutputImage.png其中-w/-h指定渲染窗口尺寸,-E后可接screenshot,输出文件名导出静态截图。glslViewer 也是 openFrame.io 这类数字艺术展示平台在树莓派上编译和展示 shader 作品的底层方案。
第一步:安装 Raspbian 并保持系统最新
树莓派上的推荐系统是Raspbian——一个专为 Raspberry Pi 打造的、基于 Debian 的 Linux 发行版。先从官网下载镜像烧录到 SD 卡,完成首次启动配置并登录系统后,先让软件源与已装软件保持最新:
sudo apt-get update sudo apt-get upgradeapt-get update刷新软件包索引,apt-get upgrade将系统组件升级到当前源中的最新版本。树莓派上的 apt 源通常已包含本书所需的工具包,无需额外添加第三方源。
第二步:安装 git 与 glslViewer
接着安装本书本地副本所需的版本控制工具,以及本书的 shader 运行器:
sudo apt-get install git-core glslviewergit-core:git 版本控制客户端,用于拉取本书仓库;glslviewer:Raspbian 软件源中的 glslViewer 包(软件包名小写,安装后提供glslviewer/glslViewer命令)。
第三步:拉取本书仓库到本地
在用户主目录下克隆《The Book of Shaders》仓库并进入:
cd ~ git clone https://gitcode.com/gh_mirrors/th/thebookofshaders.git cd thebookofshaders克隆完成后,仓库根目录即为本书的完整内容:00/至18/各章节目录(每章包含README.md及对应的.frag示例与插图)、appendix/附录、glossary/术语表、examples/示例画廊等。目录结构与本书网站上完全一致,所有章节与示例均可离线阅读。
提示:本书站点的网页由 PHP 渲染(参见 index.php 与 header.php),若想用浏览器完整浏览全书,可参考附录《如何离线阅读本书》的方法,在树莓派上执行
git clone --recursive拉取子模块后,用php -S localhost:8000启动本地服务器,再访问http://localhost:8000/。树莓派上只需额外sudo apt-get install php即可。
第四步:运行示例
进入仓库后,直接用glslviewer渲染任意一个.frag文件即可:
glslviewer 02/hello_world.frag以 02/hello_world.frag 为例,它是本书最简单的 shader——把每个像素涂成品红色:
#ifdef GL_ES precision mediump float; #endif uniform float u_time; void main() { gl_FragColor = vec4(1.0,0.0,1.0,1.0); }更典型的示例是 03/space.frag,它用到了本书贯穿全篇的三组标准 uniforms:
uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time;glslViewer 会自动为 shader 注入u_time(运行时间)、u_resolution(画布分辨率)、u_mouse(鼠标位置)等 uniforms,因此这些示例在树莓派上与在浏览器中(通过 glslCanvas)渲染结果一致——这也是《The Book of Shaders》工具生态的设计目标:同一份代码,在 Linux、macOS、Windows、Raspberry Pi 与浏览器中无需改动即可运行。
第五步:用-l实时预览模式"边写边看"
glslViewer 最具教学价值的特性是-l标志(live 模式)。它会在屏幕角落开一个小窗口渲染 shader,同时你可以用任何文本编辑器(如nano、pico、vi、vim、emacs)修改源码,每次保存后画面立即重新编译刷新:
glslviewer -l 03/space.frag这种"左改右看"的工作流,正是实时编程(live coding)的精髓:glslViewer 负责持续重编译与渲染,编辑器负责代码,二者互不阻塞。
更妙的是,即使你通过 ssh/sftp 远程连接到树莓派,这一模式依然有效:在本地用支持 sftp 的编辑器编辑远程文件,保存的瞬间树莓派上的 glslViewer 就会重编译渲染——你完全可以躺在家里的沙发上,远程操作教室里的树莓派调试 shader。
进阶:把 shader 融入主流框架
如果树莓派上运行的不仅是命令行渲染,你还可以参考 第 04 章 与仓库 04/ 目录下的框架示例(Three.js、Processing、OpenFrameworks、SFML),把本书同款 uniforms 接入你熟悉的编程环境。其中 openFrameworks 的 ofxShader 插件还专门针对树莓派做了 OpenGL ES 的自动转换支持,并内置 hot-reload 能力,是树莓派上进行更大规模 shader 创作时的推荐选择。
小结
| 步骤 | 命令 | 作用 |
|---|---|---|
| 系统更新 | sudo apt-get update && sudo apt-get upgrade | 刷新并升级软件源 |
| 安装依赖 | sudo apt-get install git-core glslviewer | 安装 git 与 glslViewer |
| 拉取仓库 | git clone https://gitcode.com/gh_mirrors/th/thebookofshaders.git | 获取本书全部源码与文档 |
| 基本运行 | glslviewer 02/hello_world.frag | 渲染单个 shader |
| 实时预览 | glslviewer -l 03/space.frag | 屏幕角落渲染 + 保存即重编译 |
借助 Raspberry Pi 的 Broadcom GPU 与 glslViewer 的实时重编译能力,《The Book of Shaders》的整套教程可以在一台约 30 欧元的设备上完整跑起来。无论是课堂教学、工作坊演示,还是远程 ssh 编码,这套方案都把学习 GLSL 的硬件门槛降到了最低。
【免费下载链接】thebookofshaders
Step-by-step guide through the abstract and complex universe of Fragment Shaders.
相关推荐
在树莓派上运行 The Book of Shaders 示例:glslViewer 实时 GLSL 编程实战指南
在树莓派上运行 The Book of Shaders 示例:glslViewer 实时 GLSL 编程实战指南 本指南围绕 The Book of Shade
在树莓派上运行 The Book of Shaders 示例:glslViewer 安装与 GLSL 实时调试实战指南
在树莓派上运行 The Book of Shaders 示例:glslViewer 安装与 GLSL 实时调试实战指南 本文面向希望在低配置、低成本硬件(如树莓
树莓派 GLSL 实战:《The Book of Shaders》示例运行与 glslViewer 实时着色器环境搭建指南
树莓派 GLSL 实战:《The Book of Shaders》示例运行与 glslViewer 实时着色器环境搭建指南 导读 本篇技术指南围绕《The Bo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考