【免费下载链接】thebookofshadersStep-by-step guide through the abstract and complex universe of Fragment Shaders.项目地址https://gitcode.com/gh_mirrors/th/thebookofshaders点击查看免费下载导读本文围绕《The Book of Shaders》附录「如何在树莓派上运行示例程序」展开完整讲解在 Raspberry Pi 上从零搭建 GLSL 着色器运行环境、克隆本书仓库、以及借助glslViewer这一实时编码工具交互式运行与调试全部示例的完整流程。读完本文你将掌握在树莓派乃至任意 Linux 控制台环境上运行本书.frag示例、利用-l标志边编辑边实时预览、以及通过 ssh/sftp 远程协作的整套实战方案。glslViewer 在控制台窗口中实时渲染着色器是《The Book of Shaders》在树莓派上的官方运行工具演示动图出自 第 04 章为什么选择树莓派运行着色器示例《The Book of Shaders》以片段着色器Fragment Shader为核心全部示例都是运行在 GPU 上的 GLSL 程序。在几年前假设每个人都拥有一台带图形处理单元GPU的电脑并不现实如今虽然大多数电脑都配备了 GPU但在工作坊或课堂教学场景中「要求每个学员都有独显机器」依然是较高的门槛。树莓派基金会推出的廉价迷你电脑单台成本约 35 欧元/美元改变了这一局面——它们大量进入了课堂。更关键的是树莓派板载了一块 Broadcom GPU可以直接从控制台console访问无需额外的图形界面环境。这意味着你可以在纯命令行环境下编译并显示 GLSL 着色器而这正是运行本书全部示例的理想硬件前提。glslViewer为本书打造的 GLSL 实时编码工具为了能在树莓派这类低配硬件上顺畅运行本书示例作者专门开发了一个灵活的命令行 GLSL 工具——glslViewer。它具备两个对学习过程至关重要的能力可以运行本书中的全部示例每个示例的.frag文件都能直接交给 glslViewer 编译并渲染保存即重编译的实时反馈当用户修改并保存 shader 代码时程序会自动重新编译并立即重新渲染。这意味着你可以实时看到每一行改动对画面产生的影响把「抽象」的着色器编码变成可见、可调的体验。glslViewer 只是本书作者打造的着色器工具生态之一浏览器端有 glslCanvas本书所有在线示例的渲染引擎在线编辑器有 glslEditor而 glslViewer 负责的是控制台场景——详见 第 04 章「运行你的着色器」。该章还展示了 glslViewer 的通用命令行用法glslViewer yourShader.frag yourInputImage.png -w 500 -h 500 -E screenshot,yourOutputImage.png即将.frag文件可附带输入纹理图编译渲染为指定尺寸的窗口甚至可以直接导出截图用法类似 ImageMagick。环境准备安装 Raspbian 与所需软件包在树莓派上搭建运行环境前提是已安装并完成登录Raspbian树莓派官方基于 Debian 的 Linux 发行版。登录系统后依次执行以下命令sudo apt-get update sudo apt-get upgrade sudo apt-get install git-core glslviewer cd ~ git clone https://gitcode.com/gh_mirrors/th/thebookofshaders.git cd thebookofshaders对命令逐条说明命令作用sudo apt-get update刷新软件源索引确保能获取到最新可用版本sudo apt-get upgrade升级系统中已安装的软件包到最新状态sudo apt-get install git-core glslviewer安装 Git 客户端git-core与glslviewer工具本体cd ~切换到当前用户主目录作为克隆仓库的落脚点git clone ...拉取本书仓库的本地副本后续所有示例文件都在thebookofshaders目录下cd thebookofshaders进入仓库目录准备运行示例需要说明的是以上安装流程以 Raspbian 为适用前提glslviewer是否可直接通过apt安装取决于你所使用的发行版版本与软件源配置例如在 macOS 上附录 02 则建议改用 Homebrew 的brew install glslviewer方式见 附录 02「如何打印本书」。获取本书本地副本克隆仓库文档中「制作本书的本地副本」即上一步中的git clone操作。完成克隆后仓库根目录下每个数字编号目录如 02/、03/都对应书中的一个章节目录内既有章节正文README.md也包含该章的全部示例着色器.frag文件——这些就是 glslViewer 要运行的对象。如果你希望在无网络的环境如长途旅行中继续学习还可以参考 附录 00「如何离线浏览本书」用php -S localhost:8000启动本地服务器即可在浏览器中离线翻阅全书。用 glslviewer 运行示例基本用法与-l实时预览克隆仓库并进入thebookofshaders目录后运行示例的方式非常直接直接调用glslviewer并传入示例文件路径例如glslviewer 03/space.frag更进一步配合-l标志可以把示例渲染到屏幕的一个角落小窗显示与此同时你可以用任意文本编辑器如nano、pico、vi、vim、emacs打开并修改这个.frag文件glslviewer 03/time.frag -l由于 glslViewer 具备「保存即重编译」能力你每保存一次编辑画面就会立即更新——这构成了一个极简的 GLSL 实时编程工作台。远程场景这个组合对通过ssh/sftp 连接的场景同样有效。例如你用 ssh 登录树莓派后启动glslviewer -l再通过 sftp 或其他方式远程编辑同目录下的.frag文件保存后树莓派上渲染的窗口会即时刷新。这让树莓派可以被当作一台低成本的「着色器渲染终端」来使用。示例着色器依赖的 uniform 输入本书的示例着色器之所以能在 glslViewer 中「开箱即跑」是因为整套示例遵循了一套统一的 uniform 命名约定。以 第 03 章「Uniforms」 的说明为准glslViewer / glslCanvas 会自动向每个着色器注入以下输入uniform vec2 u_resolution; // 画布尺寸 (width, height) uniform vec2 u_mouse; // 鼠标位置屏幕像素 uniform float u_time; // 自加载以来的秒数例如 03/time.frag 只依赖u_time用正弦函数驱动红色通道的动画#ifdef GL_ES precision mediump float; #endif uniform float u_time; void main() { gl_FragColor vec4(abs(sin(u_time)),0.0,0.0,1.0); }而 03/space.frag 则同时使用u_resolution与gl_FragCoord把归一化坐标映射到红绿通道#ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main() { vec2 st gl_FragCoord.xy/u_resolution; gl_FragColor vec4(st.x,st.y,0.0,1.0); }理解这套 uniform 约定是你在树莓派上修改、调试示例时的重要基础——改的是 GLSL 代码喂给它的是由 glslViewer 自动提供的统一输入。从源码看 glslViewer 在本书构建流程中的角色glslViewer 不仅用于交互式学习它也是本书自身的「图片生成引擎」。在仓库根目录的 Makefile 中make clean pdf、make clean epub等命令会调用 src/parseBook.py 将各章节解析并编译成书。该脚本在扫描章节正文时凡遇到div classcodeAndCanvas嵌入的示例就会调用 glslViewer 以**无头模式headless**把着色器渲染成截图插入文档见 src/parseBook.pyglslViewer shader.frag [textures...] --headless -e wait,0.5 -E screenshot,output.png这从侧面印证了 glslViewer 的两项关键能力既能渲染单个窗口画面交互模式也能脱离显示环境批量产出渲染结果headless 模式因此它可以被嵌入脚本与 UNIX 管道像 ImageMagick 一样作为「着色器命令行工具」使用——这也是 第 04 章 所强调的定位。顺带一提openFrame.io 也正是基于 glslViewer 在树莓派上展示着色器艺术作品。小结与延伸阅读至此你已经掌握了一条完整的树莓派 GLSL 学习路径装系统安装 Raspbian 并登录装工具sudo apt-get install git-core glslviewer拿示例git clone本书仓库并进入目录跑起来glslviewer 示例.frag直接运行加-l边编辑边预览ssh/sftp 下同样适用改起来基于u_time、u_resolution、u_mouse等 uniform 约定修改示例保存即见效果。与本文配套的仓库资料还可以继续深入附录 00如何离线浏览本书——本地服务器方案附录 02如何打印本书——利用 glslViewer 把示例编译成图片并生成book.pdf/book.epub第 04 章运行你的着色器——glslViewer、glslCanvas、glslEditor 工具生态全景第 03 章Uniforms——示例着色器统一输入的完整讲解。把树莓派变成你的个人 GLSL 练习机成本低、反馈快非常适合课堂与工作坊场景。赞分享【免费下载链接】thebookofshadersStep-by-step guide through the abstract and complex universe of Fragment Shaders.项目地址https://gitcode.com/gh_mirrors/th/thebookofshaders点击查看免费下载相关推荐树莓派 GLSL 实战《The Book of Shaders》示例运行与 glslViewer 实时着色器环境搭建指南树莓派 GLSL 实战《The Book of Shaders》示例运行与 glslViewer 实时着色器环境搭建指南 导读 本篇技术指南围绕《The Bo在树莓派上运行 The Book of Shaders 示例glslViewer 实时 GLSL 编程实战指南在树莓派上运行 The Book of Shaders 示例glslViewer 实时 GLSL 编程实战指南 本指南围绕 The Book of ShadeThe Book of Shaders 树莓派实战用 glslViewer 在 Raspberry Pi 上运行全部 GLSL 示例The Book of Shaders 树莓派实战用 glslViewer 在 Raspberry Pi 上运行全部 GLSL 示例 本文以《The Book上一篇SDR 终极指南免费跨平台SDR软件快速精通教程下一篇ngx-quill事件处理掌握6大输出事件的完整使用场景创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考