书籍详情
Unity特效制作:Shader Graph案例精讲

作者:[西] 阿尔瓦罗·阿尔达(álvaro Alda)著,周子衿 译
出版社:清华大学出版社
出版时间:2025-05-01
ISBN:9787302688327
定价:¥129.00
购买这本书可以去
内容简介
《Unity特效制作:Shader Graph案例精讲》聚焦于Shader Graph 的使用技巧,通过丰富的实例和操作指南来帮助读者理解着色器背后的数学知识和理论基础,进而学会在Unity 中熟练运用Shader Graph 制作各种特效:基础的扫描线效果、复杂的材质模拟(如卡通水面和气泡粒子效果)以及更多虚拟现实效果。《Unity特效制作:Shader Graph案例精讲》适合Unity 开发者和3D 艺术家阅读和参考,无论是初学者还是有一定基础的读者,都可以通过本书的学习运用Unity 创造惊人的视觉效果,为玩家营造出沉浸式体验。
作者简介
阿尔瓦罗·阿尔达(álvaro Alda),Voodo0公司高级游戏开发人员,主要基于Entitas架构创建益智休闲类手机游戏原型。具有丰富的游戏和Unity开发经验,是Tooth Fairy游戏(下载量超过1000万次)和Doggy Doctor游戏(下载量超过100万次)的主要开发者。除了游戏开发,他也喜欢为游戏开发人员和美术人员开发一些好用的工具。
目录
第1章 着色器简介 001
1.1 着色器、网格和计算对象 001
1.2 着色器编程 007
1.2.1 顶点和片元着色器 008
1.2.2 着色器编程语言 009
1.2.3 着色器工具Shader Graph 010
1.2.4 着色器的数学基础 011
1.3 小结 016
第2章 Shader Graph简介 017
2.1 创建Unity 3D项目 017
2.2 Unity编辑器 018
2.3 创建第一个着色器 019
2.4 创建材质 024
2.5 渲染管线 026
2.5.1 URP管线 026
2.5.2 将项目升级到URP 026
2.5.3 安装URP包 027
2.5.4 设置URP资源 029
2.5.5 升级旧有材质 031
2.6 Shader Graph编辑器 032
2.6.1 Main Preview选项卡 033
2.6.2 Blackboard窗口 033
2.6.3 Graph Inspector 035
2.6.4 Master Stack 037
2.6.5 Vertex块 038
2.6.6 Fragment块 039
2.7 Shader Graph元素 053
2.7.1 Nodes 053
2.7.2 Properties 058
2.7.3 Sticky Notes 062
2.8 小结 062
第3章 常用节点 063
3.1 UV节点 065
3.2 One Minus节点 068
3.3 Add节点 068
3.4 Clamp节点 069
3.5 Multiply节点 070
3.6 Sine节点 071
3.7 Time节点 072
3.8 Remap节点 074
3.9 Lerp节点 074
3.10 Fraction节点 077
3.11 Step节点 079
3.12 SmoothStep节点 080
3.13 Power节点 081
3.14 Position节点 082
3.15 Dot Product节点 084
3.16 Posterize节点 085
3.17 Procedural Noise节点 086
3.17.1 Simple Noise节点 088
3.17.2 Gradient Noise节点 089
3.17.3 Voronoi Noise节点 089
3.18 Fresnel节点 092
3.19 小结 093
第4章 动态着色器 095
4.1 3D扫描线 098
4.1.1 使用Position节点显示对象坐标 098
4.1.2 使用Split节点定义垂直渐变 100
4.1.3 使用Multiply节点和Fraction节点实现重复 101
4.1.4 动态效果:使用Time节点和Add节点 103
4.1.5 对比度调整:使用Power节点 104
4.1.6 添加自定义颜色 105
4.1.7 使用点积节点设置自定义方向 107
4.1.8 公开属性 109
4.2 箭头图案 111
4.2.1 创建并设置Line Renderer 111
4.2.2 创建对角线图案 114
4.2.3 使用Absolute节点创建垂直对称 115
4.2.4 使用Fraction节点和Step节点为箭头图案创建清晰的边缘 116
4.2.5 使箭头在Line Renderer上滚动显示 118
4.2.6 自定义箭头图案的颜色 119
4.3 消融效果 120
4.3.1 使用Gradient Noise节点创建噪声纹理 120
4.3.2 添加噪声纹理到Alpha输入 122
4.3.3 使用Add节点实现逐渐消融的效果 122
4.3.4 动态PingPong消融效果 124
4.3.5 沿自定义方向的消融效果 125
4.3.6 创建带颜色的溶解边缘 126
4.4 全息投影着色器 129
4.4.1 使用Screen Position节点创建垂直渐变 129
4.4.2 使用Fraction节点创建重复图案 131
4.4.3 使用Noise节点随机化图案 132
4.4.4 使用Add节点和Time节点创建动态图案 134
4.4.5 为渐变全息线条添加颜色 135
4.4.6 通过Fresnel节点增强效果 136
4.4.7 使用Logic节点和Random节点创建闪烁效果 139
4.5 重构着色器 142
4.6 小结 144
第5章 Vertex着色器 145
5.1 程序性游鱼动画 146
5.1.1 导入并设置鱼类网格 147
5.1.2 获取小鱼模型的朝向 149
5.1.3 使用正弦节点创建波形图案 152
5.1.4 使波形模式动态化 153
5.1.5 沿指定轴变形网格 155
5.1.6 调整波形强度 158
5.2 体积雪效果 160
5.2.1 将3D模型导入场景 160
5.2.2 定义雪的方向遮罩 161
5.2.3 沿法线挤出几何体 164
5.2.4 修复破损的挤出网格 168
5.2.5 添加遮罩颜色 170
5.2.6 添加发光的菲涅耳效果 172
5.3 从黑洞中生成对象 174
5.3.1 完成准备工作 175
5.3.2 使顶点向网格中心坍缩 175
5.3.3 设置坍缩的目标奇点 177
5.3.4 根据顶点与目标奇点的距离来坍缩顶点 179
5.3.5 添加坍缩发光颜色 182
5.4 小结 184
第6章 扭曲着色器 185
6.1 冰纹理折射 187
6.1.1 准备工作 187
6.1.2 修改场景颜色以创建扭曲效果 188
6.1.3 使用冰面纹理修改场景颜色 188
6.1.4 使用冰面纹理修改场景颜色 192
6.1.5 利用冰面纹理和颜色自定义着色器 195
6.2 黑洞扭曲效果 197
6.2.1 创建黑洞中心 198
6.2.2 使用粒子系统实现广告牌效果 200
6.2.3 使用Twirl节点创建螺旋纹理 205
6.2.4 使用螺旋纹理修改场景颜色 207
6.2.5 为螺旋纹理创建遮罩 209
6.2.6 为螺旋纹理添加动态旋转 212
6.3 小结 214
第7章 高级着色器 215
7.1 卡通风格的水着色器 215
7.1.1 准备工作 216
7.1.2 访问深度缓冲区以使用Scene Depth节点创建泡沫 218
7.1.3 创建水波光影 224
7.1.4 使用SubGraph复用节点组 228
7.1.5 利用径向剪切添加径向变形 230
7.1.6 为Voronoi单元添加移动效果 232
7.1.7 添加额外的光影层 234
7.1.8 为水波光影纹理添加颜色 237
7.1.9 使水面顶点发生变形 239
7.2 虹彩泡泡着色器 245
7.2.1 准备工作 246
7.2.2 创建和设置反射 247
7.2.3 创建虹彩动态图案 255
7.2.4 添加薄膜干涉渐变 257
7.2.5 添加边缘透明度和颜色 261
7.3 小结 268
第8章 交互式雪地效果 269
8.1 配置场景 269
8.2 赋予角色移动能力 273
8.2.1 设置IDE 274
8.2.2 创建角色移动脚本 277
8.3 创建雪地平面3D对象 281
8.3.1 创建细分平面 282
8.3.2 将平面导入Unity 288
8.4 创建交互式雪地Shader Graph 290
8.4.1 Shader Graph设置 290
8.4.2 利用噪声进行位移 291
8.4.3 为雪地添加颜色和遮蔽效果 293
8.5 与雪地交互 295
8.5.1 使用渲染器纹理 295
8.5.2 绘制角色的移动路径 298
8.5.3 仅记录角色的移动路径 301
8.5.4 更新Main Camera的剔除遮罩 303
8.6 将渲染器纹理用作位移遮罩 304
8.7 小结 308
1.1 着色器、网格和计算对象 001
1.2 着色器编程 007
1.2.1 顶点和片元着色器 008
1.2.2 着色器编程语言 009
1.2.3 着色器工具Shader Graph 010
1.2.4 着色器的数学基础 011
1.3 小结 016
第2章 Shader Graph简介 017
2.1 创建Unity 3D项目 017
2.2 Unity编辑器 018
2.3 创建第一个着色器 019
2.4 创建材质 024
2.5 渲染管线 026
2.5.1 URP管线 026
2.5.2 将项目升级到URP 026
2.5.3 安装URP包 027
2.5.4 设置URP资源 029
2.5.5 升级旧有材质 031
2.6 Shader Graph编辑器 032
2.6.1 Main Preview选项卡 033
2.6.2 Blackboard窗口 033
2.6.3 Graph Inspector 035
2.6.4 Master Stack 037
2.6.5 Vertex块 038
2.6.6 Fragment块 039
2.7 Shader Graph元素 053
2.7.1 Nodes 053
2.7.2 Properties 058
2.7.3 Sticky Notes 062
2.8 小结 062
第3章 常用节点 063
3.1 UV节点 065
3.2 One Minus节点 068
3.3 Add节点 068
3.4 Clamp节点 069
3.5 Multiply节点 070
3.6 Sine节点 071
3.7 Time节点 072
3.8 Remap节点 074
3.9 Lerp节点 074
3.10 Fraction节点 077
3.11 Step节点 079
3.12 SmoothStep节点 080
3.13 Power节点 081
3.14 Position节点 082
3.15 Dot Product节点 084
3.16 Posterize节点 085
3.17 Procedural Noise节点 086
3.17.1 Simple Noise节点 088
3.17.2 Gradient Noise节点 089
3.17.3 Voronoi Noise节点 089
3.18 Fresnel节点 092
3.19 小结 093
第4章 动态着色器 095
4.1 3D扫描线 098
4.1.1 使用Position节点显示对象坐标 098
4.1.2 使用Split节点定义垂直渐变 100
4.1.3 使用Multiply节点和Fraction节点实现重复 101
4.1.4 动态效果:使用Time节点和Add节点 103
4.1.5 对比度调整:使用Power节点 104
4.1.6 添加自定义颜色 105
4.1.7 使用点积节点设置自定义方向 107
4.1.8 公开属性 109
4.2 箭头图案 111
4.2.1 创建并设置Line Renderer 111
4.2.2 创建对角线图案 114
4.2.3 使用Absolute节点创建垂直对称 115
4.2.4 使用Fraction节点和Step节点为箭头图案创建清晰的边缘 116
4.2.5 使箭头在Line Renderer上滚动显示 118
4.2.6 自定义箭头图案的颜色 119
4.3 消融效果 120
4.3.1 使用Gradient Noise节点创建噪声纹理 120
4.3.2 添加噪声纹理到Alpha输入 122
4.3.3 使用Add节点实现逐渐消融的效果 122
4.3.4 动态PingPong消融效果 124
4.3.5 沿自定义方向的消融效果 125
4.3.6 创建带颜色的溶解边缘 126
4.4 全息投影着色器 129
4.4.1 使用Screen Position节点创建垂直渐变 129
4.4.2 使用Fraction节点创建重复图案 131
4.4.3 使用Noise节点随机化图案 132
4.4.4 使用Add节点和Time节点创建动态图案 134
4.4.5 为渐变全息线条添加颜色 135
4.4.6 通过Fresnel节点增强效果 136
4.4.7 使用Logic节点和Random节点创建闪烁效果 139
4.5 重构着色器 142
4.6 小结 144
第5章 Vertex着色器 145
5.1 程序性游鱼动画 146
5.1.1 导入并设置鱼类网格 147
5.1.2 获取小鱼模型的朝向 149
5.1.3 使用正弦节点创建波形图案 152
5.1.4 使波形模式动态化 153
5.1.5 沿指定轴变形网格 155
5.1.6 调整波形强度 158
5.2 体积雪效果 160
5.2.1 将3D模型导入场景 160
5.2.2 定义雪的方向遮罩 161
5.2.3 沿法线挤出几何体 164
5.2.4 修复破损的挤出网格 168
5.2.5 添加遮罩颜色 170
5.2.6 添加发光的菲涅耳效果 172
5.3 从黑洞中生成对象 174
5.3.1 完成准备工作 175
5.3.2 使顶点向网格中心坍缩 175
5.3.3 设置坍缩的目标奇点 177
5.3.4 根据顶点与目标奇点的距离来坍缩顶点 179
5.3.5 添加坍缩发光颜色 182
5.4 小结 184
第6章 扭曲着色器 185
6.1 冰纹理折射 187
6.1.1 准备工作 187
6.1.2 修改场景颜色以创建扭曲效果 188
6.1.3 使用冰面纹理修改场景颜色 188
6.1.4 使用冰面纹理修改场景颜色 192
6.1.5 利用冰面纹理和颜色自定义着色器 195
6.2 黑洞扭曲效果 197
6.2.1 创建黑洞中心 198
6.2.2 使用粒子系统实现广告牌效果 200
6.2.3 使用Twirl节点创建螺旋纹理 205
6.2.4 使用螺旋纹理修改场景颜色 207
6.2.5 为螺旋纹理创建遮罩 209
6.2.6 为螺旋纹理添加动态旋转 212
6.3 小结 214
第7章 高级着色器 215
7.1 卡通风格的水着色器 215
7.1.1 准备工作 216
7.1.2 访问深度缓冲区以使用Scene Depth节点创建泡沫 218
7.1.3 创建水波光影 224
7.1.4 使用SubGraph复用节点组 228
7.1.5 利用径向剪切添加径向变形 230
7.1.6 为Voronoi单元添加移动效果 232
7.1.7 添加额外的光影层 234
7.1.8 为水波光影纹理添加颜色 237
7.1.9 使水面顶点发生变形 239
7.2 虹彩泡泡着色器 245
7.2.1 准备工作 246
7.2.2 创建和设置反射 247
7.2.3 创建虹彩动态图案 255
7.2.4 添加薄膜干涉渐变 257
7.2.5 添加边缘透明度和颜色 261
7.3 小结 268
第8章 交互式雪地效果 269
8.1 配置场景 269
8.2 赋予角色移动能力 273
8.2.1 设置IDE 274
8.2.2 创建角色移动脚本 277
8.3 创建雪地平面3D对象 281
8.3.1 创建细分平面 282
8.3.2 将平面导入Unity 288
8.4 创建交互式雪地Shader Graph 290
8.4.1 Shader Graph设置 290
8.4.2 利用噪声进行位移 291
8.4.3 为雪地添加颜色和遮蔽效果 293
8.5 与雪地交互 295
8.5.1 使用渲染器纹理 295
8.5.2 绘制角色的移动路径 298
8.5.3 仅记录角色的移动路径 301
8.5.4 更新Main Camera的剔除遮罩 303
8.6 将渲染器纹理用作位移遮罩 304
8.7 小结 308
猜您喜欢



