书籍详情
Unity Universal RP内置Shader解析
作者:唐福幸 著
出版社:清华大学出版社
出版时间:2021-10-01
ISBN:9787302590378
定价:¥49.00
购买这本书可以去
内容简介
《Unity Universal RP内置Shader解析》是一部系统讲解Unity Universal Render Pipeline内置Shader的应用型图书,旨在使读者能够了解URP与传统渲染流水线Shader的不同之处,让读者尽快在URP项目中编写出所需的Shader。《Unity Universal RP内置Shader解析》采用串联讲解的方式编写而成,主要分为三部分:首部分包含第1章,主要为了给读者普及URP的基本知识、项目的配置方法、内置Shader的不同用途以及Package中不同包含文件的作用,使之前还没有接触过URP的读者在学习之前能够全面了解UPR;第二部分包含第2~5章,主要讲解了URP中非常复杂的内置Shader-Lit,以及Shader中关联到的包含文件、函数和宏定义;第三部分包含第6~8章,讲解了Unlit内置的可视化Shader编辑器Shader G.aph,并讲解了车漆和流光灯两个Shader案例,用于巩固前面章节所学到的内容,并加深对于URPShader的理解。《Unity Universal RP内置Shader解析》主要适合各大培训机构、高等院校作为Unity Shader课程教材,或从事Unity程序开发的读者参考。
作者简介
唐福幸,资深3D美术师,从事3D行业已有六年,先后在多家公司担任3D美术主管、3D技术美术师,擅长一切从零开始:开创团队、制定流程、人员培训、效果把控。能够熟练使用30余款3D专业软件,乐于钻研技术,并与人沟通分享。
目录
目录
资源下载
第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文件
后记
参考文献
资源下载
第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文件
后记
参考文献
猜您喜欢