Unity 3D ShaderLab 开发实战详解
¥
15
2.2折
¥
69
九五品
仅1件
作者郭浩瑜 著
出版社人民邮电出版社
ISBN9787115386243
出版时间2015-05
版次1
装帧平装
开本16开
纸张胶版纸
页数322页
字数99999千字
定价69元
上书时间2024-12-16
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:Unity 3D ShaderLab 开发实战详解
定价:69.00元
作者:郭浩瑜 著
出版社:人民邮电出版社
出版日期:2015-05-01
ISBN:9787115386243
字数:573000
页码:322
版次:2
装帧:平装
开本:16开
商品重量:
编辑推荐
本专一介绍底层渲染的图书 按照Unity新版本修订的实战图书全面讲解了Unity Shader渲染的实战技术Unity中的照明,如VertexLit渲染路径、Forward渲染路径、基于光照贴图的烘焙照明、基于LightProbes的照明Shadows(阴影),如平面阴影、球体阴影、体积阴影、阴影映射、内置的阴影Unity中的各种Shader,如固定管线、 SUrface Shader、凹凸材质、卡通材质、 镜面材质、半透明材质、体积雾、Wrap Model新解、面积光、体积光、材质替代渲染、后期效果、地形、投影、NDC的验证、利用渲染队列、使用Blend操作、制作透明材质的例子、Stencil蒙版、Shader来切割物体、自定义材质编辑器Shader的组织和优化,如Shader的组织和复用、基于渲染路径的优化、移动平台上的优化
内容提要
《Unity 3D ShaderLab 开发实战详解(第2版)》全面讲解了Unity Shader渲染的实战技术,全书分为5篇共33章,主要内容为:Shader在3D游戏中的作用、Shader的实例化、Shader的实现语言等;Unity中Shader的形态、SubShader的重要标签、可编程Shader、Surface Shader;Shader中用到的各种空间的概念和Shader中的投影矩阵;基本的光照模型;一个被执行的Pass,包括渲染路径和Pass的LightMode标签;VertexLit渲染路径,包括顶点照明和Unity存放光源的方式;Forward渲染路径;基于光照贴图的烘焙照明;NDC的验证;基于LightProbes的照明;平面阴影;球体阴影;体积阴影;映射阴影;内置的阴影;Pass的通用指令开关;Blend操作;Stencil蒙版;固定管线;Surface Shader;凹凸材质;卡通材质;镜面材质;半透明材质;制作透明材质;体积雾;Wrap Model新解;用Shader切割物体;面积光;体积光;材质替代渲染;自定义材质编辑器;后期效果;地形;投影;Shader的组织和复用。本书还包含你必须知道的渲染概念及基于渲染路径的优化、移动平台上的优化等实战内容,是不可多得的实战教程。 《Unity 3D ShaderLab 开发实战详解(第2版)》适合移动开发者、游戏开发者、程序员阅读,可作为大专院校相关专业的师生用书,也可当作培训学校的教材。
目录
篇 初识庐山真面目——Unity 3D Shader章 虚拟世界的“魔法”——Shader(着色器)的概念和在3D游戏中的作用 21.1 Shader的概念 21.1.1 虚拟世界中的光明和色彩 21.1.2 游戏开发人员的终点 21.1.3 Shader(着色器)简史 21.2 Shader的实例化 31.3 Shader的实现语言 31.3.1 GPU上的编程 31.3.2 Unity中的着色器编程 3第2章 Unity中Shader(着色器)的形态 42.1 Unity通过ShaderLab来组织Shader 42.1.1 关键字Shader 42.1.2 使用SubShader组织Shader的不同实现 42.1.3 SubShader的重要标签 42.1.4 SubShader中的Pass块 52.1.5 Pass块的标签及其名字的意义 52.1.6 使用FallBack保证Shader的广泛适应性 62.2 Unity的ShaderLab所支持的Shader编程语言 62.3 Unity中Shader的3种形态 62.3.1 固定管线 62.3.2 可编程Shader 72.3.3 ShaderLab的骄傲:Surface Shader 82.4 Shader的数据接口:属性和uniform变量 82.4.1 在Properties块中定义属性 82.4.2 通过图形界面操作属性 92.4.3 通过脚本操控属性 92.4.4 矩阵:不能在属性块定义的变量 102.4.5 在Cg代码中使用属性 10第3章 Shader(着色器)中用到的各种空间概念 113.1 模型空间 113.1.1 为什么用模型空间 113.1.2 在脚本和Shader中进出模型空间 113.2 世界坐标空间 113.2.1 统一表达:世界坐标空间 113.2.2 在脚本和Shader中进出世界坐标空间 123.3 视空间 123.3.1 渲染的需要:视空间 123.3.2 在脚本和Shader中进出视空间 123.4 空间的一块:视锥体 123.5 剪切空间 133.5.1 投影 133.5.2 脚本和Shader中的投影矩阵 133.5.3 验证NDC 143.6 NDC之后 143.6.1 NDC之后发生的事情 14第4章 基本的光照模型 164.1 光源对物体照明的分类 164.1.1 间接照明 164.1.2 直接照明 164.2 照明的计算方式:光照模型 164.2.1 漫反射和Lambert 164.2.2 镜面高光和Phong 174.2.3 半角向量和BlinnPhong 18第2篇 让你的应用更炫彩——Unity中的照明第5章 个被执行的Pass 205.1 不同的LightMode被选择的顺序 205.1.1 渲染路径和Pass的LightMode标签 205.1.2 设计可以检测渲染路径的材质 205.1.3 设计便于检测渲染路径的场景 235.1.4 VertexLit渲染路径下Pass的执行 235.1.5 Forward渲染路径下Pass的执行 235.1.6 Deferred渲染路径下Pass的执行 235.1.7 不同渲染路径下的Pass执行规则总结 245.2 3个渲染路径之外 245.2.1 LightMode的其他值 245.2.2 设计检测用的材质 245.2.3 Always类型的Pass在3种渲染路径下的执行 265.2.4 LightMode的默认值及其在3种渲染路径下的执行 27第6章 VertexLit渲染路径 286.1 顶点照明 286.1.1 什么是顶点照明 286.1.2 存取光源的变量 286.2 顶点照明和Unity存放光源的种方式 296.2.1 用于调试输出的材质 296.2.2 设计用于检测的场景 296.2.3 在Vertex Pass中的检测结果 306.2.4 效数据 306.3 顶点照明和Unity存放光源的第二种方式 316.3.1 用于调试输出的材质 316.3.2 设计用于检测的场景 326.3.3 在Vertex Pass中的检测结果 326.4 顶点照明和Unity存放光源的第三种方式 336.4.1 Unity为Vertex Pass准备的光源 336.4.2 设计用于检测的场景 336.4.3 顶点照明中的点光源 336.4.4 计算顶点照明的ShadeVertexLights函数 346.4.5 顶点照明中的Pixel光源 346.4.6 顶点照明中的平行光 356.4.7 顶点照明中的灯光信息小结 376.4.8 一个顶点照明的实现例子 37第7章 Forward渲染路径 397.1 渲染物体——ForwardBase和ForwardAdd 397.1.1 设计检测用的场景和材质 397.1.2 ForwardBase和ForwardAdd的表现 417.2 Forward渲染路径下的重要光源 417.2.1 设计检测用的材质 417.2.2 不存在Pixel光源时的情况 427.2.3 存在Pixel平行光时的情况 427.2.4 存在Pixel点光源时的情况 427.2.5 有多种类型的Pixel光源时的情况 437.2.6 Forward渲染路径下的Pixel光源小结 437.3 重要光源在ForwardAdd内的执行 437.3.1 设计用来检测Pixel光源的材质 437.3.2 设计检测用的场景 467.3.3 检测结果:ForwardAdd如何被执行 467.4 ForwardBase和Unity存放光源的种方式 477.4.1 设计检测用的材质 477.4.2 种方式内的Vertex点光源 487.4.3 种方式内的平行光 487.4.4 种方式内的重要Pixel点光源 487.4.5 只有ForwardBase时的情况总结 497.4.6 ForwardAdd对ForwardBase内光源的影响 497.4.7 有ForwardAdd时存放光源数据种方式的总结 517.5 ForwardAdd和Unity存放光源的种方式 517.5.1 设计检测用的材质 517.5.2 设计检测用的场景 527.5.3 ForwardAdd内的Pixel光源 527.5.4 ForwardAdd内的平行光 537.5.5 数组变量unity_4LightPos的使用情况分析 537.6 Forward渲染路径和Unity存放光源的第三种方式 537.6.1 检测ForwardBase内情况的材质 537.6.2 检测结果:第三种方式不包含对ForwardBase有效的数据 547.6.3 检测结果:第三种方式不包含对ForwardAdd有效的数据 547.7 Forward渲染路径总结 557.7.1 Forward渲染路径下材质的适应性 557.7.2 Unity如何为Forward渲染路径设置光源 55第8章 基于光照贴图的烘焙照明 568.1 单光照贴图和VertexLit渲染路径 568.1.1 测试烘焙的场景 568.1.2 烘焙场景中使用的材质 578.1.3 烘焙的前提:静态物体 578.1.4 如何在烘焙中使用自发光材质 578.1.5 烘焙之后静态物体和非静态物体的实时照明 598.1.6 应用光照贴图到VertexLit渲染路径下的材质中 598.1.7 通过自己的材质改变实时光源对烘焙后物体的照明 618.2 在效果和性能间进行权衡 628.2.1 影响全局的Resolution选项 628.2.2 影响单个物体的Scale ILightmap选项 638.3 单光照贴图和Forward渲染路径 648.3.1 单光照贴图在VertexLit和Forward下面的不同表现 648.3.2 准备可应用于烘焙的自发光材质 648.3.3 在ForwardBase内计算光照贴图 668.3.4 Forward渲染路径下烘焙之后的实时照明 678.4 单光照贴图在Deferred渲染路径下的实时阴影 698.5 双光照贴图和Deferred渲染路径 698.5.1 全局GI、间接照明以及双光照贴图 698.5.2 混合双光照贴图和实时照明 698.5.3 观察混合过程 718.5.4 双光照贴图的使用限制 728.6 双光照贴图和Forward渲染路径
作者介绍
郭浩瑜,资深的程序员,在Android、iOS开发平台上开发了许多应用,特别擅长Unity 3D游戏开发中的渲染技术,现为某著名游戏公司的项目经理。
序言
— 没有更多了 —
以下为对购买帮助不大的评价