作品简介

本书是一部系统讲解Unity ShaderLab语言与编程方法的入门教程(包含纸质图书、Unity美术资源、Shader源代码)。本书共分14章,第1、2章,主要为了给读者普及3D数学相关的基础知识以及GPU渲染流水线的基本概念,为本书后面的内容提供基础知识的储备。第3~11章,主要讲解了Shader的语法结构、两种不同的编写方式(Vertex Fragment Shader和Surface Shader)、光照模型、后期处理、自定义材质设置面板。这一部分内容是本书的主要部分,读者朋友们一定要认真阅读。第12章,主要讲解Unity Shader可视化编辑插件——Amplify Shader Editor,方便读者在编写Shader之前梳理逻辑或者前期验证效果的时候使用。第13、14章,通过对不同经典案例的分析和讲解,使读者进一步加深对Unity Shader的理解,并且能够更加高效地编写出可以应用于真实项目的Shader效果。 本书主要以3D美术人员的视角进行效果描述和逻辑讲解的,因此非常适合毫无程序编写经验的3D美术人员作为Unity Shader的入门之选。并且本书同样也适用于各大培训机构、高等院校作为Unity Shader课程教材使用。当然,从事Unity程序开发的朋友也可以阅读本书,从3D美术人员的视角开始切入,或许可以帮助你更好的理解Unity Shader,毕竟Shader也是一种视觉效果的设计。

唐福幸,资深3D美术师,从事3D行业已有六年,先后在多家公司担任3D美术主管、3D技术美术师,擅长一切从零开始:开创团队、制定流程、人员培训、效果把控。乐于钻研技术,并与人沟通分享。能够熟练使用Maya、ZBrush、Substance Painter、Substance Designer、Unity、Unreal等30余款3D专业软件,目前在有车以后公司担任“高级技术美术师”。

作品目录

  • 作者简介
  • 内容简介
  • 前言
  • 第1章 3D数学基础
  • 1.1 坐标与坐标系
  • 1.2 向量
  • 1.3 向量运算
  • 1.4 矩阵
  • 1.5 矩阵运算
  • 1.6 使用矩阵进行变换
  • 1.7 矩阵的深入讲解
  • 第2章 渲染流水线与Shader概念
  • 2.1 渲染流水线概念
  • 2.2 3D图形渲染完整流水线
  • 2.3 空间变换
  • 2.4 现代GPU渲染流水线
  • 2.5 Shader概念
  • 第3章 ShaderLab语法基础
  • 3.1 Shader的组织结构
  • 3.2 Shader的名称
  • 3.3 Properties
  • 3.4 SubShader
  • 3.5 Fallback
  • 第4章 顶点-片段着色器基础
  • 4.1 Shader编码工具
  • 4.2 创建和使用Shader
  • 4.3 Shader的编写方式
  • 4.4 CG语法基础
  • 第5章 Unity的包含文件
  • 5.1 包含文件的使用语法
  • 5.2 UnityCG.cginc
  • 5.3 UnityShaderVariables.cginc
  • 5.4 其他包含文件
  • 5.5 使用包含文件简化Shader
  • 第6章 Shader中的光照模型
  • 6.1 Lambert光照模型
  • 6.2 CG标准库函数
  • 6.3 Half-Lambert光照模型
  • 6.4 Phong光照模型
  • 6.5 逐像素光照
  • 6.6 Blinn-Phong光照模型
  • 6.7 灯光阴影
  • 第7章 透明效果
  • 7.1 不透明物体的渲染顺序
  • 7.2 透明物体的渲染顺序
  • 7.3 混合透明效果
  • 7.4 透明测试效果
  • 7.5 模板测试
  • 第8章 表面着色器的基础概念
  • 8.1 为什么不先学习表面着色器
  • 8.2 表面着色器的组织结构
  • 8.3 编译指令中的可选参数
  • 8.4 表面函数的语法结构
  • 第9章 编写表面着色器
  • 9.1 最简单的表面着色器
  • 9.2 在表面着色器中使用法线贴图
  • 9.3 表面着色器中的其他函数
  • 9.4 曲面细分函数
  • 9.5 透明效果
  • 第10章 Image Effec
  • 10.1 GrabPass
  • 10.2 C#基础语法
  • 10.3 Post-Processing
  • 10.4 后期处理堆栈
  • 第11章 自定义材质面板
  • 11.1 不同类型的DrawerClass
  • 11.2 属性的特性和Drawer
  • 11.3 装饰性PropertyDrawer
  • 11.4 完整PropertyDrawer示例
  • 第12章 Amplify Shader Editor
  • 12.1 相同功能的其他插件
  • 12.2 ASE的使用流程
  • 12.3 Shader属性设置
  • 12.4 常用节点
  • 12.5 使用ASE创建标准Shader
  • 第13章 初级案例
  • 13.1 流光效果
  • 13.2 描边效果
  • 13.3 遮挡半透效果
  • 13.4 Tri-Planar Mapping效果
  • 13.5 MatCap效果
  • 13.6 物体切割效果
  • 第14章 进阶案例
  • 14.1 消融效果
  • 14.2 动态液体效果
  • 14.3 Billboard效果
  • 14.4 序列帧动画
  • 14.5 卡通风格效果
  • 14.6 夜视仪后期处理
  • 写在最后
  • 参考文献
展开全部