图书介绍

Unity3DShaderLab开发实战详解郭浩瑜编计算机与互联网书籍

  • 郭浩瑜编著 著
  • 店铺: 文轩网旗舰店
  • 出版社: 人民邮电出版社
  • ISBN:9787115386243
  • 版次:2
  • 上架时间:2015-06-10 06:56:28
  • 商品编码:1595039011
  • 开本:16开
  • 出版时间:2015-05-01
  • 页数:322
  • 字数:573000

微信扫码下载

手机扫码下载

电脑下载PDF

高速下载 普通下载

赞助商链接

图书目录

第1篇初识庐山真面目——Unity3DShader
第1章虚拟世界的“魔法”——Shader(着色器)的概念和在3D游戏中的作用2
1.1Shader的概念2
1.1.1虚拟世界中的光明和色彩2
1.1.2游戏开发人员的终点2
1.1.3Shader(着色器)简史2
1.2Shader的实例化3
1.3Shader的实现语言3
1.3.1GPU上的编程3
1.3.2Unity中的着色器编程3
第2章Unity中Shader(着色器)的形态4
2.1Unity通过ShaderLab来组织Shader4
2.1.1关键字Shader4
2.1.2使用SubShader组织Shader的不同实现4
2.1.3SubShader的重要标签4
2.1.4SubShader中的Pass块5
2.1.5Pass块的标签及其名字的意义5
2.1.6使用FallBack保证Shader的广泛适应性6
2.2Unity的ShaderLab所支持的Shader编程语言6
2.3Unity中Shader的3种形态6
2.3.1固定管线6
2.3.2可编程Shader7
2.3.3ShaderLab的骄傲:
SurfaceShader8
2.4Shader的数据接口:属性和uniform变量8
2.4.1在Properties块中定义属性8
2.4.2通过图形界面操作属性9
2.4.3通过脚本操控属性9
2.4.4矩阵:不能在属性块定义的变量10
2.4.5在Cg代码中使用属性10
第3章Shader(着色器)中用到的各种空间概念11
3.1模型空间11
3.1.1为什么用模型空间11
3.1.2在脚本和Shader中进出模型空间11
3.2世界坐标空间11
3.2.1统一表达:世界坐标空间11
3.2.2在脚本和Shader中进出世界坐标空间12
3.3视空间12
3.3.1渲染的需要:视空间12
3.3.2在脚本和Shader中进出视空间12
3.4空间的一块:视锥体12
3.5剪切空间13
3.5.1投影13
3.5.2脚本和Shader中的投影矩阵13
3.5.3验证NDC14
3.6NDC之后14
3.6.1NDC之后发生的事情14
第4章基本的光照模型16
4.1光源对物体照明的分类16
4.1.1间接照明16
4.1.2直接照明16
4.2照明的计算方式:光照模型16
4.2.1漫反射和Lambert16
4.2.2镜面高光和Phong17
4.2.3半角向量和BlinnPhong18
第2篇让你的应用更炫彩——Unity中的照明
第5章第一个被执行的Pass20
5.1不同的LightMode被选择的顺序20
5.1.1渲染路径和Pass的LightMode标签20
5.1.2设计可以检测渲染路径的材质20
5.1.3设计便于检测渲染路径的场景23
5.1.4VertexLit渲染路径下Pass的执行23
5.1.5Forward渲染路径下Pass的执行23
5.1.6Deferred渲染路径下Pass的执行23
5.1.7不同渲染路径下的Pass执行规则总结24
5.23个渲染路径之外24
5.2.1LightMode的其他值24
5.2.2设计检测用的材质24
5.2.3Always类型的Pass在3种渲染路径下的执行26
5.2.4LightMode的默认值及其在3种渲染路径下的执行27
第6章VertexLit渲染路径28
6.1顶点照明28
6.1.1什么是顶点照明28
6.1.2存取光源的变量28
6.2顶点照明和Unity存放光源的第一种方式29
6.2.1用于调试输出的材质29
6.2.2设计用于检测的场景29
6.2.3在VertexPass中的检测结果30
6.2.4无效数据30
6.3顶点照明和Unity存放光源的第二种方式31
6.3.1用于调试输出的材质31
6.3.2设计用于检测的场景32
6.3.3在VertexPass中的检测结果32
6.4顶点照明和Unity存放光源的第三种方式33
6.4.1Unity为VertexPass准备的光源33
6.4.2设计用于检测的场景33
6.4.3顶点照明中的点光源33
6.4.4计算顶点照明的ShadeVertexLights函数34
6.4.5顶点照明中的Pixel光源34
6.4.6顶点照明中的平行光35
6.4.7顶点照明中的灯光信息小结37
6.4.8一个顶点照明的实现例子37
第7章Forward渲染路径39
7.1渲染物体——ForwardBase和ForwardAdd39
7.1.1设计检测用的场景和材质39
7.1.2ForwardBase和ForwardAdd的表现41
7.2Forward渲染路径下的重要光源41
7.2.1设计检测用的材质41
7.2.2不存在Pixel光源时的情况42
7.2.3存在Pixel平行光时的情况42
7.2.4存在Pixel点光源时的情况42
7.2.5有多种类型的Pixel光源时的情况43
7.2.6Forward渲染路径下的Pixel光源小结43
7.3重要光源在ForwardAdd内的执行43
7.3.1设计用来检测Pixel光源的材质43
7.3.2设计检测用的场景46
7.3.3检测结果:ForwardAdd如何被执行46
7.4ForwardBase和Unity存放光源的第一种方式47
7.4.1设计检测用的材质47
7.4.2第一种方式内的Vertex点光源48
7.4.3第一种方式内的平行光48
7.4.4第一种方式内的重要Pixel点光源48
7.4.5只有ForwardBase时的情况总结49
7.4.6ForwardAdd对ForwardBase内光源的影响49
7.4.7有ForwardAdd时存放光源数据第一种方式的总结51
7.5ForwardAdd和Unity存放光源的第一种方式51
7.5.1设计检测用的材质51
7.5.2设计检测用的场景52
7.5.3ForwardAdd内的Pixel光源52
7.5.4ForwardAdd内的平行光53
7.5.5数组变量unity_4LightPos的使用情况分析53
7.6Forward渲染路径和Unity存放光源的第三种方式53
7.6.1检测ForwardBase内情况的材质53
7.6.2检测结果:第三种方式不包含对ForwardBase有效的数据54
7.6.3检测结果:第三种方式不包含对ForwardAdd有效的数据54
7.7Forward渲染路径总结55
7.7.1Forward渲染路径下材质的适应性55
7.7.2Unity如何为Forward渲染路径设置光源55
第8章基于光照贴图的烘焙照明56
8.1单光照贴图和VertexLit渲染路径56
8.1.1测试烘焙的场景56
8.1.2烘焙场景中使用的材质57
8.1.3烘焙的前提:静态物体57
8.1.4如何在烘焙中使用自发光材质57
8.1.5烘焙之后静态物体和非静态物体的实时照明59
8.1.6应用光照贴图到VertexLit渲染路径下的材质中59
8.1.7通过自己的材质改变实时光源对烘焙后物体的照明61
8.2在效果和性能间进行权衡62
8.2.1影响全局的Resolution选项62
8.2.2影响单个物体的ScaleInLightmap选项63
8.3单光照贴图和Forward渲染路径64
8.3.1单光照贴图在VertexLit和Forward下面的不同表现64
8.3.2准备可应用于烘焙的自发光材质64
8.3.3在ForwardBase内计算光照贴图66
8.3.4Forward渲染路径下烘焙之后的实时照明67
8.4单光照贴图在Deferred渲染路径下的实时阴影69
8.5双光照贴图和Deferred渲染路径69
8.5.1全局GI、间接照明以及双光照贴图69
8.5.2混合双光照贴图和实时照明69
8.5.3观察混合过程71
8.5.4双光照贴图的使用限制72
8.6双光照贴图和Forward渲染路径73
……

查看全部 ↓

精品推荐