主页 详情

《WebGL 3D开发实战详解 第2版》_吴亚峰_14753841_

【书名】:《WebGL 3D开发实战详解 第2版》
【作者】:吴亚峰
【出版社】:
【时间】:2020
【页数】:
【ISBN】:
【SS码】:14753841

最新查询

内容简介

第1章 HTML5开发基础——进入WebGL世界的第一道坎

1.1 HTML的发展简史

1.1.1 HTML的由来

1.1.2 HTML的历史

1.2 HTML5简介

1.2.1 HTML5的新标准

1.2.2 HTML5引入的新特性

1.2.3 HTML5现状

1.3 初识HTML5

1.3.1 HTML5标签简介

1.3.2 基础标签

1.3.3 格式标签

1.3.4 表单标签

1.3.5 图像、链接、列表标签

1.3.6 表格、元信息等标签

1.3.7 HTML5中的全局属性

1.3.8 HTML5中的事件

1.4 初识CSS

1.4.1 CSS简介

1.4.2 CSS基础语法

1.4.3 如何插入样式表

1.4.4 使用CSS样式

1.5 初识JavaScript

1.5.1 JavaScript的名字和版本

1.5.2 准备使用JavaScript

1.5.3 使用语句

1.5.4 使用变量和类型

1.5.5 JavaScript运算符

1.5.6 使用数组

1.5.7 创建自己的JavaScript对象

1.5.8 常用的JavaScript工具

1.6 HTML5 Canvas简介

1.6.1 文档对象模型和Canvas

1.6.2 JavaScript与Canvas

1.6.3 HTML5 Canvas版“Hello World”

1.6.4 Canvas中的基础图形

1.7 本章小结

第2章 初识WebGL 2.0

2.1 WebGL 2.0概述

2.1.1 WebGL 2.0简介

2.1.2 WebGL 2.0效果展示

2.2 初识WebGL 2.0应用

2.2.1 WebGL 2.0应用案例部署步骤

2.2.2 初识WebGL 2.0应用程序

2.3 着色器与渲染管线

2.3.1 WebGL 2.0的渲染管线

2.3.2 WebGL 2.0中立体物体的构建

2.4 本章小结

第3章 着色语言

3.1 着色语言概述

3.2 着色语言基础

3.2.1 数据类型概述

3.2.2 数据类型的基本使用

3.2.3 运算符

3.2.4 构造函数

3.2.5 类型转换

3.2.6 限定符

3.2.7 插值限定符

3.2.8 一致块

3.2.9 layout限定符

3.2.10 流程控制

3.2.11 函数的声明与使用

3.2.12 片元着色器中浮点变量精度的指定

3.2.13 程序的基本结构

3.3 特殊的内建变量

3.3.1 顶点着色器中的内建变量

3.3.2 片元着色器中的内建变量

3.3.3 内建常量

3.3.4 内建uniform变量

3.4 着色语言的内置函数

3.4.1 角度转换与三角函数

3.4.2 指数函数

3.4.3 常见函数

3.4.4 几何函数

3.4.5 矩阵函数

3.4.6 向量关系函数

3.4.7 纹理采样函数

3.4.8 微分函数

3.4.9 浮点数的打包与解包函数

3.5 用invariant修饰符避免值变问题

3.6 预处理器

3.7 本章小结

第4章 必知必会的3D开发知识——投影及各种变换

4.1 矩阵数学计算工具脚本Matrix

4.2 摄像机的设置

4.3 两种投影方式

4.3.1 正交投影

4.3.2 透视投影

4.4 各种变换

4.4.1 基本变换的数学知识

4.4.2 平移变换

4.4.3 旋转变换

4.4.4 缩放变换

4.4.5 基本变换的实质

4.5 所有变换的完整流程

4.6 绘制方式

4.6.1 几种绘制方式概述

4.6.2 点与线段绘制方式

4.6.3 三角形条带与扇面绘制方式

4.7 设置合理的视角

4.8 卷绕和背面剪裁

4.8.1 基本知识

4.8.2 简单的案例

4.9 本章小结

第5章 光照效果

5.1 曲面物体的构建

5.1.1 球体的构建原理

5.1.2 案例效果概述

5.1.3 具体开发步骤

5.2 基本光照效果

5.2.1 光照的基本模型

5.2.2 环境光

5.2.3 散射光

5.2.4 镜面光

5.2.5 3种光照通道的合成

5.3 定位光与定向光

5.4 点法向量和面法向量

5.5 光照的每顶点计算与每片元计算

5.6 本章小结

第6章 纹理映射

6.1 初识纹理映射

6.1.1 基本原理

6.1.2 简单的案例

6.2 纹理拉伸

6.2.1 两种拉伸方式概述

6.2.2 不同拉伸方式的案例

6.3 纹理采样

6.3.1 纹理采样概述

6.3.2 最近点采样

6.3.3 线性纹理采样

6.3.4 MIN与MAG采样

6.3.5 不同纹理采样方式的案例

6.4 Mipmap纹理技术

6.4.1 基本原理

6.4.2 简单的案例

6.5 多重纹理与过程纹理

6.5.1 案例概述

6.5.2 将2D纹理映射到球面上的策略

6.5.3 案例的场景结构

6.5.4 开发过程

6.6 压缩纹理的使用

6.6.1 ETC压缩纹理

6.6.2 DXT5压缩纹理

6.7 本章小结

第7章 3D模型加载

7.1 obj模型文件概述

7.1.1 obj文件的格式

7.1.2 用3ds Max设计3D模型

7.2 加载obj文件

7.2.1 加载仅有顶点坐标与面数据的obj文件

7.2.2 加载后自动计算面法向量

7.2.3 加载后自动计算平均法向量

7.2.4 加载纹理坐标

7.2.5 加载顶点法向量

7.3 双面光照

7.4 本章小结

第8章 混合与雾

8.1 混合技术

8.1.1 混合基本知识

8.1.2 源因子和目标因子

8.1.3 简单混合效果的案例

8.2 地月系云层效果的实现

8.3 雾

8.3.1 雾的原理与优势

8.3.2 雾的简单实现

8.4 本章小结

第9章 常用的3D开发技巧

9.1 标志板

9.1.1 案例效果与基本原理

9.1.2 开发步骤

9.2 灰度图地形

9.2.1 基本原理

9.2.2 普通灰度图地形

9.2.3 过程纹理地形

9.2.4 Mipmap地形

9.3 高真实感地形

9.3.1 基本思路

9.3.2 地形设计工具EarthSculptor的使用

9.3.3 简单的案例

9.4 天空盒与天空穹

9.4.1 天空盒

9.4.2 天空穹

9.4.3 天空盒与天空穹的使用技巧

9.5 简单镜像

9.5.1 镜像基本原理

9.5.2 基本效果案例

9.5.3 升级效果的案例

9.6 非真实感绘制

9.6.1 基本原理与案例效果

9.6.2 具体开发步骤

9.7 描边效果的实现

9.7.1 沿法线挤出轮廓

9.7.2 在视空间中挤出

9.8 本章小结

第10章 渲染出更加酷炫的3D场景——几种剪裁与测试

10.1 剪裁测试

10.1.1 基本原理与核心代码

10.1.2 主次视角的简单案例

10.2 模板测试

10.2.1 基本原理

10.2.2 简单的案例

10.3 任意剪裁平面

10.3.1 基本原理

10.3.2 茶壶被任意平面剪裁的案例

10.4 本章小结

第11章 Three.js引擎基础

11.1 Three.js概述

11.1.1 Three.js简介

11.1.2 Three.js效果展示

11.2 初识Three.js应用

11.3 Three.js基本组件

11.3.1 场景

11.3.2 几何对象

11.3.3 摄像机

11.3.4 摄像机数组

11.3.5 光源

11.3.6 材质

11.4 模型加载

11.4.1 Three.js中支持的模型文件格式

11.4.2 导入三维格式文件

11.4.3 骨骼动画的加载

11.5 贴图的使用

11.6 本章小结

第12章 Three.js引擎进阶

12.1 粒子系统

12.1.1 Sprite粒子系统

12.1.2 PointCloud粒子系统

12.1.3 火焰粒子特效

12.2 混合与雾

12.2.1 混合

12.2.2 雾

12.3 渲染到纹理

12.3.1 效果组合器

12.3.2 FilmPass通道

12.3.3 BloomPass通道

12.3.4 DotScreenPass通道

12.3.5 SSAOPass通道

12.3.6 ShaderPass通道

12.4 音频的处理与展示

12.4.1 声音可视化

12.4.2 声音与距离

12.5 杂项

12.5.1 任意剪裁平面

12.5.2 单个物体的多个实例

12.5.3 高真实感的水面

12.6 本章小结

第13章 Babylon.js引擎

13.1 Babylon.js概述

13.1.1 Babylon.js简介

13.1.2 Babylon.js效果展示

13.2 初识Babylon.js应用

13.3 Babylon.js基本组件

13.3.1 场景

13.3.2 网格对象

13.3.3 摄像机与控制

13.3.4 光照与阴影

13.3.5 材质

13.4 模型加载

13.4.1 Babylon.js中支持的模型文件格式

13.4.2 资源管理器的使用

13.4.3 导入三维格式文件

13.5 纹理贴图

13.5.1 使用纹理贴图

13.5.2 使用法向贴图

13.5.3 使用光照贴图制作静态阴影

13.5.4 使用高光贴图

13.6 粒子系统

13.6.1 精灵与精灵动画

13.6.2 粒子与粒子系统

13.6.3 粒子发射器

13.6.4 粒子动画

13.6.5 GPU粒子

13.6.6 固体颗粒系统

13.7 物理引擎

13.7.1 Babylon.js中支持的物理引擎插件

13.7.2 刚体的简单介绍

13.7.3 简单的物理场景

13.7.4 爆炸效果实现

13.7.5 碰撞回调函数

13.7.6 为导入模型添加碰撞效果

13.7.7 关节的简介

13.7.8 单摆运动的小球

13.7.9 布料模拟

13.8 渲染到纹理

13.8.1 SSAO渲染效果的实现

13.8.2 Bloom渲染效果的实现

13.8.3 颗粒渲染效果的实现

13.8.4 色差渲染效果的实现

13.8.5 景深渲染效果的实现

13.9 本章小结

第14章 Ammo物理引擎

14.1 Ammo物理引擎简介

14.2 Ammo中的常用类

14.2.1 btVector3类——三维向量类

14.2.2 btTransform类——变换类

14.2.3 btRigidBody类——刚体类

14.2.4 btDynamicsWorld类——物理世界类

14.2.5 btDiscreteDynamicsWorld类——离散物理世界类

14.2.6 btSoftRigidDynamicsWorld类——支持模拟软体的物理世界类

14.2.7 btCollisionShape类——碰撞形状类

14.2.8 btStaticPlaneShape类——静态平面形状

14.2.9 btSphereShape类——球体形状类

14.2.10 btBoxShape类——长方体盒碰撞形状类

14.2.11 btCylinderShape类——圆柱形状类

14.2.12 btCapsuleShape类——胶囊形状类

14.2.13 btConeShape类——圆锥形状类

14.2.14 btCompoundShape类——复合碰撞形状类

14.3 简单的物理场景

14.3.1 案例运行效果

14.3.2 案例的基本结构

14.3.3 介绍主要方法

14.4 多种形状刚体的碰撞

14.4.1 案例运行效果

14.4.2 案例开发过程

14.5 旋转的陀螺

14.5.1 案例运行效果

14.5.2 案例开发过程

14.6 触发器——消失的木块

14.6.1 案例运行效果

14.6.2 案例开发过程

14.7 碰撞过滤——物体碰撞下落

14.7.1 案例运行效果

14.7.2 案例开发过程

14.8 关节

14.8.1 关节的父类——btTypedConstraint类

14.8.2 铰链关节——btHingeConstraint类

14.8.3 铰链关节的案例——球落门开

14.8.4 齿轮关节——btGearConstraint类

14.8.5 齿轮关节的案例——转动的齿轮

14.8.6 点对点关节——btPoint2PointConstraint类

14.8.7 点对点关节的案例——悬挂的物体

14.8.8 滑动关节——btSliderConstraint类

14.8.9 滑动关节的案例——6个方向的物体滑动

14.8.10 六自由度关节——btGeneric6DofConstraint类

14.8.11 六自由度关节的案例——掉落的蜘蛛

14.9 交通工具类的介绍

14.9.1 交通工具类——btRaycastVehicle类

14.9.2 交通工具的案例——移动的小车

14.10 软体

14.10.1 软体帮助类——btSoftBodyHelps类

14.10.2 软布案例

14.10.3 三角形网格软体案例

14.10.4 绳索软体案例

14.11 本章小结

第15章 在线3D模型交互式编辑系统

15.1 背景以及功能概述

15.1.1 开发背景概述

15.1.2 系统功能简介

15.2 系统的策划及准备工作

15.2.1 系统策划

15.2.2 数据库设计

15.3 系统架构

15.3.1 类简介

15.3.2 系统架构简介

15.4 服务器端相关类

15.5 模型编辑页面文件

15.6 管理脚本

15.6.1 矩阵管理脚本

15.6.2 材质管理脚本

15.7 工具脚本

15.7.1 颜色拾取脚本

15.7.2 摄像机旋转脚本

15.7.3 添加监听脚本

15.8 模型导出脚本

15.8.1 obj文件导出脚本

15.8.2 stl文件导出脚本

15.9 辅助工具脚本

15.9.1 初始化相关脚本

15.9.2 监听相关脚本

15.10 系统的优化与改进

15.11 本章小结


书查询(www.shuchaxun.com)本网页唯一编码:
0e9845857c58f7d8b955cb812238c1be#354bf4e2a833ba0c1e81322985c95f4a#259706875#14753841_yz.pdf