大小:68.85M
更新时间:23-08-29
系统:Pc
《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初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。
第1篇 基础篇 第1章 欢迎来到Shader的世界 2 1.1 程序员的三大浪漫 2 1.2 本书结构 3 第2章 渲染流水线 5 2.1 综述 5 2.1.1 什么是流水线 5 2.1.2 什么是渲染流水线 6 2.2 CPU和GPU之间的通信 7 2.2.1 把数据加载到显存中 7 2.2.2 设置渲染状态 8 2.2.3 调用Draw Call 8 2.3 GPU流水线 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/DirectX 18 2.4.2 什么是HLSL、GLSL、CG 19 2.4.3 什么是Draw Call 20 2.4.4 什么是固定管线渲染 22 2.5 那么,你明白什么是Shader了吗 23 2.6 扩展阅读 23 第3章 Unity Shader基础 24 3.1 Unity Shader概述 25 3.1.1 一对好兄弟:材质和Unity Shader 25 3.1.2 Unity中的材质 26 3.1.3 Unity中的Shader 26 3.2 Unity Shader的基础:ShaderLab 28 3.3 Unity Shader的结构 29 3.3.1 给我们的Shader起个名字 29 3.3.2 材质和Unity Shader的桥梁:Properties 29 3.3.3 重量级成员:SubShader 31 3.3.4 留一条后路:Fallback 33 3.3.5 ShaderLab还有其他的 语义吗 33 3.4 Unity Shader的形式 33 3.4.1 Unity的宠儿:表面着色器 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.1 Unity Shader != 真正的Shader 36 3.6.2 Unity 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.4 Unity使用的坐标系 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.8 Unity Shader的内置变量(数学篇) 87 4.8.1 变换矩阵 87 4.8.2 摄像机和屏幕参数 88 4.9 答疑解惑 89 4.9.1 使用3×3还是4×4的 变换矩阵 89 4.9.2 CG中的矢量和矩阵类型 89 4.9.3 Unity中的屏幕坐标:ComputeScreenPos/VPOS/ WPOS 90 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.4 Unity提供的CG/HLSL语义 109 5.4.1 什么是语义 109 5.4.2 Unity支持的语义 110 5.4.3 如何定义复杂的变量类型 110 5.5 程序员的烦恼:Debug 111 5.5.1 使用假彩色图像 111 5.5.2 利用神器:Visual Studio 113 5.5.3 最新利器:帧调试器 113 5.6 小心:渲染平台的差异 115 5.6.1 渲染纹理的坐标差异 115 5.6.2 Shader的语法差异 116 5.6.3 Shader的语义差异 117 5.6.4 其他平台差异 117 5.7 Shader整洁之道 117 5.7.1 float、half还是fixed 117 5.7.2 规范语法 118 5.7.3 避免不必要的计算 118 5.7.4 慎用分支和循环语句 119 5.7.5 不要除以0 119 5.8 扩展阅读 120 第6章 Unity中的基础光照 121 6.1 我们是如何看到这个世界的 121 6.1.1 光源 121 6.1.2 吸收和散射 122 6.1.3 着色 122 6.1.4 BRDF光照模型 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.3 Unity中的环境光和自发光 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.3 Blinn-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.4 Unity中的法线纹理类型 154 7.3 渐变纹理 155 7.4 遮罩纹理 158 7.4.1 实践 159 7.4.2 其他遮罩纹理 161 第8章 透明效果 162 8.1 为什么渲染顺序很重要 163 8.2 Unity Shader的渲染顺序 164 8.3 透明度测试 165 8.4 透明度混合 169 8.5 开启深度写入的半透明效果 171 8.6 ShaderLab的混合命令 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.1 Unity的渲染路径 180 9.1.1 前向渲染路径 182 9.1.2 顶点照明渲染路径 185 9.1.3 延迟渲染路径 186 9.1.4 选择哪种渲染路径 188 9.2 Unity的光源类型 188 9.2.1 光源类型有什么影响 189 9.2.2 在前向渲染中处理不同的 光源类型 190 9.3 Unity的光照衰减 195 9.3.1 用于光照衰减的纹理 196 9.3.2 使用数学公式计算衰减 196 9.4 Unity的阴影 196 9.4.1 阴影是如何实现的 197 9.4.2 不透明物体的阴影 198 9.4.3 使用帧调试器查看阴影绘制过程 202 9.4.4 统一管理光照衰减和阴影 204 9.4.5 透明度物体的阴影 206 9.5 本书使用的标准Unity Shader 209 第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. GrabPass 224 10.3 程序纹理 225 10.3.1 在Unity中实现简单的程序 纹理 225 10.3.2 Unity的程序材质 228 第11章 让画面动起来 230 11.1 Unity 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.5 Bloom效果 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.3 Unity中的渲染分析工具 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.1 Shader的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.4 Unity背后做了什么 334 17.5 表面着色器实例分析 336 17.6 Surface Shader的缺点 341 第18章 基于物理的渲染 342 18.1 PBS的理论和数学基础 342 18.1.1 光是什么 343 18.1.2 双向反射分布函数 (BRDF) 344 18.1.3 漫反射项 345 18.1.4 高光反射项 346 18.1.5 Unity中的PBS实现 347 18.2 Unity 5的Standard Shader 348 18.2.1 它们是如何实现的 348 18.2.2 如何使用Standard Shader 349 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 什么是HDR 361 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
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读试读
同类热门
热门标签
网友评论1人参与,1条评论
最新排行
几何公差设计问答电子书11.44M官方版 几何公差设计问答由刘巽尔编著,本书主要以问答的形式介绍了几何公差的基本概念、在图样上的框格标注方法、几何公差带的基本原理以及理论正确尺寸、位置度公差、注出几何公差值、一般几何公差等有关标准的基本知识及其应用技术。应用对象是中、初级机械科学与工程技术
查看国学大师四库全书电子版1.13Gv2.0简体+繁体版 国学大师四库全书官方版是国学大师系列之一,是一套大型规模的古籍丛书,收录古典书籍1800部5万卷,分为经、史、子、集四大部,总计约4亿字。涉及文学、艺术、历史、地理、科技、蒙学等。注本自动加色,书籍质量比较高全文可复制,全文可朗读或输出成mp3。几
查看CCNA学习指南640-802第7版84.2Mpdf扫描版CCNA认证是思科认证过程的第一步,是当今所有思科认证的前提,但如何才能更好的入门呢?小编这里推荐大家阅读CCNA学习指南640-802第7版,这是国内首屈一指的CCNA应试宝典,由美国思科网络技术作家Todd Lammle编著。本书内容丰富翔实,全面系
查看块数据 大数据时代真正到来的标志51.74Mpdf扫描版 块数据是一本首次创新性提出“块数据”这一概念的大数据图书,由大数据战略重点实验室编著。本书从一个新颖的视角——块数据,来看待大数据及其未来的发展,颇有创意!“条数据”和“块数据”的划分,师法自然,抓住了数据的本质。本书源于贵阳市领导在推进大数据应用
查看ansible权威指南 李松涛 pdf版171.37M高清扫描版 ansible权威指南是一本Ansible的权威指南,由李松涛,魏巍和甘捷三人共同编著。本书内容丰富翔实,涵盖Ansible基础、高级技法与定制化扩展、7个实战企业案例,以及Web自动化开发,解决入门简单、深入难问题。 作者在介绍新技术
查看Linux/UNIX OpenLDAP实战指南75.78M郭大勇pdf扫描版Linux/UNIX OpenLDAP实战指南是一本深入讲解OpenLDAP应用实战的中文图书,由郭大勇编著。本书内容丰富翔实,基于OpenLDAP软件讲争如何实王刚账号管理以及安全策略管理,例如账号管理、权限控制管理、密码策略管理、密码审计管理、主机控
查看云计算架构技术与实践(第2版)6.16M顾炯炯pdf扫描版云计算架构技术与实践(第2版)是一本云架构技术教材,由华为首席架构师顾炯炯编著。本书内容丰富翔实,主要讲解了云计算的存储、网络、数据、管理、接入、安全等内容,同时增加了云计算前言创新领域热点技术,分享了华为云计算核心竞争力构建与价值转化经验,以及介绍了公
查看数据库系统概念(原书第6版)31.7M扫描版数据库系统概念第六版是经典的数据库系统教科书《Database System Concepts》的新修订版,由Abraham Silberschatz、Henry F.Korth、S.Sudarshan三人共同编写。全书全面介绍了数据库系统的各种知识,透
查看java ee 7权威指南 卷2(原书第5版)55.08M埃里克·珍兆科pdf扫描版 java ee 7权威指南 卷2(原书第5版)是一本java EE权威开发指南,由美国程序员埃里克·珍兆科、里卡多·塞维拉 - 纳瓦罗、伊恩·埃文斯、金姆·哈泽和威廉·马基特五人共同编著。本书是一个面向任务的实用指南,通过一系列实用示例介绍如何开发
查看arcgis10产品白皮书10.74Mpdf中文版arcgis10产品白皮书是一款pdf中文版的高清电子书籍,全书其分为三篇,18个小章节,详细的介绍了什么是arcgis,arcgis功能模块以及arcgis产品技术介绍。arcgis为单用户或多用户在桌面,服务器,web和野外移动设备上使用gis提供了
查看数字设计和计算机体系结构第二版89.96M戴维·莫尼·哈里斯 pdf扫描版数字设计和计算机体系结构第二版是一本将数字逻辑和计算机体系结构融合的书籍,由美国程序员戴维·莫尼·哈里斯编著。本书内容丰富翔实,其特色在于使用并列方式讲述SystemVerilog和VHDL,使读者可以快速地对比两种语言。第4章更是描述适用于这两种硬件描
查看Eclipse从入门到精通陈刚PDF版84.37MEclipse从入门到精通陈刚PDF版是一款简单实用的PDF格式的Eclipse教程,全书共分为四篇,分别为起步篇,SWT/JFace篇,插件开发篇和Web开发篇。全书内容精简,去除了大量的冗余代码,含金量高,全面攻克java开发领域的前沿技术,极大地提
查看
第1楼 北京市联通 网友