着色器蓝图文档集
着色器蓝图(Shader Blueprint)让开发者用连线的方式构建 Shader,不写一行 GLSL 也能做出完整的 PBR、Unlit、Blinnphong 材质效果。本文档集是着色器蓝图的完整功能说明:从概念认知,到 IDE 里的每一步操作,到每个节点的输入输出与模式,再到从 Unity ShaderGraph 迁移时的逐节点对照。
| 文档 | 内容 | 适合谁 |
|---|---|---|
| 概念篇 | 蓝图是什么、两种资源、编译管线、类型系统与连线规则、端口颜色 | 第一次接触,先建立认知 |
| IDE 操作流程 | 创建 .bps、编辑器分区、加节点连线、Params 变量、快捷键、材质使用、蓝图函数 | 想立刻上手做一个 Shader |
| 材质类型与终端 | PBR / Blinnphong / Unlit / Particle 四种终端的每一个输入槽,以及渲染状态、附加 Pass、开关 | 配置输出与渲染方式时查 |
| 节点手册 · 输入与坐标 | 常量、顶点与几何、相机、场景、光照、物体、UV、纹理、程序化图形 | 搭图时查数据来源节点 |
| 节点手册 · 数学与逻辑 | 四则、常用函数、指数、三角、几何、波形、矩阵、通道、逻辑、导数 | 搭表达式网络时查 |
| 节点手册 · 颜色与艺术效果 | 色彩空间、色相饱和度、混合模式、法线处理、噪声、抖动、自定义函数 | 调颜色与做效果时查 |
| Unity ShaderGraph 对照 | 162 条 Unity 节点 → Laya 节点映射表、未覆盖清单、已知语义差异 | 从 Unity 迁移资产的用户 |
蓝图右键菜单当前提供 186 个节点,分为 12 个一级分类(另有一批供节点内部调用的隐藏实现节点, 以及只能从 Params 面板添加的颜色与纹理资产节点)。下表是各分类的覆盖情况:
完整 基本完整映射 部分 有损 / 子集 看配置 取决于开关 实验性 未完善 不支持 不导出
| 节点分类 | 菜单路径 | 覆盖度 | 说明 |
|---|---|---|---|
| 常量与向量 | basic/ | 完整 | Boolean / Int / Float / Vector2~4 / mat2~4,共 12 项(Vector2~4 各有「带 in 输入」的重载)。Color 常量从 Params 面板添加 |
| 顶点与几何数据 | inputdata/vertex、inputdata/geometry | 完整 | 对象空间 positionOS / normalOS / tangentOS / uv / uv1 / VertexColor,世界空间 positionWS / normalWS / tangentWS / biNormalWS / TBNMatrix |
| 相机与屏幕 | inputdata/camera | 完整 | 位置、朝向、Up、近远裁剪面、viewport(含宽高)、viewVector |
| 场景数据 | inputdata/scene | 看配置 | Time / fog 直接可用;sceneDepth、sceneColor 需相机开启深度纹理 / 不透明纹理,否则采到默认值 |
| 光照与物体 | inputdata/light、inputdata/object | 部分 | mainLightDirection / mainLightColor 在 PBR + 有方向光时取真值,Unlit 走 fallback;objectPosition / objectScale 在 GPU 实例化下不准(实例矩阵是顶点属性) |
| 数学运算 | math/ | 完整 | 76 个节点:四则、common、指数、三角与双曲、几何、波形、取整、重映射、向量投影、矩阵、导数 DDX/DDY/DDXY |
| 逻辑与分支 | logic/、math/if、math/forLoop | 完整 | and / or / nand / not / branch / comparison(6 种比较)/ all / any / isNaN / isInfinite / isFrontFace |
| 通道操作 | channel/、math/expression | 完整 | flip / swizzle(任意重排)/ channelMask / mask / append 组合分量 |
| UV 变换 | uv/ | 完整 | Tiling And Offset / panner / rotate / twirl / spherize / radialShear / polarCoordinates / flipbook / parallax / 屏幕 UV |
| 纹理采样 | texture/ | 完整 | 2D、法线(DX / OpenGL 两种)、Cubemap、Texture2DArray、Texture3D 五类采样节点;纹理资产本身从 Params 面板声明 |
| 程序化图形 | procedural/ | 完整 | ellipse / rectangle / roundedRectangle / polygon / roundedPolygon / checkerboard,边缘用 fwidth 抗锯齿 |
| 颜色与艺术效果 | color/、utility/ | 完整 | 色彩空间转换、色相 / 饱和度 / 对比度 / 白平衡、22 种混合模式、法线处理五件套、通道混合、dither |
| 噪声 | function/ | 部分 | GradientNoise / SimpleNoise / Voronoi 可用;Unity 的 Hash Type 选项无对应,固定用一种哈希 |
| 自定义与扩展 | function/custom、.bpsf | 完整 | 内嵌 GLSL 代码节点;蓝图函数 .bpsf 可封装子图并在多个蓝图间复用 |
- 程序蓝图 —— 用连线写脚本组件的蓝图(与着色器蓝图是两套独立功能)
- VFX Graph 教学文档集 —— GPU 粒子特效;其 ShaderGraph 输出可直接使用着色器蓝图产出的 Shader
- Unity 资源导出插件 —— 把 Unity 的
.shadergraph批量转成.bps