图书介绍

WebGL高级编程 开发Web 3D图形PDF|Epub|txt|kindle电子书版本网盘下载

WebGL高级编程 开发Web 3D图形
  • (美)阿尤鲁著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302321835
  • 出版时间:2013
  • 标注页数:294页
  • 文件大小:77MB
  • 文件页数:309页
  • 主题词:网页制作工具-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

WebGL高级编程 开发Web 3D图形PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章WebGL简介1

1.1 WebGL基础1

1.2浏览器3D图形吸引人的原因2

1.3设计一个图形API3

1.3.1即时模式API3

1.3.2保留模式API3

1.4图形硬件简介4

1.4.1 GPU4

1.4.2帧缓存5

1.4.3纹理存储器6

1.4.4视频控制器6

1.5 WebGL图形流水线6

1.5.1顶点着色器8

1.5.2图元装配11

1.5.3光栅化12

1.5.4片段着色器12

1.5.5逐片段操作15

1.6 WebGL与其他图形技术的比较16

1.6.1 OpenGL16

1.6.2 OpenGL ES 2.018

1.6.3 Direct3D19

1.6.4 HTML5画布21

1.6.5可缩放矢量图形25

1.6.6 VRML与X3D26

1.7线性代数简介27

1.7.1坐标系27

1.7.2点与顶点27

1.7.3矢量28

1.7.4矢量的点积或标积29

1.7.5叉积30

1.7.6齐次坐标31

1.7.7矩阵31

1.7.8仿射变换34

1.8小结39

第2章 创建基本的WebGL示例41

2.1绘制三角形41

2.1.1创建WebGL上下文45

2.1.2创建顶点着色器和片段着色器47

2.1.3编译着色器48

2.1.4创建程序对象和链接着色器48

2.1.5建立缓冲50

2.1.6绘制场景51

2.2了解WebGL编码风格52

2.3调试WebGL应用程序53

2.3.1使用Chrome开发人员工具53

2.3.2 Firebug的使用59

2.3.3 WebGL的错误处理与错误代码61

2.3.4 WebGL Inspector64

2.3.5 WebGL的故障排除70

2.4用DOM API载入着色器71

2.5更高级的综合示例73

2.6小结77

第3章 绘制79

3.1使用WebGL绘制图元和绘图方法79

3.1.1图元80

3.1.2顶点组绕顺序的重要性84

3.1.3 WebGL的绘图方法85

3.2类型化数组91

3.2.1缓冲与视图91

3.2.2 WebGL支持的视图类型92

3.3探讨不同的绘图方法93

3.3.1 gl.drawArrays()和g1.TRIANGLES94

3.3.2 gl.drawArrays()方法和gl.TRIANGLE- STRIP图元96

3.3.3 gl.drawElements()方法和gl.TRIANGLES图元98

3.3.4 gl.drawElements()方法和gl.TRIANLE_ STRIP图元100

3.3.5总结比较102

3.3.6前期变换顶点缓存和后期变换顶点缓存102

3.4为提高性能交叉存放顶点数据104

3.5使用顶点数组或常量顶点数据113

3.6总结本章的最后一个示例114

3.7小结124

第4章 小型JavaScript库与变换127

4.1 JavaScript中矩阵和向量的操作127

4.1.1 Sylvester库128

4.1.2 WebGL-mjs库132

4.1.3 glMatrix库135

4.2变换运算139

4.3理解完整的变换流水线145

4.4变换的实践146

4.4.1为对象坐标设置缓冲147

4.4.2用JavaScript创建变换矩阵并上传给着色器148

4.4.3将变换矩阵上传给GPU中的顶点着色器148

4.4.4调用绘图方法149

4.5理解变换顺序的重要性150

4.5.1使用一个固定的全局的坐标系150

4.5.2使用移动的局部的坐标系153

4.5.3变换矩阵的入栈和出栈操作154

4.6一个完整的示例:绘制几个变换后的对象157

4.6.1使用WebGL代码创建立方体159

4.6.2视图变换和模型变换的组织161

4.7小结162

第5章 纹理贴图163

5.1理解丢失上下文164

5.1.1理解解决丢失上下文问题所需要的设置164

5.1.2处理丢失上下文问题时需要考虑的几个因素166

5.2 2D纹理与立方映射纹理169

5.3载入纹理170

5.3.1创建WebGLTexture对象170

5.3.2绑定纹理171

5.3.3载入图像数据171

5.3.4将纹理上传到GPU173

5.3.5定义纹理参数174

5.3.6理解载入纹理的完整过程175

5.3.7创建一个纹理对象并载入纹理数据177

5.4定义纹理坐标178

5.5着色器中的纹理处理180

5.6处理纹理过滤183

5.6.1纹理伸展184

5.6.2纹理收缩185

5.6.3 Mip映射纹理186

5.7理解纹理坐标包装188

5.7.1应用gl.REPEAT包装模式188

5.7.2应用gl.MIRRORED-REPEAT包装模式190

5.7.3应用gl.CLAMP_ TO_ EDGE包装模式191

5.8一个完整的应用纹理示例191

5.9获得用作纹理的图像194

5.9.1下载免费纹理194

5.9.2用自己拍摄的照片生成纹理194

5.9.3绘制图像195

5.9.4购买纹理195

5.10同域策略与跨域资源共享195

5.10.1同域策略应用于一般的图像196

5.10.2同域策略应用于纹理197

5.10.3跨域资源共享199

5.11小结200

第6章 动画与用户输入203

6.1创建动画场景203

6.1.1 setInterval()和setTimeout()的使用205

6.1.2使用requestAnimationFrame()函数206

6.1.3帧频不同引起的运动补偿209

6.1.4创建FPS计数器测量动画的平稳性210

6.1.5用FPS作为测量值的缺点212

6.2用户交互事件的处理213

6.2.1 DOM Level 0基本事件处理214

6.2.2 DOM Level 2——高级事件处理方法215

6.2.3键盘输入217

6.2.4鼠标输入221

6.3综合应用新知识223

6.4小结229

第7章 光照231

7.1光源231

7.2局部光照模型的工作原理232

7.3 Phong反射模型232

7.3.1环境反射233

7.3.2漫反射234

7.3.3镜面反射236

7.3.4 Phong反射模型的完整公式和着色器239

7.3.5光照效果与纹理相结合243

7.4 WebGL光照中需要的JavaScript代码246

7.4.1为顶点法线设置缓存247

7.4.2计算法线矩阵并上传给着色器249

7.4.3将光照信息上传给着色器250

7.5将不同的插值方法用于着色250

7.5.1平面着色251

7.5.2 Gouraud着色252

7.5.3 Phong着色253

7.6矢量必须归一化256

7.6.1顶点着色器中的矢量归一化257

7.6.2片段着色器的矢量归一化257

7.7应用不同类型的光源258

7.7.1平行光258

7.7.2点光源259

7.7.3聚光源259

7.8光强衰减262

7.9光照映射265

7.10小结267

第8章WebGL性能优化269

8.1 WebGL底层工作机制269

8.1.1支持WebGL的硬件270

8.1.2关键的软件组成271

8.2 WebGL性能优化274

8.2.1避免初学者的典型错误274

8.2.2确定瓶颈位置275

8.2.3有关性能的一般性建议279

8.2.4改善CPU受限的WebGL应用程序性能的建议282

8.2.5改善顶点受限的WebGL应用程序性能的建议283

8.2.6改善像素受限的WebGL应用程序性能的建议285

8.3深入分析融合286

8.3.1融合简介286

8.3.2设置融合函数287

8.3.3绘制顺序与深度缓冲区290

8.3.4绘制包含不透明对象和半透明对象的场景290

8.3.5修改融合公式中的默认运算符291

8.3.6使用预乘alpha值292

8.4深入讨论WebGL292

8.4.1使用WebGL框架293

8.4.2发布到Google Chrome Web Store293

8.4.3使用额外资源293

8.5小结294

热门推荐