作品简介

本书系统地介绍了HTML5的基本知识和新特性、WebGL的基本知识,并引导读者完成了WebGL的基础案例。同时,本书也对在WebGL中,实现可编程渲染管线着色器的语言进行了系统介绍,帮助读者进行着色器的高级开发打下坚实的基础。另外,本书介绍了3D开发的多种投影、变换原理及实现,以及点、线段、三角形三大类的绘制方式。本书适合程序开发人员、游戏开发人员和虚拟现实开发者阅读,也可作为大专院校相关专业师生的学习用书,以及培训学校的教材。

吴亚峰

有十多年的Java开发与培训经验。主要的研究方向为VulKan、OpenGL ES、手机游戏,以及VR/AR。同时是3D游戏、VR/AR独立软件工程师,并兼任百纳科技软件培训中心首席培训师。近十年来为数十家著名企业培养了上千名高级软件开发人员,曾编写过《OpenGL ES 3x游戏开发》(上下卷)、《Unity案例开发大全》(第一版,第二版)、《VR与AR开发高级教程——基于Unity》《H5和WebGL 3D开发实战详解》《Android应用案例开发大全》(第一版~第四版)、《Android游戏开发大全》(第一版~第四版)等畅销技术图书。2008年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。

于复兴

北京科技大学硕士,从业于计算机软件领域十余年,在软件开发和计算机教学方面有着丰富的经验。工作期间曾主持科研项目“PSP流量可视化检测系统研究与实现”,主持研发了多项省市级项目,同时为多家单位设计开发了管理信息系统,并在各种科技刊物上发表了多篇相关论文。2012年开始关注HTML5平台下的应用开发,参与开发了多款手机娱乐、游戏应用。

索依娜

2003年开始从事计算机领域教学及软件开发工作,曾参与编写《Android核心技术与实例详解》《Android平板电脑开发实战详解和典型案例》等技术图书。近几年曾主持市级科研项目一项,发表论文8篇,拥有多项软件著作权,多项发明及实用新型专利。同时多次指导学生参加国家级、省级计算机设计大赛并获奖。

作品目录

  • 版权信息
  • 内容提要
  • 前       言
  • 资源与支持
  • 第1章 HTML5开发基础——进入WebGL世界的第一道坎
  • 1.1  HTML的发展简史
  • 1.2 HTML5简介
  • 1.3 初识HTML5
  • 1.4 初识CSS
  • 1.5 初识JavaScript
  • 1.6 HTML5 Canvas简介
  • 1.7  本章小结
  • 第2章 初识WebGL 2.0
  • 2.1 WebGL 2.0概述
  • 2.2 初识WebGL 2.0应用
  • 2.3 着色器与渲染管线
  • 2.4 本章小结
  • 第3章 着色语言
  • 3.1 着色语言概述
  • 3.2 着色语言基础
  • 3.3 特殊的内建变量
  • 3.4 着色语言的内置函数
  • 3.5 用invariant修饰符避免值变问题
  • 3.6 预处理器
  • 3.7 本章小结
  • 第4章 必知必会的3D开发知识——投影及各种变换
  • 4.1 矩阵数学计算工具脚本Matrix
  • 4.2 摄像机的设置
  • 4.3 两种投影方式
  • 4.4 各种变换
  • 4.5 所有变换的完整流程
  • 4.6 绘制方式
  • 4.7 设置合理的视角
  • 4.8 卷绕和背面剪裁
  • 4.9 本章小结
  • 第5章 光照效果
  • 5.1 曲面物体的构建
  • 5.2 基本光照效果
  • 5.3 定位光与定向光
  • 5.4 点法向量和面法向量
  • 5.5 光照的每顶点计算与每片元计算
  • 5.6 本章小结
  • 第6章 纹理映射
  • 6.1 初识纹理映射
  • 6.2 纹理拉伸
  • 6.3 纹理采样
  • 6.4 Mipmap纹理技术
  • 6.5 多重纹理与过程纹理
  • 6.6 压缩纹理的使用
  • 6.7 本章小结
  • 第7章 3D模型加载
  • 7.1 obj模型文件概述
  • 7.2 加载obj文件
  • 7.3 双面光照
  • 7.4 本章小结
  • 第8章 混合与雾
  • 8.1 混合技术
  • 8.2 地月系云层效果的实现
  • 8.3 雾
  • 8.4 本章小结
  • 第9章 常用的3D开发技巧
  • 9.1 标志板
  • 9.2 灰度图地形
  • 9.3 高真实感地形
  • 9.4 天空盒与天空穹
  • 9.5 简单镜像
  • 9.6 非真实感绘制
  • 9.7 描边效果的实现
  • 9.8 本章小结
  • 第10章 渲染出更加酷炫的3D场景——几种剪裁与测试
  • 10.1 剪裁测试
  • 10.2 模板测试
  • 10.3 任意剪裁平面
  • 10.4 本章小结
  • 第11章 Three.js引擎基础
  • 11.1 Three.js概述
  • 11.2 初识Three.js应用
  • 11.3 Three.js基本组件
  • 11.4 模型加载
  • 11.5 贴图的使用
  • 11.6 本章小结
  • 第12章 Three.js引擎进阶
  • 12.1 粒子系统
  • 12.2 混合与雾
  • 12.3 渲染到纹理
  • 12.4 音频的处理与展示
  • 12.5 杂项
  • 12.6 本章小结
  • 第13章 Babylon.js引擎
  • 13.1 Babylon.js概述
  • 13.2 初识Babylon.js应用
  • 13.3 Babylon.js基本组件
  • 13.4 模型加载
  • 13.5 纹理贴图
  • 13.6 粒子系统
  • 13.7 物理引擎
  • 13.8 渲染到纹理
  • 13.9 本章小结
  • 第14章 Ammo物理引擎
  • 14.1 Ammo物理引擎简介
  • 14.2 Ammo中的常用类
  • 14.3 简单的物理场景
  • 14.4 多种形状刚体的碰撞
  • 14.5 旋转的陀螺
  • 14.6 触发器——消失的木块
  • 14.7 碰撞过滤——物体碰撞下落
  • 14.8 关节
  • 14.9 交通工具类的介绍
  • 14.10 软体
  • 14.11 本章小结
  • 第15章 在线3D模型交互式编辑系统
  • 15.1 背景以及功能概述
  • 15.2 系统的策划及准备工作
  • 15.3 系统架构
  • 15.4 服务器端相关类
  • 15.5 模型编辑页面文件
  • 15.6 管理脚本
  • 15.7 工具脚本
  • 15.8 模型导出脚本
  • 15.9 辅助工具脚本
  • 15.10 系统的优化与改进
  • 15.11 本章小结
展开全部