图书介绍
计算机图形学 用OpenGL实现 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![计算机图形学 用OpenGL实现 第2版](https://www.shukui.net/cover/40/34798746.jpg)
- F. S. Hill著;罗霄,商青华,袁春阳等译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302117098
- 出版时间:2006
- 标注页数:919页
- 文件大小:76MB
- 文件页数:948页
- 主题词:计算机图形学;图形软件,OpenGL
PDF下载
下载说明
计算机图形学 用OpenGL实现 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 计算机图形学导言1
1.1 什么是计算机图形1
目录1
1.2.1 艺术、娱乐以及出版3
1.2 计算机生成的图片应用在哪些地方3
1.2.2 计算机图形和图像处理4
1.2.3 监视过程5
1.2.4 显示模拟6
1.2.6 科学分析和可视化7
1.2.5 计算机辅助设计7
1.3.1 折线10
1.3 在计算机图形中创建的图片元素10
1.3.2 文本12
1.3.3 实心区域13
1.3.4 光栅图像14
1.3.5 灰度阴影的呈现以及光栅图像中的颜色18
1.4.1 绘线型显示器21
1.4 图像显示设备21
1.4.2 光栅显示器22
1.4.3 索引颜色和查找表格26
1.4.4 其他的光栅显示设备29
1.4.5 硬拷贝光栅设备30
1.5.1 输入图形原语的类型31
1.5 图形输入原语和设备31
1.5.2 物理输入设备的类型32
1.7 进一步阅读34
1.6 小结34
2.1 着手创建图片36
第2章 绘制图片入门36
2.1.2 基于窗口的编程38
2.1.1 设备无关编程和OpenGL38
2.1.3 打开一个绘图窗口40
2.2 绘制基本图形原语41
绘制点丛44
2.3 绘制线条画50
2.3.1 绘制折线和多边形51
2.3.2 使用moveto()和lineto()绘制线条55
2.3.3 绘制校准长方形56
2.3.4 校准长方形的高宽比57
2.3.5 填充多边形59
2.3.6 OpenGL中的其他图形原语60
2.4.1 鼠标交互作用61
2.4 使用鼠标和键盘的简单交互作用61
2.4.2 键盘交互作用64
2.5 小结65
案例分析2.1 伪随机点的集合66
2.6 案例分析66
案例分析2.2 迭代函数系统导言68
案例分析2.3 资金分割率和其他的宝石71
案例分析2.4 建立并使用折线文件73
案例分析2.5 线条和多边形的点画法74
案例分析2.6 折线编辑器75
案例分析2.7 建立并运行迷阵76
2.7 进一步阅读78
第3章 更多绘图工具79
3.2 世界窗口和视口80
3.1 简介80
3.2.1 从窗口到视口的映射82
3.2.2 自动设定窗口和视口91
3.3.1 裁剪线段94
3.3 裁剪线94
3.3.2 Cohen-Sutherland裁剪算法95
3.4 开发Canvas类98
3.4.1 一些有用的支持类99
3.4.2 类Canvas的声明100
3.4.3 类Canvas的实现方法101
3.5 相对绘图例程103
3.5.1 开发moveRel()和lineRel()104
3.5.2 龟纹绘图历程105
3.6.1 规则多边形109
3.6 基于规则多边形的图形109
3.6.2 n-Gon的变分(Variation)111
3.7.2 绘制圆弧115
3.7.1 绘制圆115
3.7 绘制圆和圆弧115
3.8.1 曲线的参数形式119
3.8 对曲线使用参数形式119
3.8.2 绘制以参数表示的曲线122
3.8.3 超椭圆(Superellipses)124
3.8.4 极坐标形状125
3.8.5 3D曲线127
3.9 小结128
案例分析3.1 学习数理逻辑图形和混沌模拟129
3.10 案例分析129
案例分析3.2 在C或者C++中实现Cohen-Suther-land裁剪器131
案例分析3.3 在Turbo C++中实现Canvas133
案例分析3.4 绘制圆弧135
案例分析3.5 一些用于物理和工程中的图形136
案例分析3.6 平铺图案138
案例分析3.7 主旋律的有趣改变139
案例分析3.8 圆围绕着圆滚动141
案例分析3.9 超椭圆142
3.11 进一步阅读143
第4章 图形向量工具144
4.1 简介145
4.2 向量147
4.2.1 向量操作148
4.2.2 向量线性组合149
4.2.3 向量的大小;单位向量151
4.3 点积152
4.3.1 点积的性质153
4.3.3 b·c的符号和正交性154
4.3.2 两个向量的夹角154
4.3.4 2D“正交”向量156
4.3.5 正交投影和点到线的距离158
4.3.6 投影的应用:反射160
4.4 两个向量的叉积161
4.4.1 叉积的几何解释162
4.4.2 求平面的法向量163
4.5 主要几何对象的表示164
4.5.1 坐标系和坐标框架165
4.5.2 点的仿射组合168
4.5.3 两个点的线性插值170
4.5.4 艺术和动画的“插值”171
4.5.5 概述:二次插值、立方插值和贝济埃曲线173
4.5.6 表示线和平面174
4.6 求两条线段的交点182
直线相交的应用:过三点的圆184
4.7 直线和平面的交点;裁剪186
4.8 多边形相交问题188
4.8.1 处理凸多边形和多面体189
4.8.2 射线与凸多边形的交点和裁剪问题190
4.8.3 Cyrus-Beck裁剪算法194
4.8.4 任意多边形的裁剪196
4.9 小结198
4.8.5 更高级的裁剪问题198
案例分析4.1 插值动画199
4.10 案例分析199
案例分析4.2 大量的圆200
案例分析4.3 点Q是否在凸多边形P内部201
案例分析4.4 密室反射(2D射线跟踪)202
案例分析4.6 用凸多边形裁剪多边形:Sutherland-Hodgman裁剪203
案例分析4.5 Cyrus-Beck裁剪203
案例分析4.7 用多边形裁剪多边形:Weiler-Atherton裁剪206
案例分析4.8 多边形的布尔操作208
4.11 进一步阅读210
第5章 对象的变换211
5.2 变换导论212
5.1 简介212
5.2.1 变换点和对象215
5.2.2 仿射变换217
5.2.3 初等2D仿射变换的几何效果218
5.2.4 仿射变换的逆转223
5.2.5 组合仿射变换224
5.2.6 组合2D变换的例子226
5.2.7 仿射变换的一些有用特征230
5.3 3D仿射变换235
5.3.1 初等3D变换236
5.3.3 组合旋转240
5.3.2 组合3D仿射变换240
5.3.4 3D仿射变换特征小结245
5.4 改变坐标系246
5.5 在程序中使用仿射变换249
保存CT以备用256
5.6 使用OpenGL绘制3D场景260
5.6.1 观察过程和图形流水线综述261
5.6.2 一些OpenGL建模和视角工具264
5.6.3 用OpenGL绘制基本形状267
5.6.4 从文件中读取场景275
5.7 小结279
案例分析5.3 分解2D仿射变换280
案例分析5.2 使用多个旋转绘制图5.39中的星星280
5.8 案例分析280
案例分析5.1 用Canvas中的CT进行自行变换280
案例分析5.4 通用3D错切284
案例分析5.5 绕某条轴旋转:构造方法286
案例分析5.6 分解3D仿射变换287
5.9 进一步阅读289
案例分析5.7 用SDL绘制3D场景289
6.1 简介290
第6章 使用多边形网格为各种形状建模290
6.2 使用多边形网格实体建模简介291
6.2.1 定义多边形网格292
6.2.2 计算法向量294
6.2.3 网格的性质296
6.2.5 在程序中使用网格298
6.2.4 为非实体物体建立网格模型298
6.3 多面体301
6.3.1 棱柱和对角柱303
6.3.2 柏拉图立体304
6.3.3 其余常见的多面体309
6.4.1 生成棱柱312
6.4 推挤型形状312
6.4.2 推挤棱柱数组:“堆砌工作”313
6.4.3 有“扭曲”的推挤315
6.4.4 建立分段推挤形状:管状物体和蛇形物体316
6.4.5 “离散地”延伸旋转面321
6.5.1 表面的表示方法323
6.5 平滑物体的网格近似323
6.5.2 表面的法向量325
6.5.3 仿射变换的作用326
6.5.4 三种“标准”形状:球面、圆柱面和圆锥面327
6.5.5 为曲面建立多边形网格331
6.5.6 直纹面333
6.5.7 旋转面338
6.5.8 二次曲面340
6.5.9 超二次曲面344
6.5.11 基于双变量显式函数的表面346
6.5.10 基于三维曲线的管状物体346
6.6 小结347
案例分析6.1 存储在文件中的网格348
6.7 案例分析348
案例分析6.2 Newell方法的推导349
案例分析6.3 棱柱351
案例分析6.4 棱柱组和推挤四边形带352
案例分析6.5 基于参数曲线的管状物体和蛇形物体353
案例分析6.8 拱形屋顶354
案例分析6.7 关于边列表和线框模型354
案例分析6.6 建立离散旋转面354
案例分析6.11 二次曲面的代数表达式355
案例分析6.10 关于阿基米德立体355
案例分析6.9 关于柏拉图立体355
案例分析6.13 绘制平滑参数表面357
案例分析6.12 超二次曲面357
案例分析6.14 锥化、扭曲、弯曲和挤压358
6.8 进一步阅读359
7.1 简介360
第7章 三维视图360
7.2 再次研究照相机361
7.2.2 照相机的定位和定向362
7.2.1 设置视角范围362
7.3 在程序中建立照相机368
移动照相机370
7.4 三维物体的透视投影373
7.4.1 点的透视投影374
7.4.2 直线的透视投影377
7.4.3 把透视法结合到图形管道中380
7.4.4 对视角范围进行面裁剪387
7.5 生成立体视图393
7.6 投影的分类395
7.6.1 一点透视,两点透视和三点透视396
7.6.2 平行投影400
7.7 小结406
案例分析7.1 在场景中移动照相机407
7.8 案例分析407
案例分析7.5 去掉背面以提高效率408
案例分析7.4 自己产生视图(假定没有OpenGL可以使用)408
案例分析7.2 立体视图408
案例分析7.3 生成平行投影408
7.9 进一步阅读410
8.1 简介411
第8章 渲染表面获得视觉真实感411
8.2 明暗处理模型介绍415
8.2.2 计算漫反射分量416
8.2.1 计算反射光的几何要素416
8.2.3 镜面反射418
8.2.4 环境光的作用421
8.2.5 光分量的结合422
8.2.6 添加颜色423
8.2.7 明暗处理和图形管道425
8.2.8 在OpenGL中使用光源426
8.2.9 在OpenGL中使用材质属性431
8.3 平面明暗处理方式和平滑明暗处理方式432
8.2.10 对SDL指定的场景进行明暗处理432
8.3.1 平面明暗处理433
8.3.2 平滑明暗处理434
深度缓冲区方法438
8.4 去除隐藏面438
8.5 给面添加纹理441
8.5.1 把纹理映射到平表面上444
8.5.2 渲染纹理446
8.5.3 纹理改变了什么453
8.5.4 使用OpenGL获得的纹理示例455
8.5.5 向曲面上环绕纹理460
8.5.6 反射映射464
8.6 为物体添加阴影467
8.6.1 作为纹理的阴影468
8.6.2 利用阴影缓冲区生成阴影469
8.7 小结471
案例分析8.2 自己实现图形管道472
案例分析8.1 使用OpenGL生成有阴影的物体472
8.8 案例分析472
案例分析8.5 应用可编程3D纹理473
案例分析8.4 渲染纹理473
案例分析8.3 添加多边形填充和深度缓冲区去除隐藏面473
8.9 进一步阅读474
案例分析8.7 扩展SDL使其包括纹理生成474
案例分析8.6 绘制阴影474
第9章 通向无限之路475
9.2 分形与自相似性476
9.1 简介476
9.2.1 曲线的连续细化477
9.2.2 绘制Koch曲线和Koch雪花478
9.2.3 分形维数480
9.3 字符串产生式和PEANO曲线481
9.3.1 在程序中递归生成字符串并绘图483
9.3.2 添加分支486
9.4 拼接平面489
9.4.1 单面拼接490
9.4.2 双面拼接492
9.4.4 “爬虫”494
9.4.3 绘制拼接494
9.5.1 拷贝器试验497
9.5 通过迭代函数系统生成图像497
9.5.2 拷贝过程的一些基本理论499
9.5.3 绘制第k次迭代结果500
9.5.4 混沌游戏501
9.5.5 计算IFS;分形图像压缩504
9.6 MANDELBROT集507
9.6.1 Mandelbrot集和迭代函数系统508
9.6.2 定义Mandelbrot集511
9.6.3 计算点c是否在Mandelbrot集内513
9.6.4 绘制Mandelbrot集514
9.6.5 Mandelbrot集的几点性质515
9.7.2 绘制充满Julia集516
9.7.1 充满Julia集Kc516
9.7 JULIA集516
9.7.3 固定点和吸引盆的几点性质517
9.7.4 Julia集Jc519
9.8 随机分形521
9.8.1 线段的分形化522
9.8.2 控制分形曲线的频谱密度523
9.9 小结525
案例分析9.1 绘制字符串产生式526
9.10 案例分析526
案例分析9.2 绘制雪花和爬虫527
案例分析9.4 绘制Mandelbrot集中的轨道529
案例分析9.3 混沌游戏529
案例分析9.7 非周期性拼接;Penrose拼板530
案例分析9.6 生成Julia集的图像530
案例分析9.5 生成Mandelbrot集的图像530
案例分析9.8 分形化曲线532
9.11 进一步阅读533
案例分析9.9 为分形山建模533
10.1 简介534
第10章 光栅显示工具534
10.2.1 对像素映射的操作536
10.2 处理像素映射536
10.2.2 像素映射的有用数据类型537
10.2.3 图像的缩放和旋转543
10.3 合并像素映射546
10.3.1 读-修改-写循环547
10.3.2 Alpha通道和图像融合548
10.3.3 像素的逻辑合并552
10.3.4 BitBLT操作556
10.4 自己实现直线绘制:Bresenham算法557
Bresenham直线绘制算法558
10.5 定义和填充像素区域563
10.5.2 像素定义的区域564
10.5.1 定义区域范围564
10.5.3 一种递归洪水填充算法565
10.5.4 用图案填充区域566
10.5.5 利用一致性:基于像素串的区域填充568
10.6 处理符号定义的区域569
10.6.1 矩形定义的区域570
10.6.2 路径定义的区域571
10.7 填充多边形定义的区域573
10.7.1 边缘上的哪些像素属于多边形574
10.7.2 改进算法性能576
10.8 失真;反失真技术580
10.8.1 反失真技术581
10.8.2 纹理的反失真586
10.8.3 使用OpenGL反失真588
10.9 生成更多的明暗效果和色彩590
10.9.1 顺序抖动591
10.9.2 误差扩散595
10.10 小结597
案例分析10.3 基于像素串的区域填充598
案例分析10.2 用OpenGL融合两幅图像598
10.11 案例分析598
案例分析10.1 读取和显示BMP图像文件598
案例分析10.6 填充“水平凸”多边形599
案例分析10.5 shape的链码599
案例分析10.4 处理shape数据结构599
10.12 进一步阅读600
案例分析10.8 误差扩散600
案例分析10.7 一般多边形填充600
第11章 曲线与曲面设计601
11.1.1 轨迹参数曲线602
11.1 简介602
11.1.2 运动的平滑度603
11.2 用多项式表示曲线606
11.3 关于交互式曲线设计611
de Casteljau算法613
11.4 用贝济埃曲线进行曲线设计613
11.5 贝济埃曲线的性质618
11.6.1 局部控制问题623
11.6 寻找更好的混合函数623
11.6.2 混合函数集的期望性质表624
11.6.3 分段多项式曲线和样条626
11.6.4 根据g(t)建立一组混合函数627
11.6.5 样条曲线和基函数630
11.7 B样条基函数631
11.7.1 B样条函数定义632
11.7.2 在结点向量中使用多重结点636
11.7.3 开放B样条曲线:标准结点向量637
11.8 B样条曲线设计的有用性质640
使用多重控制点641
11.9 有理样条和NURBS曲线642
11.10 插值简述646
11.10.1 用分段三次多项式插值647
11.10.2 Hermite插值648
11.10.3 自然三次样条651
11.10.4 三次插值中计算斜率653
11.10.5 交互指定切向量656
11.11.2 基于B样条的旋转面657
11.11.1 基于B样条的直纹面657
11.11 曲面建模657
11.11.3 贝济埃表面碎片659
11.11.4 贝济埃碎片的拼接660
11.11.5 B样条碎片662
11.11.6 NURBS曲面663
11.12 小结664
案例分析11.1 几种有趣的参数曲线666
11.13 案例分析666
案例分析11.2 “椭圆台球桌”667
案例分析11.5 建立样条曲线编辑器669
案例分析11.4 一种二次样条曲线生成法669
案例分析11.3 贝济埃曲线669
案例分析11.6 用B样条插值控制点670
案例分析11.8 古老的茶壶671
案例分析11.7 用三次多项式插值671
案例分析11.10 绘制NURBS碎片673
案例分析11.9 投影变换不变性673
11.14 进一步阅读675
12.1 简介676
第12章 色彩理论676
12.2.1 主导波长679
12.2 描述颜色679
12.2.2 色匹配680
12.3 国际照明协会标准682
12.3.1 构造CIE表684
12.3.2 使用CIE色度表685
12.3.3 色域686
12.4.1 RGB和CMY颜色空间687
12.4 颜色空间687
12.4.2 加色和减色系统688
12.4.3 HLS颜色模型689
12.5 颜色量化692
12.5.1 均衡量化693
12.5.3 中线切割算法695
12.5.2 流行算法695
12.5.4 八叉树量化696
12.6 小结698
案例分析12.6 中线切割颜色量化699
案例分析12.5 流行颜色量化699
12.7 案例分析699
案例分析12.1 画CIE图699
案例分析12.2 画RGB空间699
案例分析12.3 HSV到RGB的转变699
案例分析12.4 均匀颜色量化699
案例分析12.7 八叉树颜色量化700
12.8 进一步阅读701
第13章 隐面的消除702
13.1 简介703
13.1.1 对象精度与图像精度方法的比较704
13.1.2 多边形网格的数据描述705
13.2 再次研究深度缓存算法707
13.3 列表优先HSR算法708
13.3.1 粗心画家算法709
13.3.2 使用二叉空间分割(BSP)树的HSR710
13.3.3 深度排序算法714
13.4 扫描线HSR方法716
13.5.1 象限细分719
13.5 区域的细分方法719
13.5.2 简单区域的其他定义722
13.6 关于隐线消除法724
edgeTest()中的几何测试726
13.7 曲面的HSR方法728
13.8 小结730
案例分析13.1 画家算法测试731
13.9 案例分析731
案例分析13.3 使用BSP树消除隐面732
案例分析13.2 测试和分割732
案例分析13.4 使用深度排序法解决HSR问题733
案例分析13.7 HLR的边堆栈算法734
案例分析13.6 使用WARNOCK算法绘制734
案例分析13.5 采用扫描线HSR方法734
13.10 进一步阅读735
第14章 光线追踪法的介绍736
14.1 简介737
14.2 建立光线跟踪法的几何学738
14.3 光线跟踪法过程概述740
14.4 光线与对象的交点741
14.4.2 光线与通用球体相交743
14.4.1 光线与通用平面的相交743
14.4.3 光线与变换后的对象相交744
14.5 编制光线跟踪器的应用程序746
14.5.1 计算光线—球体相交的例程752
14.5.2 用于发光球体场景的完整的光线跟踪器754
14.6.1 与正方形相交755
14.6 光线与其他几种基本形状的相交755
14.6.2 与锥形柱体相交756
14.6.3 与立方体(或任何凸多面体)相交759
14.6.4 考虑更多的基本形状766
14.7 绘制场景的明暗图767
14.7.1 确定命中点处的法向量768
14.7.2 根据对象的表面材料为其着色768
14.7.3 基于物理原理的明暗处理模型:Cook-Torrance明暗处理770
14.8 加入表面纹理776
14.8.1 实体纹理777
14.8.2 在表面上粘贴图像786
14.8.3 反失真光线追踪788
14.9 范围的使用789
14.9.1 框形范围和球形范围790
14.9.2 投影范围的使用795
14.10 加阴影以增加真实感798
14.11 反射与透明801
14.11.1 光的折射803
14.11.2 处理shade()中的折射问题807
14.12 复合对象:关于对象的布尔运算810
14.12.1 对CSG对象的光线追踪811
14.12.2 布尔对象的数据结构813
14.12.3 光线与布尔对象相交816
14.12.4 构造和使用CSG对象的范围820
14.13 小结822
14.14 案例分析823
案例分析14.1 放射型光线跟踪器823
案例分析14.4 使用范围加速光线跟踪过程824
案例分析14.3 在光线跟踪器中实现阴影处理824
案例分析14.5 对3D纹理的光线跟踪824
案例分析14.2 一种新型的光线跟踪器824
案例分析14.9 反射光和折射光825
案例分析14.8 一个用于研究折射效应的2D光线跟踪器825
案例分析14.10 对对象的布尔组合进行光线跟踪825
案例分析14.7 对其他基本形状的光线跟踪825
案例分析14.6 反失真825
14.15 进一步阅读826
附录1 图形工具:获得OpenGL827
A1.1 OpenGL的获取和安装827
附录2 计算机图形学的数学研究829
A2.1 一些关于矩阵及其运算的主要定义829
A2.1.1 矩阵的运算830
A2.1.2 两个矩阵相乘831
A2.1.3 矩阵的分块833
A2.1.4 矩阵的行列式834
A2.1.5 矩阵的逆矩阵835
A2.2.1 向量的正交;正交点积837
A2.2.2 标量三重积837
A2.2 向量及其运算的一些性质837
A2.2.3 三重向量积以及4个向量的积839
A2.3 复数的运算839
A2.4 球坐标和方向余弦842
附录3 一些有用的类以及实用例程845
附录4 PostScript?简介877
A4.1 关于PostScript语言878
A4.1.1 准备事项878
A4.1.2 PostScript是“基于堆栈的”879
A4.1.3 一些有关堆栈的操作符:pop、dup、exch和clear880
A4.1.4 更高级的堆栈操作符880
A4.1.5 一些算术操作符881
A4.2 PostScript中的图形操作符884
A4.2.1 坐标系及其变换884
A4.2.2 路径构造动词885
A4.2.3 圆弧886
A4.2.4 用作绘图动词887
A4.2.5 坐标变换888
A4.2.6 图形状态操作符892
A4.3 在PostScript中绘制文本893
A4.4 定义新的变量和过程894
A4.4.1 定义变量894
A4.4.2 定义过程895
A4.4.3 使用repeat实现一种简单的迭代形式899
A4.5 决策和迭代901
A4.5.1 把布尔值作为参数的动词901
A4.5.2 判断902
A4.5.3 迭代904
A4.6 打印值908
A4.7 绘制灰度图909
附录5 SDL简介912
A5.1 SDL文法913
A5.2 SDL中的宏917
A5.3 扩展SDL917