返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版]Shader开发实战 凯尔·哈拉迪 清华大学出版社 游戏开发多媒体课件设计图形图像
  • 新商品上架
    • 作者: [英]凯尔·哈拉迪著
    • 出版社: 清华大学出版社
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: [英]凯尔·哈拉迪著
    • 出版社:清华大学出版社
    • 开本:16开
    • ISBN:9785885903637
    • 版权提供:清华大学出版社

     书名:  Shader开发实战
     出版社:  清华大学出版社
     出版日期  2021
     ISBN号:  9787302583349

    主要内容:

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

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

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

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

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

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

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

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

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

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

    作者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

    欢迎来到实用着色器开发。《Shader开发实战》旨在深入浅出地介绍编写视频游戏着色器的理论和实践。编写着色器是一个非常宽泛的话题,当我刚起步时,感到非常迷茫。希望《Shader开发实战》能够帮助你避免同样的感觉,并让你快速而自信地踏入着色器和游戏图形的广阔世界。

    《Shader开发实战》的指导思想是:“木匠不需要知道如何制作扳手”。同样,你不必知道如何构建渲染引擎就可以使用着色器创建美观的视觉效果,尤其是在刚入门时。《Shader开发实战》旨在帮助你进行实验、发挥创造力、创造有趣的事物,并希望在此过程中有所收获。为此,《Shader开发实战》不会尝试教你如何成为图形程序员,也不会尝试提供系统的数学知识(尽管将逐步介绍一些数学知识)。相反,《Shader开发实战》将从一开始就讨论现代游戏中如何在屏幕上放置东西,然后直接进入编写着色器,以使我们在屏幕上放置的东西看起来像我们想要的那样。将会有大量示例代码,大量图片,并且到《Shader开发实战》结束时,将从着色器编写的基本知识转向编写与市场上一些最流行的游戏中使用相同光照的着色器。

    如果在《Shader开发实战》的最后,你决定想更深入地研究图形编程,甚至编写自己的渲染引擎,或者更复杂的着色器技术,那么《Shader开发实战》将为你提供扎实的基础知识,为你处理更复杂的主题做准备。

    0.1  《Shader开发实战》读者对象

    《Shader开发实战》适用于想要学习如何使用着色器代码为游戏或实时应用程序创建视觉效果的任何人。假设你已经知道如何编写一些简单的C ++代码,但这就是你阅读《Shader开发实战》之前需要掌握的全部背景知识。将解释我们所需的所有数学运算(你会惊讶地发现其中的数学运算很少),并从3D网格开始,分解将使用的每种图形技术。如果你对C ++有点生疏,那也没问题!由于《Shader开发实战》的重点是着色器开发,因此根本不会编写太多的C ++代码,并且我们即使要写也将保持尽量简单短小,不给读者增加额外的负担。

    0.2  如何使用《Shader开发实战》

    第1~12章的重点是着色器技术的教学和介绍新的图形概念。如果你完全是初学者,建议你从第1章开始,并按顺序阅读所有内容。每章都基于之前的内容,因此,如果你跳过太多内容,就有可能最终迷失方向。

    如果你已经掌握了一些着色器开发知识,那么直接跳到你以前从未学过的章节可能会更有趣。

    第13~15章涉及调试和优化着色器代码。如果你是因为项目以10fps的速度运行而选择阅读《Shader开发实战》,并且需要对其进行修复,那么可能更值得直接跳到那里去解决当前碰到的问题。否则,你可能会因为前几章的轻松和缓慢的节奏而感到沮丧。

    第16~18章讨论了如何在当今使用的3种最流行的引擎中实现《Shader开发实战》中所教的概念:Unity、Unreal Engine 4和Godot。建议你将这些保留到最后,以准备将《Shader开发实战》中讲授的概念应用于你的项目中。

    最后,《Shader开发实战》结尾处的附录中有一些重要的代码片段,这对于《Shader开发实战》中的某些示例是必需的。这些代码片段不是着色器代码,因此不会对其进行详细说明。

    如果你在没有互联网连接的情况下阅读《Shader开发实战》,则需要参考附录中的代码,以便跟随后续章节中的示例内容进行学习。章节的内容将告诉你何时需要那些代码。

    0.3  示例代码约定

    《Shader开发实战》使用了大量示例代码。为了使讨论代码更容易,这些示例均使用编号进行了注释,如下所示:


    int main(){

    return 0; ? 


    行?引用了返回0的代码行。

    0.4  软件要求

    由于我们将使用一个名为openFrameworks的开源框架(默认情况下使用C++ 14),因此,如果你拥有能够支持C++ 14的编译器,那么你的编程生活将最为轻松。我们不会使用任何C++ 14功能,但是框架需要在幕后使用它们。如果你使用的是openFrameworks支持的IDE,你的编程生活也会更加轻松。幸运的是,支持openFrameworks的IDE很多,当完成所有设置后,你就可以自由选择你想要的IDE。

    最后,我们将使用OpenGL运行所有着色器。OpenGL是一个“渲染API”,这是用来与图形卡(GPU)进行通信的一组函数。有很多不同的API供你选择,但OpenGL的优势是可在尽可能广泛的硬件上运行,并可与openFrameworks很好地集成。你应该确保GPU至少支持OpenGL 4.1,这是《Shader开发实战》假定你正在使用的。从OS X High Sierra开始,苹果公司已不推荐在其台式PC上使用OpenGL,这意味着如果你在Mac上学习《Shader开发实战》,则《Shader开发实战》中的示例可能无法正常运行。

     

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购