Shader开发实战

Shader开发实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [英] (Kyle Halladay)
2021-07
版次: 1
ISBN: 9787302583349
定价: 98.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 316页
20人买过
  • 主要内容: 
    ·了解什么是着色器以及它们的工作原理 
    ·迅速深入编写顶点着色器和片元着色器技术 
    ·使用颜色混合,并了解混合方程式的工作原理 
    ·了解渲染实时计算机图形时使用的坐标空间 
    ·使用简单的数学运算为角色设置动画、模拟灯光以及创建多种视觉效果 
    ·查找并修复着色器中的性能问题 
    .了解三种流行的游戏引擎(Unity、UE4和Godot)使用着色器的方式 

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

     

     
    第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 
      

  • 内容简介:
    主要内容: 
    ·了解什么是着色器以及它们的工作原理 
    ·迅速深入编写顶点着色器和片元着色器技术 
    ·使用颜色混合,并了解混合方程式的工作原理 
    ·了解渲染实时计算机图形时使用的坐标空间 
    ·使用简单的数学运算为角色设置动画、模拟灯光以及创建多种视觉效果 
    ·查找并修复着色器中的性能问题 
    .了解三种流行的游戏引擎(Unity、UE4和Godot)使用着色器的方式 

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

     

     
    第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 
      

查看详情
12
相关图书 / 更多
Shader开发实战
Shopee跨境电商卖家实战指南(博文视点出品) 
陈洪峰 著
Shader开发实战
Shields普通胸部外科学(原书第8版)(上下册)
[美]Joseph LoCicero Ⅲ (美) Richard H. Feins
Shader开发实战
Shopee跨境电商运营实战
徐鹏飞
Shader开发实战
Shankar量子力学原理 第2版
[美]拉马穆蒂·香卡(R. Shankar)
Shader开发实战
Shackelford消化道外科学(原书第8版):肝胆胰脾外科学卷(第三卷) 国际经典消化外科学译著
查尔斯·J.杨(Charles;J.;Yeo
Shader开发实战
Short Stories:北美学生课堂阅读训练(Grade 6-8 英文朗读版)(配套英文朗读扫码收听)
东方神鸟 出品;韦恩·艾弗里特
Shader开发实战
Shackelford消化道外科学(原书第8版):食管及疝外科学卷(第一卷) 国际经典消化外科学译著
[美]查尔斯·J.杨(Charles J. Yeo)
Shader开发实战
Short Stories:北美学生课堂阅读训练(英文朗读版 套装共3册)(配套英文朗读扫码收听)
东方神鸟 出品;韦恩·艾弗里特
Shader开发实战
Short Stories:北美学生课堂阅读训练(Grade 1-5 英文朗读版)(配套英文朗读扫码收听)
东方神鸟 出品;韦恩·艾弗里特
Shader开发实战
Shackelford消化道外科学(原书第8版):结直肠及肛门外科学卷
[美]查尔斯·J.杨(Charles J. Yeo)
Shader开发实战
ShipStructureandDrawing船舶结构与制图(英文版)
余龙 著;余龙 编
Shader开发实战
Sharpe'sEscape:RichardSharpeandtheBussacoCampaign1810
Bernard Cornwell(伯纳德·康韦尔) 著
您可能感兴趣 / 更多
Shader开发实战
破冰游戏(英国前自由式滑雪运动员艾莉?雷诺兹处女作 阿尔卑斯暴风雪山庄 × 心理惊悚 × 滑雪竞技)午夜文库
[英]艾莉·雷诺兹 著;乔迪 译
Shader开发实战
新东方 剑桥FCE考试强化练习 适用中期备考引进自Klett出版集团全真模拟
[英]梅甘·罗德里克(Megan Roderick) 著
Shader开发实战
新东方 剑桥KET考试强化练习 适用中期备考引进自Klett出版集团全真模拟
[英]梅甘;罗德里克(Megan Roderick);[西]贝尔纳多;莫拉莱斯(Bernardo Morales)
Shader开发实战
新东方 剑桥PET考试强化练习 适用中期备考引进自Klett出版集团全真模拟
[英]梅甘·罗德里克(Megan Roderick) (西) 贝尔纳多·莫拉莱斯(Bernardo Morales) 著
Shader开发实战
正向陪伴儿童成长绘本·好行为(全7册)正向引导孩子积极解决行为问题,“百班千人”幼儿阅读研究院院长孙莉莉等力荐
[英]休·格雷夫斯 文
Shader开发实战
霍比特人 精装版
[英]J.R.R. 托尔金 著;李镭 译
Shader开发实战
(守望者·镜与灯)资本主义现实主义:私人情绪与时代症候
[英]马克·费舍 著;王立秋 译
Shader开发实战
GAME BOY 封绘艺术
[英]Bitmap Books出版社
Shader开发实战
暖房子经典绘本系列·美好心灵篇:大家一起抓怪物
[英]诺伯特·兰达 文;[英]蒂姆·沃纳斯 图
Shader开发实战
暖房子经典绘本系列·美好心灵篇:想和你做好朋友
[英]苏珊娜·周 文;[英]卡罗琳·佩德勒 图
Shader开发实战
教育与工作的目的:对工作和学习的新哲思
[英]约翰·怀特(John White) 著;迟艳杰 译
Shader开发实战
大猩猩
[英]安东尼·布朗