1
全部零食
饼干 糕点 甜品
饼干 脆棒 烤馍片 酥饼
凤梨酥 麻薯 沙琪玛
蛋糕 面包 派 铜锣烧
网红零食🔥
童年同款辣条
茶颜悦色·超全到货
日韩便利店必买
夏日开新局
推荐品牌✨
CALBEE卡乐比
韩国乐天
NABATI
肉类 海味 坚果 蜜饯
坚果 花生 瓜子 炒货
凤爪 肉肠 肉干 卤味
辣条 豆制品 蔬果干 蜜饯
海味小食 鱼肠 海苔
烘焙早餐🥐
面包蛋糕 中式点心 曲奇饼干 休闲 膨化 薯片 膨化 薯片 虾条 点心面 米果 威化 蛋卷 麻花 锅巴
全部速食粮油
方便速食 泡面 自热火锅
方便面 拉面 杯面 即食年糕
自热火锅 冒菜 麻辣烫 烤冷面
螺蛳粉 方便粉丝 酸辣粉 凉皮
日本速食 泡面炒面
韩国速食 拉面年糕
低卡粉面 🍜
味觉光谱
🍖炙烤狂欢 BBQ派对
泡面界顶流之争
无辣不欢
清淡之选
推荐品牌✨
NONGSHIM农心
MARUTAI
INDOMIE
火锅底料 厨房调味
火锅底料
蘸料 花生酱 麻酱
干锅料 水煮鱼 料包
汤料 卤料包
酱油 酱汁 蚝油
白醋陈醋
辣椒酱/粉 豆瓣酱
料酒 香油 香辛大料
盐/糖 冰糖 红糖
调味酱 调味料 烧烤酱
沙拉酱 番茄酱 咖喱
低卡酱汁🧂
粮油米面 副食干货
米粉/线 面条 粉丝
大米 糯米 糙米
五谷杂粮 豆子
面粉 面点 预拌粉
玉米 粘豆包 煎饼 特产 年糕
食用油 橄榄油
豆皮 紫菜 海带结 干菜
苕皮 鸭血 豆腐 火锅涮菜
大枣 银耳 莲子 枸杞 山楂
木耳 菌菇
海产 腊肉 腌味
🍚有机/特级米面粮油干料
全部美妆个护
面部护肤
卸妆
洁面 去角质
化妆水
精华 护肤套装
乳液 面霜
眼唇保养
特殊护理 去黑头 祛痘
保养工具
男士保养
洁面巾 化妆棉
防晒
推荐品牌✨
SHISEIDO资生堂
谷雨
毛吉吉
全部厨电家电
厨房电器
电饭煲 主食机器
豆浆机 破壁机
养生壶 煮茶器
电热水壶 即热饮水机
咖啡机
电蒸锅 电炖锅
火锅 涮烤煮多功能锅
空气炸锅 烤箱 烤串机
料理小电
厨房大电
推荐品牌✨
北鼎
小熊
追觅
历史浏览

京东图书
Unity Shader入门精要
商品描述
展开全部描述
编辑推荐
业内专家撰写,业界专家罗盛誉(风宇冲)和宣雨松(MOMO)鼎力推荐的目前Unity Shader学习的**参考书
相比与国内市场已有的介绍相关内容的书籍和资料来说,本书有一些独有的特色:
(1)内容独特。填补了Unity Shader和渲染流水线之间的知识鸿沟,对Unity中一些渲染机制的工作原理进行详细剖析,帮助读者解决“是什么”“为什么”“怎么做”这三个基本问题。本书配合大量实例,来让读者在实践中逐渐掌握Unity Shader的编写。
(2)结构连贯。在内容编排上破费心思,从基础到进阶再到深入,解决读者长期以来的学习烦恼。
(3)充分面向初学者。在本书的编写过程中,我们一直在问自己,这么写到底读者能不能看懂?为此,提供了大量的图示配合以文字说明,并在一些章节后提供了“答疑解惑”小节来解释那些含糊不清而初学者又经常疑问的问题。
(4)包含了Unity 5在渲染方面的新内容。如多次介绍Unity 5中的新工具帧调试器(Frame Debugger),并借助该工具的帮助来理解Unity中的渲染过程。
(5)补充了大量延伸阅读资料。在本书一些章节后提供了“扩展阅读”小节,让那些希望更加深入学习某个方向的读者可以在提供的资料中找到更多的学习内容。
相比与国内市场已有的介绍相关内容的书籍和资料来说,本书有一些独有的特色:
(1)内容独特。填补了Unity Shader和渲染流水线之间的知识鸿沟,对Unity中一些渲染机制的工作原理进行详细剖析,帮助读者解决“是什么”“为什么”“怎么做”这三个基本问题。本书配合大量实例,来让读者在实践中逐渐掌握Unity Shader的编写。
(2)结构连贯。在内容编排上破费心思,从基础到进阶再到深入,解决读者长期以来的学习烦恼。
(3)充分面向初学者。在本书的编写过程中,我们一直在问自己,这么写到底读者能不能看懂?为此,提供了大量的图示配合以文字说明,并在一些章节后提供了“答疑解惑”小节来解释那些含糊不清而初学者又经常疑问的问题。
(4)包含了Unity 5在渲染方面的新内容。如多次介绍Unity 5中的新工具帧调试器(Frame Debugger),并借助该工具的帮助来理解Unity中的渲染过程。
(5)补充了大量延伸阅读资料。在本书一些章节后提供了“扩展阅读”小节,让那些希望更加深入学习某个方向的读者可以在提供的资料中找到更多的学习内容。
内容简介
内 容 提 要
本书不仅要教会读者如何使用Unity Shader,更重要的是要帮助读者学习Unity中的一些渲染机制以及如何使用Unity Shader实现各种自定义的渲染效果,希望这本书可以为读者打开一扇新的大门,让读者离制作心目中杰出游戏的心愿更近一步。
本书的主要内容为:第1章讲解了学习Unity Shader应该从哪里着手;第2章讲解了现代GPU是如何实现整个渲染流水线的,这对理解Shader的工作原理有着非常重要的作用;第3章讲解Unity Shader的实现原理和基本语法;第4章学习Shader所需的数学知识,帮助读者克服学习Unity Shader时遇到的数学障碍;第5章通过实现一个简单的顶点/片元着色器案例,讲解常用的辅助技巧等;第6章学习如何在Shader中实现基本的光照模型;第7章讲述了如何在Unity Shader中使用法线纹理、遮罩纹理等基础纹理;第8章学习如何实现透明度测试和透明度混合等透明效果;第9章讲解复杂的光照实现;第10章讲解在Unity Shader中使用立方体纹理、渲染纹理和程序纹理等高级纹理;第11章学习用Shader实现纹理动画、顶点动画等动态效果;第12章讲解了屏幕后处理效果的屏幕特效;第13章使用深度纹理和法线纹理实现更多屏幕特效;第14章讲解非真实感渲染的算法,如卡通渲染、素描风格的渲染等;第15章讲解噪声在游戏渲染中的应用;第16章介绍了常见的优化技巧;第17章介绍用表面着色器实现渲染;第18章讲解基于物理渲染的技术;第19章讲解在升级Unity 5时可能出现的问题,并给出解决方法;第20章介绍许多非常有价值的学习资料,以帮助读者进行更深入的学习。
本书适合Unity初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。
本书不仅要教会读者如何使用Unity Shader,更重要的是要帮助读者学习Unity中的一些渲染机制以及如何使用Unity Shader实现各种自定义的渲染效果,希望这本书可以为读者打开一扇新的大门,让读者离制作心目中杰出游戏的心愿更近一步。
本书的主要内容为:第1章讲解了学习Unity Shader应该从哪里着手;第2章讲解了现代GPU是如何实现整个渲染流水线的,这对理解Shader的工作原理有着非常重要的作用;第3章讲解Unity Shader的实现原理和基本语法;第4章学习Shader所需的数学知识,帮助读者克服学习Unity Shader时遇到的数学障碍;第5章通过实现一个简单的顶点/片元着色器案例,讲解常用的辅助技巧等;第6章学习如何在Shader中实现基本的光照模型;第7章讲述了如何在Unity Shader中使用法线纹理、遮罩纹理等基础纹理;第8章学习如何实现透明度测试和透明度混合等透明效果;第9章讲解复杂的光照实现;第10章讲解在Unity Shader中使用立方体纹理、渲染纹理和程序纹理等高级纹理;第11章学习用Shader实现纹理动画、顶点动画等动态效果;第12章讲解了屏幕后处理效果的屏幕特效;第13章使用深度纹理和法线纹理实现更多屏幕特效;第14章讲解非真实感渲染的算法,如卡通渲染、素描风格的渲染等;第15章讲解噪声在游戏渲染中的应用;第16章介绍了常见的优化技巧;第17章介绍用表面着色器实现渲染;第18章讲解基于物理渲染的技术;第19章讲解在升级Unity 5时可能出现的问题,并给出解决方法;第20章介绍许多非常有价值的学习资料,以帮助读者进行更深入的学习。
本书适合Unity初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。
作者简介
冯乐乐,一只喜欢计算机图形的程序媛。上海交通大学软件学院研究生,爱好写shader,喜欢一切用计算机绘画的技术。
目录
第1篇基础篇
第1章欢迎来到Shader的世界2
1.1程序员的三大浪漫2
1.2本书结构3
第2章渲染流水线5
2.1综述5
2.1.1什么是流水线5
2.1.2什么是渲染流水线6
2.2CPU和GPU之间的通信7
2.2.1把数据加载到显存中7
2.2.2设置渲染状态8
2.2.3调用Draw Call8
2.3GPU流水线9
2.3.1概述9
2.3.2顶点着色器10
2.3.3裁剪11
2.3.4屏幕映射11
2.3.5三角形设置12
2.3.6三角形遍历13
2.3.7片元着色器13
2.3.8逐片元操作14
2.3.9总结17
2.4一些容易困惑的地方18
2.4.1什么是OpenGL/DirectX18
2.4.2什么是HLSL、GLSL、CG19
2.4.3什么是Draw Call20
2.4.4什么是固定管线渲染22
2.5那么,你明白什么是Shader了吗23
2.6扩展阅读23
第3章Unity Shader基础24
3.1Unity Shader概述25
3.1.1一对好兄弟:材质和Unity Shader25
3.1.2Unity中的材质26
3.1.3Unity中的Shader26
3.2Unity Shader的基础:ShaderLab28
3.3Unity Shader的结构29
3.3.1给我们的Shader起个名字29
3.3.2材质和Unity Shader的桥梁:Properties29
3.3.3重量级成员:SubShader31
3.3.4留一条后路:Fallback33
3.3.5ShaderLab还有其他的
语义吗33
3.4Unity Shader的形式33
3.4.1Unity的宠儿:表面着色器34
3.4.2最聪明的孩子:顶点/片元着
色器35
3.4.3被抛弃的角落:固定函数着
色器35
3.4.4选择哪种Unity Shader形式36
3.5本书使用的Unity Shader形式36
3.6答疑解惑36
3.6.1Unity Shader != 真正的Shader36
3.6.2Unity Shader和CG/HLSL之间的关系37
3.6.3我可以使用GLSL来写吗38
3.7扩展阅读38
第4章学习Shader所需的数学基础39
4.1背景:农场游戏39
4.2笛卡儿坐标系40
4.2.1二维笛卡儿坐标系40
4.2.2三维笛卡儿坐标系41
4.2.3左手坐标系和右手坐标系42
4.2.4Unity使用的坐标系44
4.2.5练习题45
4.3点和矢量45
4.3.1点和矢量的区别46
4.3.2矢量运算47
4.3.3练习题53
4.4矩阵54
4.4.1矩阵的定义54
4.4.2和矢量联系起来55
4.4.3矩阵运算55
4.4.4特殊的矩阵57
4.4.5行矩阵还是列矩阵60
4.4.6练习题61
4.5矩阵的几何意义:变换62
4.5.1什么是变换62
4.5.2齐次坐标63
4.5.3分解基础变换矩阵63
4.5.4平移矩阵64
4.5.5缩放矩阵64
4.5.6旋转矩阵65
4.5.7复合变换66
4.6坐标空间67
4.6.1为什么要使用这么多不同的坐标空间68
4.6.2坐标空间的变换68
4.6.3顶点的坐标空间变换过程72
4.6.4模型空间73
4.6.5世界空间73
4.6.6观察空间75
4.6.7裁剪空间77
4.6.8屏幕空间83
4.6.9总结85
4.7法线变换86
4.8Unity Shader的内置变量(数学篇)87
4.8.1变换矩阵87
4.8.2摄像机和屏幕参数88
4.9答疑解惑89
4.9.1使用3×3还是4×4的
变换矩阵89
4.9.2CG中的矢量和矩阵类型89
4.9.3Unity中的屏幕坐标:ComputeScreenPos/VPOS/
WPOS90
4.10扩展阅读93
4.11练习题答案93
第2篇初级篇
第5章开始Unity Shader学习之旅100
5.1本书使用的软件和环境100
5.2一个最简单的顶点/片元着色器100
5.2.1顶点/片元着色器的基本
结构101
5.2.2模型数据从哪里来103
5.2.3顶点着色器和片元着色器之间如何通信104
5.2.4如何使用属性105
5.3强大的援手:Unity提供的内置文件和变量107
5.3.1内置的包含文件107
5.3.2内置的变量109
5.4Unity提供的CG/HLSL语义109
5.4.1什么是语义109
5.4.2Unity支持的语义110
5.4.3如何定义复杂的变量类型110
5.5程序员的烦恼:Debug111
5.5.1使用假彩色图像111
5.5.2利用神器:Visual Studio113
5.5.3最新利器:帧调试器113
5.6小心:渲染平台的差异115
5.6.1渲染纹理的坐标差异115
5.6.2Shader的语法差异116
5.6.3Shader的语义差异117
5.6.4其他平台差异117
5.7Shader整洁之道117
5.7.1float、half还是fixed117
5.7.2规范语法118
5.7.3避免不必要的计算118
5.7.4慎用分支和循环语句119
5.7.5不要除以0119
5.8扩展阅读120
第6章Unity中的基础光照121
6.1我们是如何看到这个世界的121
6.1.1光源121
6.1.2吸收和散射122
6.1.3着色122
6.1.4BRDF光照模型123
6.2标准光照模型123
6.2.1环境光123
6.2.2自发光124
6.2.3漫反射124
6.2.4高光反射124
6.2.5逐像素还是逐顶点125
6.2.6总结125
6.3Unity中的环境光和自发光126
6.4在Unity Shader中实现漫反射光照
模型126
6.4.1实践:逐顶点光照126
6.4.2实践:逐像素光照129
6.4.3半兰伯特模型130
6.5在Unity Shader中实现高光反射
光照模型131
6.5.1实践:逐顶点光照132
6.5.2实践:逐像素光照134
6.5.3Blinn-Phong光照模型135
6.6召唤神龙:使用Unity内置的
函数136
第7章基础纹理139
7.1单张纹理140
7.1.1实践140
7.1.2纹理的属性142
7.2凹凸映射146
7.2.1高度纹理146
7.2.2法线纹理146
7.2.3实践148
7.2.4Unity中的法线纹理类型154
7.3渐变纹理155
7.4遮罩纹理158
7.4.1实践159
7.4.2其他遮罩纹理161
第8章透明效果162
8.1为什么渲染顺序很重要163
8.2Unity Shader的渲染顺序164
8.3透明度测试165
8.4透明度混合169
8.5开启深度写入的半透明效果171
8.6ShaderLab的混合命令173
8.6.1混合等式和参数173
8.6.2混合操作174
8.6.3常见的混合类型175
8.7双面渲染的透明效果176
8.7.1透明度测试的双面渲染176
8.7.2透明度混合的双面渲染176
第3篇中级篇
第9章更复杂的光照180
9.1Unity的渲染路径180
9.1.1前向渲染路径182
9.1.2顶点照明渲染路径185
9.1.3延迟渲染路径186
9.1.4选择哪种渲染路径188
9.2Unity的光源类型188
9.2.1光源类型有什么影响189
9.2.2在前向渲染中处理不同的
光源类型190
9.3Unity的光照衰减195
9.3.1用于光照衰减的纹理196
9.3.2使用数学公式计算衰减196
9.4Unity的阴影196
9.4.1阴影是如何实现的197
9.4.2不透明物体的阴影198
9.4.3使用帧调试器查看阴影绘制过程202
9.4.4统一管理光照衰减和阴影204
9.4.5透明度物体的阴影206
9.5本书使用的标准Unity Shader209
第10章高级纹理210
10.1立方体纹理210
10.1.1天空盒子210
10.1.2创建用于环境映射的立方体
纹理212
10.1.3反射213
10.1.4折射215
10.1.5菲涅耳反射217
10.2渲染纹理219
10.2.1镜子效果219
10.2.2玻璃效果220
10.2.3渲染纹理 vs. GrabPass224
10.3程序纹理225
10.3.1在Unity中实现简单的程序
纹理225
10.3.2Unity的程序材质228
第11章让画面动起来230
11.1Unity Shader中的内置变量
(时间篇)230
11.2纹理动画230
11.2.1序列帧动画230
11.2.2滚动的背景233
11.3顶点动画234
11.3.1流动的河流234
11.3.2广告牌236
11.3.3注意事项239
第4篇高级篇
第12章屏幕后处理效果244
12.1建立一个基本的屏幕后处理脚本
系统244
12.2调整屏幕的亮度、饱和度和
对比度246
12.3边缘检测249
12.3.1什么是卷积249
12.3.2常见的边缘检测算子249
12.3.3实现250
12.4高斯模糊253
12.4.1高斯滤波253
12.4.2实现254
12.5Bloom效果259
12.6运动模糊263
12.7扩展阅读266
第13章使用深度和法线纹理267
13.1获取深度和法线纹理267
13.1.1背后的原理267
13.1.2如何获取269
13.1.3查看深度和法线纹理271
13.2再谈运动模糊272
13.3全局雾效276
13.3.1重建世界坐标276
13.3.2雾的计算278
13.3.3实现278
13.4再谈边缘检测283
13.5扩展阅读287
第14章非真实感渲染288
14.1卡通风格的渲染288
14.1.1渲染轮廓线288
14.1.2添加高光289
14.1.3实现290
14.2素描风格的渲染293
14.3扩展阅读296
14.4参考文献297
第15章使用噪声298
15.1消融效果298
15.2水波效果302
15.3再谈全局雾效305
15.4扩展阅读309
15.5参考文献309
第16章Unity中的渲染优化技术310
16.1移动平台的特点310
16.2影响性能的因素311
16.3Unity中的渲染分析工具312
16.3.1认识Unity 5的渲染统计
窗口312
16.3.2性能分析器的渲染区域313
16.3.3再谈帧调试器313
16.3.4其他性能分析工具314
16.4减少draw call数目314
16.4.1动态批处理315
16.4.2静态批处理316
16.4.3共享材质318
16.4.4批处理的注意事项318
16.5减少需要处理的顶点数目319
16.5.1优化几何体319
16.5.2模型的LOD技术319
16.5.3遮挡剔除技术320
16.6减少需要处理的片元数目320
16.6.1控制绘制顺序320
16.6.2时刻警惕透明物体321
16.6.3减少实时光照和阴影321
16.7节省带宽322
16.7.1减少纹理大小322
16.7.2利用分辨率缩放323
16.8减少计算复杂度323
16.8.1Shader的LOD技术323
16.8.2代码方面的优化323
16.8.3根据硬件条件进行缩放324
16.9扩展阅读324
第5篇扩展篇
第17章Unity的表面着色器探秘328
17.1表面着色器的一个例子328
17.2编译指令330
17.2.1表面函数330
17.2.2光照函数330
17.2.3其他可选参数331
17.3两个结构体332
17.3.1数据来源:Input结构体332
17.3.2表面属性:SurfaceOutput
结构体333
17.4Unity背后做了什么334
17.5表面着色器实例分析336
17.6Surface Shader的缺点341
第18章基于物理的渲染342
18.1PBS的理论和数学基础342
18.1.1光是什么343
18.1.2双向反射分布函数
(BRDF)344
18.1.3漫反射项345
18.1.4高光反射项346
18.1.5Unity中的PBS实现347
18.2Unity 5的Standard Shader348
18.2.1它们是如何实现的348
18.2.2如何使用Standard Shader349
18.3一个更加复杂的例子352
18.3.1设置光照环境352
18.3.2放置反射探针355
18.3.3调整材质356
18.3.4线性空间356
18.4答疑解惑357
18.4.1什么是全局光照357
18.4.2什么是伽马校正358
18.4.3什么是HDR361
18.4.4那么,PBS适合什么样的
游戏362
18.5扩展阅读363
18.6参考文献363
第19章Unity 5更新了什么365
19.1场景“更亮了”365
19.2表面着色器更容易“报错了”365
19.3当家做主:自己控制非统一缩放的
网格366
19.4固定管线着色器逐渐退出舞台366
第20章还有更多内容吗368
20.1如果你想深入了解渲染的话368
20.2世界那么大369
20.3参考文献369
第1章欢迎来到Shader的世界2
1.1程序员的三大浪漫2
1.2本书结构3
第2章渲染流水线5
2.1综述5
2.1.1什么是流水线5
2.1.2什么是渲染流水线6
2.2CPU和GPU之间的通信7
2.2.1把数据加载到显存中7
2.2.2设置渲染状态8
2.2.3调用Draw Call8
2.3GPU流水线9
2.3.1概述9
2.3.2顶点着色器10
2.3.3裁剪11
2.3.4屏幕映射11
2.3.5三角形设置12
2.3.6三角形遍历13
2.3.7片元着色器13
2.3.8逐片元操作14
2.3.9总结17
2.4一些容易困惑的地方18
2.4.1什么是OpenGL/DirectX18
2.4.2什么是HLSL、GLSL、CG19
2.4.3什么是Draw Call20
2.4.4什么是固定管线渲染22
2.5那么,你明白什么是Shader了吗23
2.6扩展阅读23
第3章Unity Shader基础24
3.1Unity Shader概述25
3.1.1一对好兄弟:材质和Unity Shader25
3.1.2Unity中的材质26
3.1.3Unity中的Shader26
3.2Unity Shader的基础:ShaderLab28
3.3Unity Shader的结构29
3.3.1给我们的Shader起个名字29
3.3.2材质和Unity Shader的桥梁:Properties29
3.3.3重量级成员:SubShader31
3.3.4留一条后路:Fallback33
3.3.5ShaderLab还有其他的
语义吗33
3.4Unity Shader的形式33
3.4.1Unity的宠儿:表面着色器34
3.4.2最聪明的孩子:顶点/片元着
色器35
3.4.3被抛弃的角落:固定函数着
色器35
3.4.4选择哪种Unity Shader形式36
3.5本书使用的Unity Shader形式36
3.6答疑解惑36
3.6.1Unity Shader != 真正的Shader36
3.6.2Unity Shader和CG/HLSL之间的关系37
3.6.3我可以使用GLSL来写吗38
3.7扩展阅读38
第4章学习Shader所需的数学基础39
4.1背景:农场游戏39
4.2笛卡儿坐标系40
4.2.1二维笛卡儿坐标系40
4.2.2三维笛卡儿坐标系41
4.2.3左手坐标系和右手坐标系42
4.2.4Unity使用的坐标系44
4.2.5练习题45
4.3点和矢量45
4.3.1点和矢量的区别46
4.3.2矢量运算47
4.3.3练习题53
4.4矩阵54
4.4.1矩阵的定义54
4.4.2和矢量联系起来55
4.4.3矩阵运算55
4.4.4特殊的矩阵57
4.4.5行矩阵还是列矩阵60
4.4.6练习题61
4.5矩阵的几何意义:变换62
4.5.1什么是变换62
4.5.2齐次坐标63
4.5.3分解基础变换矩阵63
4.5.4平移矩阵64
4.5.5缩放矩阵64
4.5.6旋转矩阵65
4.5.7复合变换66
4.6坐标空间67
4.6.1为什么要使用这么多不同的坐标空间68
4.6.2坐标空间的变换68
4.6.3顶点的坐标空间变换过程72
4.6.4模型空间73
4.6.5世界空间73
4.6.6观察空间75
4.6.7裁剪空间77
4.6.8屏幕空间83
4.6.9总结85
4.7法线变换86
4.8Unity Shader的内置变量(数学篇)87
4.8.1变换矩阵87
4.8.2摄像机和屏幕参数88
4.9答疑解惑89
4.9.1使用3×3还是4×4的
变换矩阵89
4.9.2CG中的矢量和矩阵类型89
4.9.3Unity中的屏幕坐标:ComputeScreenPos/VPOS/
WPOS90
4.10扩展阅读93
4.11练习题答案93
第2篇初级篇
第5章开始Unity Shader学习之旅100
5.1本书使用的软件和环境100
5.2一个最简单的顶点/片元着色器100
5.2.1顶点/片元着色器的基本
结构101
5.2.2模型数据从哪里来103
5.2.3顶点着色器和片元着色器之间如何通信104
5.2.4如何使用属性105
5.3强大的援手:Unity提供的内置文件和变量107
5.3.1内置的包含文件107
5.3.2内置的变量109
5.4Unity提供的CG/HLSL语义109
5.4.1什么是语义109
5.4.2Unity支持的语义110
5.4.3如何定义复杂的变量类型110
5.5程序员的烦恼:Debug111
5.5.1使用假彩色图像111
5.5.2利用神器:Visual Studio113
5.5.3最新利器:帧调试器113
5.6小心:渲染平台的差异115
5.6.1渲染纹理的坐标差异115
5.6.2Shader的语法差异116
5.6.3Shader的语义差异117
5.6.4其他平台差异117
5.7Shader整洁之道117
5.7.1float、half还是fixed117
5.7.2规范语法118
5.7.3避免不必要的计算118
5.7.4慎用分支和循环语句119
5.7.5不要除以0119
5.8扩展阅读120
第6章Unity中的基础光照121
6.1我们是如何看到这个世界的121
6.1.1光源121
6.1.2吸收和散射122
6.1.3着色122
6.1.4BRDF光照模型123
6.2标准光照模型123
6.2.1环境光123
6.2.2自发光124
6.2.3漫反射124
6.2.4高光反射124
6.2.5逐像素还是逐顶点125
6.2.6总结125
6.3Unity中的环境光和自发光126
6.4在Unity Shader中实现漫反射光照
模型126
6.4.1实践:逐顶点光照126
6.4.2实践:逐像素光照129
6.4.3半兰伯特模型130
6.5在Unity Shader中实现高光反射
光照模型131
6.5.1实践:逐顶点光照132
6.5.2实践:逐像素光照134
6.5.3Blinn-Phong光照模型135
6.6召唤神龙:使用Unity内置的
函数136
第7章基础纹理139
7.1单张纹理140
7.1.1实践140
7.1.2纹理的属性142
7.2凹凸映射146
7.2.1高度纹理146
7.2.2法线纹理146
7.2.3实践148
7.2.4Unity中的法线纹理类型154
7.3渐变纹理155
7.4遮罩纹理158
7.4.1实践159
7.4.2其他遮罩纹理161
第8章透明效果162
8.1为什么渲染顺序很重要163
8.2Unity Shader的渲染顺序164
8.3透明度测试165
8.4透明度混合169
8.5开启深度写入的半透明效果171
8.6ShaderLab的混合命令173
8.6.1混合等式和参数173
8.6.2混合操作174
8.6.3常见的混合类型175
8.7双面渲染的透明效果176
8.7.1透明度测试的双面渲染176
8.7.2透明度混合的双面渲染176
第3篇中级篇
第9章更复杂的光照180
9.1Unity的渲染路径180
9.1.1前向渲染路径182
9.1.2顶点照明渲染路径185
9.1.3延迟渲染路径186
9.1.4选择哪种渲染路径188
9.2Unity的光源类型188
9.2.1光源类型有什么影响189
9.2.2在前向渲染中处理不同的
光源类型190
9.3Unity的光照衰减195
9.3.1用于光照衰减的纹理196
9.3.2使用数学公式计算衰减196
9.4Unity的阴影196
9.4.1阴影是如何实现的197
9.4.2不透明物体的阴影198
9.4.3使用帧调试器查看阴影绘制过程202
9.4.4统一管理光照衰减和阴影204
9.4.5透明度物体的阴影206
9.5本书使用的标准Unity Shader209
第10章高级纹理210
10.1立方体纹理210
10.1.1天空盒子210
10.1.2创建用于环境映射的立方体
纹理212
10.1.3反射213
10.1.4折射215
10.1.5菲涅耳反射217
10.2渲染纹理219
10.2.1镜子效果219
10.2.2玻璃效果220
10.2.3渲染纹理 vs. GrabPass224
10.3程序纹理225
10.3.1在Unity中实现简单的程序
纹理225
10.3.2Unity的程序材质228
第11章让画面动起来230
11.1Unity Shader中的内置变量
(时间篇)230
11.2纹理动画230
11.2.1序列帧动画230
11.2.2滚动的背景233
11.3顶点动画234
11.3.1流动的河流234
11.3.2广告牌236
11.3.3注意事项239
第4篇高级篇
第12章屏幕后处理效果244
12.1建立一个基本的屏幕后处理脚本
系统244
12.2调整屏幕的亮度、饱和度和
对比度246
12.3边缘检测249
12.3.1什么是卷积249
12.3.2常见的边缘检测算子249
12.3.3实现250
12.4高斯模糊253
12.4.1高斯滤波253
12.4.2实现254
12.5Bloom效果259
12.6运动模糊263
12.7扩展阅读266
第13章使用深度和法线纹理267
13.1获取深度和法线纹理267
13.1.1背后的原理267
13.1.2如何获取269
13.1.3查看深度和法线纹理271
13.2再谈运动模糊272
13.3全局雾效276
13.3.1重建世界坐标276
13.3.2雾的计算278
13.3.3实现278
13.4再谈边缘检测283
13.5扩展阅读287
第14章非真实感渲染288
14.1卡通风格的渲染288
14.1.1渲染轮廓线288
14.1.2添加高光289
14.1.3实现290
14.2素描风格的渲染293
14.3扩展阅读296
14.4参考文献297
第15章使用噪声298
15.1消融效果298
15.2水波效果302
15.3再谈全局雾效305
15.4扩展阅读309
15.5参考文献309
第16章Unity中的渲染优化技术310
16.1移动平台的特点310
16.2影响性能的因素311
16.3Unity中的渲染分析工具312
16.3.1认识Unity 5的渲染统计
窗口312
16.3.2性能分析器的渲染区域313
16.3.3再谈帧调试器313
16.3.4其他性能分析工具314
16.4减少draw call数目314
16.4.1动态批处理315
16.4.2静态批处理316
16.4.3共享材质318
16.4.4批处理的注意事项318
16.5减少需要处理的顶点数目319
16.5.1优化几何体319
16.5.2模型的LOD技术319
16.5.3遮挡剔除技术320
16.6减少需要处理的片元数目320
16.6.1控制绘制顺序320
16.6.2时刻警惕透明物体321
16.6.3减少实时光照和阴影321
16.7节省带宽322
16.7.1减少纹理大小322
16.7.2利用分辨率缩放323
16.8减少计算复杂度323
16.8.1Shader的LOD技术323
16.8.2代码方面的优化323
16.8.3根据硬件条件进行缩放324
16.9扩展阅读324
第5篇扩展篇
第17章Unity的表面着色器探秘328
17.1表面着色器的一个例子328
17.2编译指令330
17.2.1表面函数330
17.2.2光照函数330
17.2.3其他可选参数331
17.3两个结构体332
17.3.1数据来源:Input结构体332
17.3.2表面属性:SurfaceOutput
结构体333
17.4Unity背后做了什么334
17.5表面着色器实例分析336
17.6Surface Shader的缺点341
第18章基于物理的渲染342
18.1PBS的理论和数学基础342
18.1.1光是什么343
18.1.2双向反射分布函数
(BRDF)344
18.1.3漫反射项345
18.1.4高光反射项346
18.1.5Unity中的PBS实现347
18.2Unity 5的Standard Shader348
18.2.1它们是如何实现的348
18.2.2如何使用Standard Shader349
18.3一个更加复杂的例子352
18.3.1设置光照环境352
18.3.2放置反射探针355
18.3.3调整材质356
18.3.4线性空间356
18.4答疑解惑357
18.4.1什么是全局光照357
18.4.2什么是伽马校正358
18.4.3什么是HDR361
18.4.4那么,PBS适合什么样的
游戏362
18.5扩展阅读363
18.6参考文献363
第19章Unity 5更新了什么365
19.1场景“更亮了”365
19.2表面着色器更容易“报错了”365
19.3当家做主:自己控制非统一缩放的
网格366
19.4固定管线着色器逐渐退出舞台366
第20章还有更多内容吗368
20.1如果你想深入了解渲染的话368
20.2世界那么大369
20.3参考文献369
规格参数
品牌 | 京东图书 |
品牌属地 | 中国 |
ISBN | 9787115423054 |
著者 | 冯乐乐 |
出版社 | 人民邮电出版社 |
用纸 | 胶版纸 |
包装 | 平装 |
出版时间 | 2016-05-01 |
页数 | 369 |
语言 | 中文 |
版次 | 1 |
免责声明
产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。
查看详情
商品有效期
为你推荐
-59%
然利
27种选择
【一周早餐随心配】然利 手工金山角蛋糕大麦若叶味+巧克力味+红丝绒味+虎皮蛋糕乳酸菌味+原味蛋糕 5包 515g【5种口味组合装】【产品包装袋保质期读法:月/日/年】
5.0
(2)
-60%
然利
27种选择
然利 手工金山角蛋糕 营养早餐面包 大麦若叶味 95g *5【5份超值装】【产品包装袋保质期读法:月/日/年】
5.0
(1)
订阅成功!
你的邮箱将很快会收到一封邮件
你的邮箱 :
分享你的感受,帮助更多用户做出选择。
写评论