作者根据多年来从事3D行业的经验,又结合了自身多年培训团队成员的经历,通过由浅深、循序渐的讲解方式,将Unity Shader的语法结构、使用技巧、效果实现逻辑等内容详细地表达了出来。相信读者在读完本书之后,就可以从*初对于Unity Shader“一无所知”到*后“完全掌握”Unity Shader。
售 价:¥
纸质售价:¥70.30购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
封面页
书名页
版权页
作者简介
内容简介
彩插
前言
目录
第1章 3D数学基础
1.1 坐标与坐标系
1.1.1 坐标及坐标系的概念
1.1.2 3D中的坐标系
1.1.3 左右手坐标系
1.2 向量
1.2.1 向量的几种表示方法
1.2.2 向量的计算方法
1.2.3 相反向量
1.2.4 向量的模
1.2.5 标准化向量
1.3 向量运算
1.3.1 向量的加法运算
1.3.2 向量的减法运算
1.3.3 向量的缩放
1.3.4 向量的点积运算
1.3.5 向量的叉积运算
1.3.6 向量的运算法则
1.4 矩阵
1.4.1 矩阵的表示方法
1.4.2 方阵和单位矩阵
1.4.3 转置矩阵
1.5 矩阵运算
1.5.1 标量与矩阵相乘
1.5.2 矩阵之间的乘法
1.5.3 矩阵与向量相乘
1.5.4 矩阵的运算法则
1.6 使用矩阵进行变换
1.6.1 矩阵变换向量的原理
1.6.2 旋转矩阵
1.6.3 缩放矩阵
1.6.4 平移矩阵
1.7 矩阵的深入讲解
1.7.1 矩阵的行列式
1.7.2 余子式和代数余子式
1.7.3 通过代数余子式计算行列式
1.7.4 逆矩阵
1.7.5 正交矩阵
1.7.6 逆矩阵的运算法则
第2章 渲染流水线与Shader概念
2.1 渲染流水线概念
2.2 3D图形渲染完整流水线
2.3 空间变换
2.3.1 模型空间与世界空间
2.3.2 摄像机空间
2.3.3 裁切空间
2.3.4 屏幕空间
2.3.5 多个坐标空间存在的意义
2.4 现代GPU渲染流水线
2.5 Shader概念
2.5.1 什么是Shader
2.5.2 Shader和材质的关系与区别
第3章 ShaderLab语法基础
3.1 Shader的组织结构
3.2 Shader的名称
3.3 Properties
3.3.1 数值类属性
3.3.2 颜色和向量类属性
3.3.3 纹理贴图类属性
3.3.4 所有类型属性汇总
3.4 SubShader
3.4.1 SubShader的标签
3.4.2 Pass的渲染状态
3.5 Fallback
第4章 顶点-片段着色器基础
4.1 Shader编码工具
4.2 创建和使用Shader
4.3 Shader的编写方式
4.4 CG语法基础
4.4.1 编译指令
4.4.2 着色器函数
4.4.3 语义
4.4.4 在CG中调用属性变量
4.4.5 结构体
第5章 Unity的包含文件
5.1 包含文件的使用语法
5.2 UnityCG.cginc
5.2.1 顶点着色器输入结构体
5.2.2 顶点变换函数
5.2.3 向量变换函数
5.2.4 灯光辅助函数
5.2.5 视角向量函数
5.2.6 其他辅助函数和宏
5.3 UnityShaderVariables.cginc
5.3.1 空间变换矩阵
5.3.2 时间变量
5.4 其他包含文件
5.5 使用包含文件简化Shader
第6章 Shader中的光照模型
6.1 Lambert光照模型
6.1.1 Lambert光照模型理论
6.1.2 在Shader中获取灯光变量
6.1.3 基于Lambert光照模型的Shader
6.2 CG标准库函数
6.3 Half-Lambert光照模型
6.4 Phong光照模型
6.4.1 Phong光照模型理论
6.4.2 在Shader中获取环境光变量
6.4.3 基于Phong光照模型的Shader
6.5 逐像素光照
6.6 Blinn-Phong光照模型
6.6.1 Blinn-Phong光照模型理论
6.6.2 Blinn-Phong光照模型的Shader
6.7 灯光阴影
6.7.1 渲染路径
6.7.2 Pass标签
6.7.3 内置的multi_compile
6.7.4 实现阴影效果
第7章 透明效果
7.1 不透明物体的渲染顺序
7.2 透明物体的渲染顺序
7.3 混合透明效果
7.3.1 混合指令
7.3.2 混合系数
7.3.3 混合操作
7.3.4 混合透明的使用方法
7.3.5 混合透明效果
7.3.6 半透明物体的双面渲染
7.4 透明测试效果
7.4.1 透明测试的使用方法
7.4.2 透明测试效果
7.4.3 透明测试抗锯齿
7.5 模板测试
7.5.1 模板测试的计算流程
7.5.2 模板测试的使用语法
7.5.3 比较方法
7.5.4 模板操作
7.5.5 延迟渲染路径中的模板测试
7.5.6 模板测试透明效果
第8章 表面着色器的基础概念
8.1 为什么不先学习表面着色器
8.2 表面着色器的组织结构
8.3 编译指令中的可选参数
8.3.1 透明效果相关指令
8.3.2 阴影和细分相关指令
8.3.3 代码生成选项
8.3.4 其他选项
8.4 表面函数的语法结构
8.4.1 表面函数输入结构体
8.4.2 表面函数输出结构体
第9章 编写表面着色器
9.1 最简单的表面着色器
9.2 在表面着色器中使用法线贴图
9.3 表面着色器中的其他函数
9.3.1 顶点修改函数
9.3.2 自定义光照函数
9.3.3 最终颜色修改函数
9.4 曲面细分函数
9.4.1 固定数量的曲面细分
9.4.2 基于边长的曲面细分
9.4.3 视锥剔除曲面细分
9.4.4 基于距离的曲面细分
9.4.5 Phong曲面细分
9.5 透明效果
9.5.1 混合透明效果
9.5.2 透明测试效果
第10章 Image Effec
10.1 GrabPass
10.1.1 语法结构
10.1.2 GrabPass Shader
10.1.3 测试效果
10.2 C#基础语法
10.2.1 C#脚本的基本结构
10.2.2 Properties
10.2.3 C#中的常用函数
10.2.4 基于Shader资源创建材质
10.2.5 通过脚本往Material中传递变量
10.2.6 C#中的数学函数
10.2.7 其他功能
10.3 Post-Processing
10.3.1 后期处理的工作流程
10.3.2 后期处理Shader
10.3.3 后期处理脚本
10.4 后期处理堆栈
10.4.1 安装Post Processing包
10.4.2 设置Layer和Volume
10.4.3 编写Shader
10.4.4 编写C#脚本
第11章 自定义材质面板
11.1 不同类型的DrawerClass
11.1.1 Toggle
11.1.2 Enum
11.1.3 KeywordEnum
11.1.4 在编译指令中定义关键词
11.1.5 PowerSlider
11.1.6 IntRange
11.2 属性的特性和Drawer
11.3 装饰性PropertyDrawer
11.3.1 SpaceDecorator
11.3.2 Header Decorator
11.4 完整PropertyDrawer示例
第12章 Amplify Shader Editor
12.1 相同功能的其他插件
12.1.1 Shader Forge
12.1.2 ShaderGraph
12.2 ASE的使用流程
12.3 Shader属性设置
12.3.1 General
12.3.2 Blend Mode
12.3.3 Stencil Buffer
12.3.4 Tessellation
12.3.5 Output
12.4 常用节点
12.4.1 常数和属性类节点
12.4.2 纹理和坐标类节点
12.4.3 数学运算类节点
12.4.4 向量运算相关节点
12.4.5 图像处理相关节点
12.4.6 摄像机和屏幕相关节点
12.4.7 顶点数据类节点
12.4.8 表面数据类节点
12.4.9 时间节点
12.5 使用ASE创建标准Shader
12.5.1 Albedo
12.5.2 Normal
12.5.3 Emission
12.5.4 Specular
12.5.5 Ambient Occlusion
12.5.6 Texture Coordinate
12.5.7 属性排序及最终效果
第13章 初级案例
13.1 流光效果
13.1.1 实现逻辑
13.1.2 使用ASE实现效果
13.1.3 测试Shader效果
13.1.4 编写Shader
13.1.5 使用扩展
13.2 描边效果
13.2.1 实现逻辑
13.2.2 编写Shader
13.2.3 效果测试
13.3 遮挡半透效果
13.3.1 实现逻辑
13.3.2 编写Shader
13.3.3 效果测试
13.4 Tri-Planar Mapping效果
13.4.1 实现逻辑
13.4.2 使用ASE实现效果
13.4.3 编写Shader
13.4.4 测试Shader效果
13.5 MatCap效果
13.5.1 实现逻辑
13.5.2 使用ASE实现效果
13.5.3 编写Shader
13.5.4 测试Shader效果
13.6 物体切割效果
13.6.1 实现逻辑
13.6.2 使用ASE实现效果
13.6.3 C#脚本
13.6.4 测试效果
13.6.5 编写Shader
第14章 进阶案例
14.1 消融效果
14.1.1 实现逻辑
14.1.2 资源准备
14.1.3 使用ASE实现效果
14.1.4 使用扩展
14.1.5 编写Shader
14.2 动态液体效果
14.2.1 实现逻辑
14.2.2 模型准备
14.2.3 使用ASE实现效果
14.2.4 测试Shader
14.2.5 编写Shader
14.3 Billboard效果
14.3.1 实现逻辑
14.3.2 使用ASE实现雪花效果
14.3.3 测试Shader
14.3.4 编写Shader
14.4 序列帧动画
14.4.1 实现逻辑
14.4.2 使用ASE实现效果
14.4.3 测试Shader
14.4.4 编写Shader
14.5 卡通风格效果
14.5.1 资源准备
14.5.2 使用ASE实现效果
14.5.3 编写Shader
14.6 夜视仪后期处理
14.6.1 Shader讲解
14.6.2 完整Shader代码
14.6.3 C#脚本讲解
14.6.4 完整脚本代码
14.6.5 测试最终效果
14.6.6 使用ASE编辑后期处理Shader
写在最后
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜