目录
资源下载
第1章初识URP
1.1URP与HDRP
1.2创建URP项目
1.2.1创建新的URP项目
1.2.2升级旧项目为URP项目
1.3URP内置Shader
1.3.1Lit
1.3.2Simple Lit
1.3.3Baked Lit
1.3.4Unlit
1.4手写Shader的必要性
1.5Shader文件所在路径
1.6Packages中的其他文件
1.6.1Core RP Librariy
1.6.2Universal RP
1.7常用文件之间的包含关系
第2章Lit.shader
2.1Lit主文件
2.1.1Properties代码块
2.1.2SubShader代码块
2.1.3FallBack
2.1.4代码结构
2.2ForwardLit Pass
2.2.1Pass标签
2.2.2编译指令
2.2.3声明关键词
2.2.4包含指令
2.3包含文件的定义及使用
2.3.1包含文件的定义方式
2.3.2包含文件的使用方式
第3章LitInput.hlsl
3.1声明属性变量
3.2纹理采样
3.2.1采样函数的宏定义
3.2.2金属和高光采样函数
3.2.3AO采样函数
3.3SurfaceInput.hlsl
3.3.1SurfaceData结构体
3.3.2透明度函数
3.3.3Albedo纹理采样函数
3.3.4法线贴图采样函数
3.3.5自发光贴图采样函数
3.4表面数据初始化函数
3.5函数和宏定义总结
第4章LitForwardPass.hlsl
4.1GPU实例
4.2结构体
4.2.1顶点函数输入结构体
4.2.2顶点函数输出结构体
4.3Common.hlsl
4.3.1规范
4.3.2函数
4.4输入数据初始化函数
4.4.1Input.hlsl
4.4.2初始化函数第1部分
4.4.3SpaceTransforms.hlsl
4.4.4初始化函数第2部分
4.5顶点函数
4.5.1顶点函数第1部分
4.5.2顶点函数第2部分
4.5.3顶点函数第3部分
4.5.4顶点函数第4部分
4.6片段函数
4.7函数和宏定义总结
4.8Unlit Shader案例
4.8.1完整Shader代码
4.8.2代码解析
第5章其余四个Pass
5.1ShadowCaster Pass
5.1.1Pass代码块
5.1.2ShadowCasterPass.hlsl
5.2DepthOnly Pass
5.2.1Pass代码块
5.2.2DepthOnlyPass.hlsl
5.3Meta Pass
5.3.1Pass代码块
5.3.2MetaPass.hlsl
5.4Universal2D Pass
5.4.1Pass代码块
5.4.2Universal2D.hlsl
第6章Shader Graph
6.1Shader Graph介绍
6.2使用流程
6.3常用节点
6.3.1数据输入类节点
6.3.2数学计算类节点
6.3.3向量处理类节点
6.3.4视觉调整类节点
第7章车漆Shader案例
7.1设计逻辑
7.2使用Shader Graph梳理逻辑
7.2.1创建属性变量
7.2.2Albedo部分节点
7.2.3Occlusion部分节点
7.2.4Clear Coat部分节点
7.2.5Flake部分节点
7.2.6Specular和Smoothness部分节点
7.2.7完整节点连接
7.3测试Shader效果
7.4编写车漆Shader代码
7.4.1CarPaint.shader文件
7.4.2CarPaintInput.hlsl文件
7.4.3CarPaintForwardPass.hlsl文件
第8章流光灯特效Shader案例
8.1效果分析
8.2使用Shader Graph梳理逻辑
8.2.1开放属性变量
8.2.2Albedo和Normal部分节点
8.2.3Metallic和Smoothness部分节点
8.2.4灯光部分节点连接
8.2.5完整节点连接
8.3编写流光灯Shader代码
8.3.1FlowingLight.shader文件
8.3.2FlowingLightInput.hlsl文件
8.3.3FlowingLightForwardPass.hlsl文件
后记
参考文献
温馨提示:请使用长沙图书馆的读者帐号和密码进行登录
——徐晨华,有车以后公司创始人兼CEO
★Unity自2018年推出了可编程渲染流水线,URP是Unity基于可编程渲染流水线环境定制的一套官方的渲染框架,与之前传统的渲染流水线相比差别还是很大的。然而都快三年了,国内仍然没有推出一本关于URPShader的书籍,这本书的出现恰巧填补了这一空白。
——陈强,有车以后公司创始人兼COO
★作者将开发公司App产品过程中的研究成果总结之后写成这本书,以帮助那些想要从传统渲染流水线过渡到URP开发的团队快速掌握URPShader。并且作者在书中涉及的所有知识点都已经在公司产品开发中得到了验证,因此可以绝对放心地接纳和吸收。
——许晓平,网易高级后端开发工程师
★国内讲解UnityURPShader的书籍,目前市面上仅此一本,因此是所有想要研究URPShader人员的好选择。并且作者完全按照Shader编码的顺序进行讲解,有助于读者理解URPShader的实现逻辑。
——陈晨,米哈游资深技术美术师