搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
Shader开发实战
0.00     定价 ¥ 98.00
长沙图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787302583349
  • 作      者:
    [英]凯尔·哈拉迪(Kyle,Halladay),郭
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2021-07-01
收藏
编辑推荐

现在是时候揭开着色器的神秘面纱了。《Shader开发实战》一书循序渐进地引导游戏和图形开发人员学习着色器开发知识,兼顾动手实战,教会读者创建自己的着色器,从而将数据化为令人惊叹的视觉效果。通过阅读本书,读者将学会如何创建着色器,使之实现移动、着色、光照和惊艳的视觉效果,而这一切都无须打开任何一本数学课本。

《Shader开发实战》一书讲解了着色器的工作原理,展示了如何应用理论知识创建美轮美奂的视觉效果。读者将学习如何配置和优化这些效果,以确保应用了所有新的视觉效果的项目也能高性能地运行,还将学习上佳理论,上佳实践,而不会深陷数学泥潭。

作者Kyle Halladay通过深入浅出的示例和动手实践阐明了着色器开发的基础。他教会读者如何在使用着色器时发现性能问题,然后解决这些问题。Kyle解释(并对比)了如何将本书中学到的知识应用于当今流行的三个游戏引擎中。


展开
作者简介

Kyle Halladay是一名职业游戏程序员,居住在美国芝加哥市。在为游戏和建筑可视化编写着色器和构建图形技术方面,Kyle拥有七年以上的工作经验。

展开
内容介绍

主要内容:

·了解什么是着色器以及它们的工作原理

·迅速深入编写顶点着色器和片元着色器技术

·使用颜色混合,并了解混合方程式的工作原理

·了解渲染实时计算机图形时使用的坐标空间

·使用简单的数学运算为角色设置动画、模拟灯光以及创建多种视觉效果

·查找并修复着色器中的性能问题

.了解三种流行的游戏引擎(Unity、UE4和Godot)使用着色器的方式


展开
目录

目    录



第1章  初识游戏图形   1

1.1  什么是渲染   1

1.2  网格是什么   2

1.3  向量入门   3

1.4  在计算机图形学中定义颜色   7

1.5  渲染管线   8

1.6  着色器是什么   10

1.7  小结   11

第2章  第一个着色器   13

2.1  在Windows上安装   13

2.2  创建项目   14

2.3  创建第一个三角形   15

2.4  第一个顶点着色器   17

2.4.1  #version预处理器指令   18

2.4.2  GLSL的in关键字   18

2.4.3  GLSL的vec数据类型   18

2.4.4  写入gl_Position   19

2.4.5  归一化的设备坐标   19

2.5  第一个片元着色器   20

2.6  在项目中使用着色器   21

2.7  使用顶点属性添加颜色   23

2.8  片元插值介绍   25

2.9  统一变量介绍   26

2.10  小结   28

第3章  使用纹理   29

3.1  创建四边形   30

3.2  UV坐标介绍   32

3.3  在着色器中使用纹理   35

3.4  滚动UV坐标   38

3.5  使用统一变量调节亮度   41

3.6  基本的颜色数学   44

3.7  使用mix指令混合纹理   47

3.8  小结   50

第4章  半透明与深度   51

4.1  设置示例项目   52

4.2  绘制小绿人   52

4.3  alpha测试和丢弃   54

4.4  使用深度测试构建场景   55

4.5  使用alpha混合创建云朵   57

4.6  GLSL的min()函数和max()函数   59

4.7  alpha混合的工作原理   60

4.8  使用加法混合添加太阳光   62

4.9  使用精灵表制作动画   66

4.10  小结   68

第5章  使物体动起来   71

5.1  让角色向前走   72

5.2  在着色器代码中缩放云朵   74

5.3  使用顶点着色器旋转物体   78

5.4  变换矩阵   81

5.5  为变换矩阵添加动态   84

5.6  单位矩阵   88

5.7  小结   89

第6章  摄像机和坐标   91

6.1  使用视图矩阵   91

6.2  变换矩阵和坐标空间   95

6.3  摄像机视锥体和投影   100

6.4  小结   103

第7章  第一个3D项目   105

7.1  加载网格   105

7.2  创建透视摄像机   107

7.3  小结   110

第8章  漫反射光照   111

8.1  使用法线平滑(smooth)着色与平面(flat)着色   113

8.2  世界空间法线和swizzle   115

8.3  法线矩阵   116

8.4  为什么光照计算需要法线   117

8.5  什么是点积   118

8.6  点积着色   119

8.7  第一个平行光   121

8.8  创建轮廓光照效果   124

8.9  小结   129


第9章  第一个光照模型   131

9.1  镜面光照   131

9.2  第一个镜面着色器   133

9.3  组合漫反射和镜面反射光照   135

9.4  环境光照   136

9.5  Phong光照模型   138

9.6  Blinn-Phong光照   139

9.7  使用纹理控制光照   141

9.8  小结   144

第10章  法线贴图   147

10.1  什么是法线贴图   148

10.2  切线空间   149

10.3  使用切线向量   150

10.4  叉积   151

10.5  法线贴图的工作原理   152

10.6  编写水面着色器   155

10.7  法线贴图的更多信息   161

10.8  小结   162

第11章  立方体贴图和天空盒   163

11.1  什么是立方体贴图   163

11.2  在openFrameworks中加载立方体贴图   164

11.3  在立方体上渲染立方体贴图   165

11.4  天空盒   168

11.5  透视除法   170

11.6  天空盒和透视除法   170

11.7  完成天空盒   171

11.8  创建立方体贴图反射   172

11.9  立方体贴图的更多内容   174

11.10  小结   175

第12章  深入光照   177

12.1  定向光源   177

12.2  点光源   178

12.3  聚光灯   184

12.4  多光源   190

12.5  更灵活的多光源设置方法   196

12.6  更进一步   201

12.7  小结   202

第13章  剖析着色器性能   203

13.1  如何衡量性能   203

13.2  CPU时间与GPU时间   204

13.3  解决VSync(垂直同步)   204

13.4  设置评测用的计算机   207

13.5  剖析实践   208

13.6  Nsight Graphics介绍   210

13.7  我们是受CPU还是GPU限制   212

13.8  捷径   215

13.9  跟踪问题着色器   215

13.10  小结   218

第14章  优化着色器   221

14.1  将计算移至顶点着色器   221

14.2  避免动态分支   223

14.3  使用MAD   225

14.4  优先使用GLSL函数而不是自己编写的函数   226

14.5  使用Write Mask(写掩码)   227

14.6  避免不必要的overdraw(过度绘制)   228

14.7  最终想法   229

14.8  小结   229

第15章  精度   231

15.1  什么是浮点精度   231

15.2  案例研究:时间轴动画   234

15.3  使用低精度变量   238

15.4  案例研究:点光源问题   239

15.5  小结   242

第16章  在Unity中编写着色器   243

16.1  Unity中的着色器和材质   243

16.2  ShaderLab简介   244

16.3  纯色着色器   246

16.4  移植Blinn-Phong着色器   251

16.5  Unity中的半透明着色器   257

16.6  处理多个光源   258

16.7  将数据从C#传递到着色器代码   262

16.8  下一步、ShaderGraph和未来   263

16.9  小结   263

第17章  在UE4中编写着色器   265

17.1  着色器、材质和实例   265

17.2  使物体变红   268

17.3  UE4 Material Node Graph基础   270

17.4  制作边缘光材质   272

17.5  Default Lit材质输入   274

17.6  顶点着色器还是片元着色器   275

17.7  使用不同的着色模型   278

17.8  混合模式和纹理采样节点   279

17.9  将数据从代码传递到材质   280

17.10  所有这些与着色器代码有何关联   280

17.11 小结   281

第18章  在Godot中编写着色器   283

18.1  着色器和材质   283

18.2  Godot着色语言   285

18.3  片元着色器输出变量   287

18.4  制作自定义边缘光着色器   288

18.5  自定义顶点着色器   292

18.6  UV动画   292

18.7  半透明着色器和混合模式   293

18.8  将数据从代码传递到着色器   295

18.9  未来:可视化着色器编辑   295

18.10  小结   296

附录A  重要代码片段   297

A.1  计算网格的切线   297

A.2  ofxEasyCubemap类   298

 


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用长沙图书馆的读者帐号和密码进行登录

点击获取验证码
登录