Computer graphics:programming in OpenGL for visual communication

副标题:无

作   者:(美)Steve Cunningham著;石教英,潘志庚等译

分类号:

ISBN:9787111241027

微信扫一扫,移动浏览光盘

简介

   本书主要介绍计算机图形学原理而不讨论实现这些原理的算法和数学细   节,重点在于讲述   如何采用图形API OpenGL的编程技术来解决实际问题。作者以描述性和面向   过程的方式阐述了   计算机图形学中的重要主题,使得计算机科学及相关专业的学生在学习阶段   的早期便能接触并   理解这些主题;同时使用OpenGL来说明计算机图形学的基本概念,使学生可   以绕过图形学算法   和数学细节,快速生成有意义的可交互且动态的三维图形,创建有效的视觉   交流。    本书注重计算机图形学精髓的理解和图形编程技术的掌握,非常适合作   为高等院校计算机   及相关专业计算机图形学课程的教材,同时也适合作为具有熟练编程经验的   其他专业学生和专   业技术人员学习图形学及图形编程的自学教材。   

目录

出版者的话.

译者序

前言

第0章导论1

0.1 视觉交流与计算机图形学1

0.2 视觉交流的基本概念2

0.2.1 使用合适的信息表示方式2

0.2.2 图像应突出重点2

0.2.3 使用合适的信息展示级别2

0.2.4 采用合适的信息格式3

0.2.5 注意图像显示的准确性3

0.2.6 理解并尊重观众的文化背景3

0.2.7 使交互成为用户熟悉的高效操作4

0.3 三维几何和几何流水线5

0.3.1 场景与视图5

0.3.2 三维模型坐标系5

0.3.3 三维世界坐标系5

0.3.4 三维眼坐标系6

0.3.5 投影6

0.3.6 裁剪7

.0.3.7 选择透视投影或正交投影7

0.3.8 二维眼坐标8

0.3.9 二维屏幕坐标8

0.4 外观属性8

0.4.1 颜色9

0.4.2 纹理9

0.4.3 深度缓存9

0.5 观察过程9

0.6 图形卡10

0.7 一个简单的opengl程序10

0.7.1 opengl程序main()函数结构15

0.7.2 模型空间15

0.7.3 模型变换15

0.7.4 三维世界空间16

0.7.5 视图变换16

0.7.6 三维眼空间16

0.7.7 投影操作16

0.7.8 二维眼空间17

0.7.9 二维屏幕空间17

0.7.10 科学问题编程17

0.7.11 外观属性17

0.7.12 从另一角度分析程序17

0.8 opengl扩展18

0.9 小结19

0.10 本章的opengl术语表19

0.11 思考题20

0.12 练习题21

0.13 实验题21

第1章视图变换和投影22

1.1 简介22

1.2 视图变换的基本模型24

1.3 定义24

1.3.1 建立视图环境25

1.3.2 定义投影25

1.3.3 视域体26

1.3.4 正交投影27

1.3.5 透视投影27

1.3.6 透视投影的计算28

1.3.7 视域体裁剪29

1.3.8 定义窗口和视口30

1.4 管理视图的其他方面32

1.4.1 隐藏面32

1.4.2 双缓存33

1.5 立体视图33

1.6 视图变换与视觉交流34

1.7 在opengl中实现视图变换和投影34

1.7.1 定义窗口和视口35

1.7.2 改变窗口的形状35

1.7.3 设置视图变换的环境36

目 录

xii

1.7.4 定义透视投影37

1.7.5 定义正交投影37

1.7.6 隐藏面的处理37

1.7.7 设置双缓存38

1.8 实现立体视图38

1.9 小结39

1.10 本章的opengl术语表39

1.11 思考题40

1.12 练习题40

1.13 实验题41

第2章建模原理43

2.1 简单几何建模44

2.2 定义44

2.3 例子46

2.3.1 单点和多点46

2.3.2 线段46

2.3.3 线段序列46

2.3.4 三角形47

2.3.5 三角形序列47

2.3.6 四边形47

2.3.7 四边形序列48

2.3.8 通用多边形49

2.3.9 多面体50

2.3.10 走样和反走样50

2.3.11 法线50

2.3.12 裁剪51

2.3.13 建模的数据结构52

2.3.14 曲面的建模53

2.3.15 其他的图形对象源54

2.3.16 建模行为55

2.3.17 建议55

2.4 变换和建模55

2.5 定义56

2.5.1 变换56

2.5.2 复合变换58

2.5.3 使用变换栈59

2.5.4 编译几何体60

2.6 一个例子60

2.7 建议62

2.8 建模视觉交流62

2.9 认识形体的含义62

2.10 维度63

2.11 更高维度65

2.12 图例和标签66

2.13 精确度67

2.14 场景图和建模图67

2.15 场景图的概要68

2.15.1 场景图中的裁剪69

2.15.2 用场景图建模的例子69

2.16 视图变换71

2.17 场景图和深度测试73

2.18 用建模图写代码73

2.18.1 两个场景图的代码实例75

2.18.2 使用标准的对象生成

更加复杂的场景77

2.19 小结77

2.20 思考题77

2.21 练习题78

2.22 实验题79

2.23 大型作业80

第3章在opengl中实现建模81

3.1 指定几何体的opengl模型81

3.1.1 点和多点模型82

3.1.2 直线段82

3.1.3 线段序列83

3.1.4 封闭线段83

3.1.5 三角形83

3.1.6 三角形序列83

3.1.7 四边形84

3.1.8 四边形条带85

3.1.9 普通多边形85

3.1.10 顶点数组86

3.1.11 反走样86

3.1.12 将在很多例子中使用的立方体86

3.1.13 定义裁剪平面87

3.2 opengl工具中的附加对象88

3.2.1 glu二次曲面对象88

3.2.2 glu圆柱体88

3.2.3 glu圆盘88

3.2.4 glu球体89

xiii

3.2.5 glut对象89

3.2.6 例子89

3.3 opengl中的变换90

3.4 图例和标签92

3.5 变换的代码实例93

3.5.1 简单变换93

3.5.2 变换栈94

3.5.3 逆转视点变换95

3.5.4 生成显示列表96

3.6 到视点的距离97

3.7 小结97

3.8 本章的opengl术语表98

3.9 思考题100

3.10 练习题100

3.11 实验题101

3.12 大型作业102

第4章建模的数学基础103

4.1 坐标系103

4.2 四象限和八象限104

4.3 点、直线和直线段104

4.4 直线段、射线、参数化曲线和曲面105

4.5 点到直线的距离105

4.6 向量105

4.7 向量点积和叉积106

4.8 反射向量107

4.9 变换108

4.10 平面和半空间109

4.11 点到平面的距离110

4.12 多边形和凸面110

4.13 多面体111

4.14 极坐标、柱面坐标和球面坐标111

4.15 碰撞检测112

4.16 高维空间114

4.17 小结114

4.18 思考题114

4.19 练习题114

4.20 实验题114

第5章颜色及其混合116

5.1 简介116

5.2 原理117

5.2.1 设置几何物体的颜色117

5.2.2 rgb立方体117

5.2.3 亮度和色弱118

5.2.4 其他颜色模型119

5.2.5 颜色深度120

5.2.6 色谱121

5.2.7 颜色混合与α通道121

5.2.8 使用混合达到透明效果122

5.2.9 索引颜色122

5.3 颜色和视觉交流123

5.3.1 强调色123

5.3.2 背景色123

5.3.3 自然色124

5.3.4 伪彩色和颜色渐变124

5.3.5 创建颜色渐变124

5.3.6 颜色渐变的使用125

5.3.7 比较形状和颜色编码126

5.3.8 颜色的文化背景126

5.4 例子127

5.5 opengl中的颜色128

5.5.1 颜色定义128

5.5.2 使用混合128

5.6 代码实例129

5.6.1 带有全色谱的模型129

5.6.2 hsv圆锥129

5.6.3 hls双圆锥130

5.6.4 带半透明面的对象131

5.6.5 索引颜色131

5.6.6 opengl中的颜色渐变132

5.7 小结132

5.8 本章的opengl术语表132

5.9 思考题132

5.10 练习题133

5.11 实验题134

5.12 大型作业134

第6章光照处理和着色处理135

6.1 光照处理135

6.1.1 环境光、漫反射光和镜面反射光136

6.1.2 表面法向138

6.2 材质139

xiv

6.3 光源属性139

6.3.1 光源颜色140

6.3.2 位置光140

6.3.3 聚光灯140

6.3.4 光线衰减140

6.3.5 方向光140

6.4 放置与移动光源141

6.5 用光照实现特效141

6.6 场景图中的光源141

6.7 着色处理141

6.8 在视觉交流中考虑着色处理142

6.9 定义142

6.10 flat着色处理和平滑着色处理的例子143

6.11 计算每个顶点的法向144

6.11.1 平均多边形法向144

6.11.2 法向的解析计算144

6.12 其他着色处理模型145

6.13 各向异性着色处理146

6.14 全局光照146

6.14.1 辐射度方法147

6.14.2 光子映射147

6.15 局部光照和opengl 148

6.15.1 指定和定义光源148

6.15.2 选择性地使用光源150

6.15.3 定义材质150

6.15.4 使用glu二次曲面物体151

6.15.5 例子:把三原色光源应

用于白色表面151

6.15.6 示例代码151

6.15.7 着色处理的例子152

6.16 建议154

6.17 小结154

6.18 本章的opengl术语表154

6.19 思考题155

6.20 练习题155

6.21 实验题156

6.22 大型作业157

第7章事件和交互式编程158

7.1 定义158

7.2 事件的例子159

7.3 交互的方式和方法160

7.4 对象选择161

7.5 交互和视觉交流161

7.6 事件和场景图162

7.7 建议162

7.8 opengl中的事件163

7.9 回调函数的注册163

7.10 实现细节165

7.11 代码实例167

7.11.1 空闲事件回调函数168

7.11.2 定时器事件回调函数168

7.11.3 键盘回调函数169

7.11.4 菜单回调函数170

7.11.5 鼠标移动的鼠标回调函数171

7.11.6 对象拾取的鼠标回调函数171

7.12 拾取的实现细节173

7.12.1 定义173

7.12.2 拾取操作的实现方法174

7.12.3 拾取矩阵176

7.12.4 使用后颜色缓存做拾取176

7.12.5 一个选择操作的例子177

7.12.6 拾取小结179

7.13 mui工具179

7.13.1 引言179

7.13.2 应用mui的功能180

7.13.3 mui用户界面对象181

7.13.4 一个例子183

7.14 在windows系统中安装mui 185

7.15 建议185

7.16 小结185

7.17 本章的opengl术语表186

7.18 思考题187

7.19 练习题188

7.20 实验题188

7.21 大型作业189

第8章纹理映射190

8.1 简介190

8.2 定义191

8.2.1 1d纹理图191

8.2.2 2d纹理图191

xv

8.2.3 3d纹理图192

8.2.4 纹理坐标与空间坐标的对应关系192

8.2.5 对象颜色与纹理图颜色的关系192

8.2.6 纹理图的其他含义192

8.2.7 场景图中的纹理映射193

8.3 创建纹理图193

8.3.1 从图像创建纹理图193

8.3.2 人工生成纹理图194

8.3.3 噪声函数生成纹理图194

8.4 纹理图中的插值操作195

8.5 纹理映射和布告板技术196

8.6 纹理图中包含多个纹理196

8.7 纹理反走样196

8.8 mip映射197

8.9 多纹理197

8.10 opengl中的纹理映射198

8.10.1 顶点与纹理点相关198

8.10.2 从屏幕获取纹理199

8.10.3 纹理环境199

8.10.4 纹理参数200

8.10.5 获取及定义纹理图..201

8.10.6 纹理坐标控制202

8.10.7 纹理插值202

8.10.8 纹理映射和glu四边形203

8.10.9 多纹理203

8.11 例子203

8.11.1 使用chromadepth过程204

8.11.2 使用2d纹理图在表面中加入信息204

8.11.3 环境纹理图204

8.12 建议205

8.13 代码实例205

8.13.1 1d颜色渐变205

8.13.2 2d纹理例子206

8.13.3 环境纹理图207

8.13.4 使用多纹理207

8.14 小结208

8.15 本章的opengl术语表208

8.16 思考题210

8.17 练习题210

8.18 实验题211

8.19 大型作业212

第9章图形在科学计算领域中的应用213

9.1 简介213

9.2 例子215

9.3 扩散215

9.3.1 长条材料中的温度215

9.3.2 疾病的传播217

9.4 函数作图和应用218

9.5 参数曲线与曲面219

9.6 极限处理结果的图形对象222

9.7 标量场223

9.8 物体和行为仿真224

9.8.1 气体定律和扩散原理225

9.8.2 分子显示226

9.8.3 科学仪器227

9.8.4 蒙特卡罗建模过程227

9.9 四维作图228

9.9.1 体数据228

9.9.2 向量场229

9.10 高维作图230

9.11 数据驱动图形231

9.12 代码实例232

9.12.1 扩散232

9.12.2 函数作图233

9.12.3 参数曲线与曲面234

9.12.4 极限处理235

9.12.5 标量场235

9.12.6 物体及行为的表示235

9.12.7 分子显示236

9.12.8 蒙特卡罗建模237

9.12.9 四维作图237

9.12.10 高维作图238

9.13 小结239

9.14 思考题239

9.15 练习题239

9.16 实验题240

9.17 大型作业240

第10章绘制与绘制流水线242

10.1 引言242

10.2 流水线242

xvi

10.3 光栅化处理244

10.4 opengl的绘制流水线248

10.4.1 绘制流水线中的纹理映射249

10.4.2 逐片段操作249

10.4.3 opengl与可编程着色器250

10.4.4 图形卡绘制流水线实现的实例251

10.5 图形卡的部分三维视图变换操作251

10.6 小结252

10.7 本章的opengl术语表252

10.8 思考题252

10.9 练习题253

10.10 实验题253

第11章动力学和动画254

11.1 一个例子255

11.2 动画的分类256

11.2.1 过程动画256

11.2.2 场景图中的动画256

11.2.3 插值动画257

11.2.4 基于帧的动画258

11.2.5 一个插值例子259

11.3 动画中的一些问题260

11.3.1 帧速率260

11.3.2 时间走样260

11.3.3 动画制作261

11.4 动画和视觉交流261

11.5 在静止帧中表示运动信息262

11.5.1 运动轨迹法262

11.5.2 运动模糊法263

11.6 一些有趣的观看动画的设备263

11.7 建议265

11.8 opengl的动画例子265

11.8.1 在模型中移动物体265

11.8.2 控制动画的时间266

11.8.3 移动模型的部件266

11.8.4 移动视点或模型的观察标架267

11.8.5 场景的纹理插值268

11.8.6 改变模型的特征268

11.8.7 生成轨迹269

11.8.8 使用累积缓存270

11.8.9 创建数字视频271

11.9 用opengl制作动画时应

注意的一些要点272

11.10 建议272

11.11 本章的opengl术语表272

11.12 思考题273

11.13 练习题273

11.14 实验题273

11.15 大型作业274

第12章高性能图形技术276

12.1 定义276

12.2 技术277

12.3 建模技术277

12.3.1 减少可见多边形数量277

12.3.2 巧妙运用纹理278

12.3.3 减少光照计算278

12.3.4 细节层次278

12.3.5 雾化280

12.3.6 开始距离和结束距离280

12.3.7 雾化模式280

12.3.8 雾密度281

12.3.9 雾色281

12.4 绘制技术282

12.4.1 不使用硬件282

12.4.2 使用硬件282

12.4.3 多边形剔除282

12.4.4 避免深度比较283

12.4.5 从前到后绘制284

12.4.6 二元空间划分284

12.4.7 系统加速技术285

12.5 碰撞检测286

12.6 小结287

12.7 本章的opengl术语表287

12.8 思考题288

12.9 练习题288

12.10 实验题289

12.11 大型作业289

第13章插值与样条建模290

13.1 引言290

13.1.1 插值290

13.1.2 另一种bézier样条的基本概念293

13.1.3 另一种bézier样条计算方法293

13.1.4 扩展插值到更多控制点293

13.2 样条曲面295

13.2.1 扩展曲面片为曲面295

13.2.2 生成曲面片法向296

13.2.3 生成曲面片纹理坐标296

13.2.4 另一种曲面片计算方法296

13.3 其他类型的插值函数297

13.4 opengl中的插值297

13.4.1 使用求值器自动生成法向和纹理298

13.4.2 其他技巧299

13.5 定义299

13.6 示例300

13.6.1 样条曲线300

13.6.2 样条曲面301

13.7 小结303

13.8 本章的opengl术语表303

13.9 思考题304

13.10 练习题304

13.11 实验题305

13.12 大型作业305

第14章非多边形图形技术306

14.1 定义306

14.2 光线投射306

14.3 光线跟踪308

14.4 体绘制309

14.5 迭代函数系统310

14.5.1 压缩映射310

14.5.2 生成函数311

14.6 芒德布罗集和茹利亚集312

14.7 opengl支持的逐像素操作313

14.8 小结314

14.9 思考题314

14.10 练习题314

14.11 实验题315

14.12 大型作业315

第15章硬拷贝316

15.1 定义316

15.2 选择输出媒介316

15.2.1 数字图像316

15.2.2 印刷317

15.2.3 胶片318

15.2.4 三维图像技术319

15.2.5 三维对象成型技术320

15.2.6 stl文件321

15.2.7 视频322

15.2.8 数字视频323

15.3 支持硬拷贝的opengl技术323

15.3.1 捕获输出窗口内容到文件323

15.3.2 用opengl生成立体图324

15.4 小结325

15.5 本章的opengl术语表325

15.6 思考题325

15.7 实验题325

参考文献和资源327

附录330

索引...335


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Computer graphics:programming in OpenGL for visual communication
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon