欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

WebGL开发与应用

书      号:9787113240820

丛  书 名:

作      者:郑华,张云佐

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:28

  • 内容简介

    WebGL是一项新的Web3D图形标准,也是HTML5大家庭中的一员。本书从WebGL和3D图形学的基础概念讲起,循序渐进,用简单的实例直观地讲解了各个知识点,随后又理论结合实际,介绍了在现实开发环境中需要注意的各种问题,在最后一章,把全书所有讲过的知识综合到一起,讲解了一个完整的基于WebGL的MIS系统开发过程,让读者能够基本了解WebGL这一新技术的开发流程,以便读者可以独立开发自己的WebGL应用程序。
    本书适合作为高等院校计算机相关专业WebGL类课程的教材,也适合Web开发人员及对3D开发感兴趣的读者参考阅读。
  • 前言

    2012 年底,在一个MIS 系统开发过程中,编者碰到了一个如何在Web 页面中展示三维模型的问题,在多次的方案讨论过程中,偶然发现了WebGL 这个新名词,当时编者并不清楚它究竟能干什么,也不清楚如何使用它,只是知道它是一个面向Web 的无插件的3D 引擎。之后的两年中,编者不断探索WebGL 的开发问题,并逐步接触了Three.js 引擎、Sim.js 框架等基于WebGL 的开发工具。随着微软Internet Explorer 11.0对WebGL 的支持,WebGL 迎来了新一轮发展的春天,正是在这种形式下,编者萌生了撰写《WebGL 开发与应用》一书的想法,因为在国内,这方面的资料非常稀少,几乎没有可供参考的书目。
    本书共分6 章,分别是:入门篇、基础篇、交互篇、动画篇、应用篇和基于WebGL 的MIS 系统开发。在由浅入深地对WebGL 的各个知识点进行了讲解之后,在最后一章重点讲解了如何将WebGL 与传统的软件开发相结合的问题,在传统的Web3D 方案中,它们都是依赖插件的,而插件由各公司或厂商主导,WebGL 的兴起彻底地解决了这个问题。本书可以在一定程度上推进这一新技术的应用,在虚拟现实、管理信息系统等方面带来全新的用户体验。
    WebGL 是一个全新的领域,其标准由科纳斯(Khronos)组织开发和维护,该组织致力于软件的开源,基于WebGL 的很多二次开发包也都是开源的,这也导致了帮助文档严重不足的现状。在编写本书的过程中,编者不得不通过反复阅读源代码的方式去理解其内部的工作原理,这为本书的编写增加了不少难度。最终成稿时,还参考了很多互联网资料;请教了石家庄铁路职业技术学院的一些数学老师;邀请了一些3D 建模方向的学生,做了大量的试验。没有他们的无偿帮助,将难以完成书稿,在此对他们一并表示感谢。
    本书适用于对3D 感兴趣的Web 开发人员,读者最好具备一些计算机图形学、线性代数和JavaScript 编程方面的基础知识。
    编著者
    2017 年11 月
  • 目录

    第1 章 入门篇 ......................... 1
    1.1 什么是WebGL ....... 2
    1.2 WebGL的运行环境 .............................. 3
    1.3 Three.js引擎 .......... 3
    1.4 Sim.js框架 ............. 4
    1.5 关于Canvas标记 ... 5
    1.6 本书的配套资源 ... 6
    课后练习 ........................ 6
    第2 章 基础篇 ......................... 7
    2.1 Three.js引擎中的基本概念 .................. 7
    2.1.1 三维坐标系 ..............7
    2.1.2 透视摄像机 ..............7
    2.1.3 正交投影摄像机 .......8
    2.1.4 基本3D 元素 ............9
    2.1.5 动画原理 ............... 10
    2.2 基于Three.js引擎的网页 .................... 10
    2.2.1 加载Three.js 引擎 .. 10
    2.2.2 完整的Three.js 网页 ............................... 11
    2.3 基于Sim.js框架的网页 ....................... 12
    2.3.1 加载Sim.js 框架 ..... 12
    2.3.2 完整的Sim.js 网页.. 13
    2.4 综合实例 ............. 14
    2.4.1 地月系模拟动画 ...... 15
    2.4.2 雪花飘飘 ............... 19
    2.5 自定义几何体与UV坐标 ................... 21
    2.5.1 自定义几何体 ......... 21
    2.5.2 UV 坐标 ................. 21
    2.5.3 创建土星环 ............ 22
    2.5.4 合并几何体 ............ 23
    2.6 本地矩阵和世界矩阵 ......................... 24
    2.6.1 本地矩阵和世界矩阵的作用 ..................... 24
    2.6.2 Three.js 中的本地矩阵和世界矩阵 ............ 24
    2.7 深入了解材质 ..... 25
    2.7.1 基本材质 ............... 25
    2.7.2 Lambert 材质 ......... 25
    2.7.3 Phong 材质 ............ 26
    2.7.4 贴图材质 ............... 26
    2.8 深入了解灯光 ..... 27
    2.8.1 环境光 ................... 27
    2.8.2 点光源 ................... 28
    2.8.3 平行光 ................... 28
    2.8.4 聚光灯 ................... 29
    2.8.5 阴影 ...................... 29
    2.9 编程方法指导 ..... 33
    2.9.1 JavaScript 面向对象编程方法 .................. 33
    2.9.2 JavaScript 异步编程方法 ........................ 35
    2.9.3 AJAX 异步网页更新方法 .......................... 37
    2.9.4 JSON 数据交换格式 ............................... 38
    课后练习 ...................... 40
    第3 章 交互篇 ....................... 41
    3.1 目标拾取 ............. 42
    3.1.1 目标拾取的工作原理 ............................... 42
    3.1.2 目标拾取实例 ......... 42
    3.2 目标拖动 ............. 45
    3.2.1 拖动操作的工作原理 ............................... 45
    3.2.2 目标拖动实例 ......... 46
    3.2.3 深入了解Raycaster 类 ............................ 47
    3.3 法线运算 ............. 47
    3.3.1 法线运算的工作原理 ............................... 47
    3.3.2 法线运算实例 ......... 48
    3.4 键盘事件处理 ..... 49
    3.4.1 键盘事件处理的一般方法 ........................ 49
    3.4.2 键盘事件处理实例 .. 49
    3.5 场景控制 ............. 50
    3.5.1 第一人称漫游 ......... 50
    3.5.2 轨迹球漫游 ............ 52
    3.5.3 鼠标锁定漫游 ......... 53
    3.5.4 路径漫游 ............... 54
    3.5.5 其他场景控制类 ..... 56
    3.6 场景音乐 ............. 56
    3.6.1 网页音频 ............... 56
    3.6.2 场景音乐 ............... 57
    3.7 视频纹理 ............. 59
    3.7.1 网页视频 ............... 59
    3.7.2 视频纹理 ............... 60
    3.8 综合案例——虚拟库房 ..................... 62
    3.8.1 需求分析 ............... 62
    3.8.2 系统实现 ............... 62
    课后练习 ...................... 66
    第4 章 动画篇 ....................... 67
    4.1 计算机动画的基本概念 ..................... 67
    4.1.1 帧动画 ................... 67
    4.1.2 时间动画 ............... 68
    4.1.3 插值动画与关键帧 .. 68
    4.1.4 层级动画 ............... 68
    4.1.5 蒙皮动画 ............... 69
    4.1.6 几何变形动画 ......... 69
    4.2 目标变形动画 ..... 69
    4.2.1 目标变形动画原理 .. 69
    4.2.2 目标变形动画实例 .. 70
    4.3 补间动画 ............. 72
    4.3.1 Tween.js 补间动画库 ............................... 72
    4.3.2 利用Tween.js 创建线性补间动画 ............. 72
    4.3.3 利用Tween.js 创建缓动补间动画.............. 73
    4.4 几何变形动画 ..... 74
    4.4.1 几何变形动画原理 .. 74
    4.4.2 海浪效果 ............... 74
    4.5 关键帧动画 ......... 75
    4.5.1 关键帧动画原理 ...... 75
    4.5.2 滚动的地球 ............ 76
    4.6 骨骼动画 ............. 78
    4.6.1 骨骼动画原理 ......... 78
    4.6.2 手指骨骼动画 ......... 78
    4.7 综合案例 ............. 81
    4.7.1 机器人模型动画 ...... 81
    4.7.2 连续关键帧动画 ..... 88
    课后练习 ...................... 91
    第5 章 应用篇 ....................... 92
    5.1 模型导入 ............. 92
    5.1.1 Obj 模型 ................ 93
    5.1.2 Dae 模型 ............... 95
    5.1.3 Json 模型 .............. 95
    5.2 点云模型 ............. 96
    5.2.1 点云数据 ............... 96
    5.2.2 点云汽车模型 ......... 96
    5.3 全景图 ................. 98
    5.3.1 全景图的作用 ......... 98
    5.3.2 全景图制作技巧 ..... 98
    5.4 Canvas文本纹理 ............................... 100
    5.4.1 使用Canvas 2D 纹理 ............................ 100
    5.4.2 Canvas 文本文理 . 101
    5.5 场景巡游 ........... 102
    5.5.1 模型分析 ............. 102
    5.5.2 碰撞检测 ............. 103
    5.5.3 建筑模型场景巡游 104
    5.6 赛车游戏 ........... 108
    5.6.1 场景设计 ............. 108
    5.6.2 主脚本文件 .......... 109
    5.6.3 指南针脚本文件 ... 116
    5.7 基于模型的关键帧动画 ................... 117
    5.7.1 模型动画的关键技术问题 ...................... 118
    5.7.2 赛车模型动画 ....... 118
    5.8 JavaScript加密技术 .......................... 128
    课后练习 .................... 131
    第6 章 基于WebGL 的MIS 系统开发 ................. 132
    6.1 BIM管理信息系统............................ 132
    6.1.1 模型导入与场景初始化 .......................... 134
    6.1.2 子类定义 ............. 136
    6.1.3 数据处理 ............. 139
    6.1.4 系统实现 ............. 141
    6.2 BIM服务器中间件技术.................... 145
    6.2.1 关键问题 ............. 145
    6.2.2 基于Obj 模型的中间件 ......................... 146
    6.3 UBSP系统 ......... 153
    6.3.1 中间件设计 .......... 153
    6.3.2 数据库设计 .......... 154
    6.3.3 用户面板 ............. 155
    6.3.4 UBSP 系统主界面 . 155
    6.3.5 开发环境与关键代码 ............................. 156
    课后练习 .................... 160
    参 考 文 献 ............... 161
  • 作者介绍

    郑华,男,安徽歙县人,1977年出生,石家庄铁路职业技术学院信息工程系教学副主任、副教授,北京邮电大学软件工程硕士,研究方向为计算机网络技术、Web3D与系统集成,主要讲授计算机网络技术、数据库设计、WebGL开发与应用等课程,近3年主持河北省教育厅青年基金课题2项,参与省部级课题3项,发表论文5篇,撰写教材1部。张云佐,男,河北石家庄人,1984年出生,博士毕业于北京理工大学,现任石家庄铁道大学教师,研究方向为图像、视频处理,大数据分析与处理,主要讲授计算机操作系统、数字图像处理、JAVA、汇编语言等课程,近3年主持国家自然科学基金、河北省自然科学基金、河北省教育厅科研基金各一项;参与国家级、省部级课题10余项,发表论文20余篇,参与撰写教材、专著2部。
  • 编辑推荐

  • 书评书荐

  • 附件下载

图书推荐