书籍详情

OpenGL图形程序设计指南

OpenGL图形程序设计指南

作者:尚游,陈岩涛编著

出版社:中国水利水电出版社

出版时间:2001-10-01

ISBN:9787508408392

定价:¥48.00

购买这本书可以去
内容简介
  本书系统介绍了OpenGL图形程序设计方法。作者从基本的计算机图形学原理开始,由浅入深,详细阐述了OpenGL高级图形程序设计的方方面面。本书贯穿了大量的编程实例,兼顾了PC机和工作站用户,为读者提供了渲染平台与建模平台的程序接口,并介绍了目前广泛应用的三维分形地形图的生成方法。因此,本书具有很强的实用性。本书资料翔实全面,适用于高性能三维游戏开发、动画广告制作、可视化系统仿真、虚拟现实等领域,是开发三维图形软件的必备资料。本书还可作为大专院校及高科技公司的培训教材,更是科技人员学习和掌握OpenGL图形编程技术不可多得的参考书。
作者简介
暂缺《OpenGL图形程序设计指南》作者简介
目录
前言                  
 第1章  OpenGL入门 1                  
 1.1  OpenGL概览 1                  
 1.2  简单的OpenGL程序举例 3                  
 1.3  基本OpenGL操作 5                  
 1.4  OpenGL的命令语法 6                  
 1.5  作为状态机的OpenGL 7                  
 1.6  OpenGL相关函数库 8                  
 1.6.1  OpenGL相关函数库简介 8                  
 1.6.2  OpenGL辅助库(GLAUX) 9                  
 1.7  动画 11                  
 第2章  Windows 95及Windows NT环境下开发OpenGL应用程序的基本过程 17                  
 2.1  开发环境 17                  
 2.1.1  系统硬件配置要求 17                  
 2.1.2  开发OpenGL应用程序的软件要求 17                  
 2.2  OpenGL应用程序开发基本过程 18                  
 2.2.1  源代码的编写 18                  
 2.2.2  Win32控制台风格应用程序的开发 18                  
 2.2.3  Win32 MFC风格应用程序的开发 22                  
 第3章  实体建模基础 24                  
 3.1  一个绘图补救工具包 24                  
 3.1.1  清除窗口 25                  
 3.1.2  指定颜色 27                  
 3.1.3  完成绘图 28                  
 3.1.4  隐藏面的消除 29                  
 3.2  点. 线和多边形的描述 30                  
 3.2.1  点. 线和多边形的定义 30                  
 3.2.2  定义顶点 33                  
 3.2.3  OpenGL的几何绘图图元 34                  
 3.2.4  使用glBegin()和glEnd()的限制 37                  
 3.3  显示点. 线和多边形 38                  
 3.3.1  关于点的细节 38                  
 3.3.2  关于线的细节 39                  
 3.3.3  关于多边形的细节 43                  
 3.4  法线向量 49                  
 3.5  创建表面的多边形模型需注意的问题 51                  
 第4章  视图 59                  
 4.1  概述:照相机类比法 60                  
 4.1.1  照相机类比法及其在计算机中的实现 60                  
 4.1.2  一个简单的例子:绘制立方体 62                  
 4.1.3  多种用途的变换函数 66                  
 4.2  视图变换和模型变换 67                  
 4.2.1  关于变换的说明 68                  
 4.2.2  模型变换 70                  
 4.2.3  视图变换 74                  
 4.3  投影变换 78                  
 4.3.1  透视投影 78                  
 4.3.2  正交投影 80                  
 4.3.3  视图体的裁剪 82                  
 4.4  视区变换 82                  
 4.4.1  定义视区 82                  
 4.4.2  变换后的Z坐标 84                  
 4.5  变换的诊断 84                  
 4.6  矩阵堆栈的操作 86                  
 4.6.1  模型视图矩阵堆栈 88                  
 4.6.2  投影矩阵堆栈 88                  
 4.7  附加裁剪平面 89                  
 4.8  组合变换举例 92                  
 4.8.1  建立一个太阳系模型 92                  
 4.8.2  建立一个有关节的机器人手臂模型 95                  
 第5章  显示列表 100                  
 5.1  一个使用显示列表的范例 100                  
 5.2  显示列表设计准则 102                  
 5.3  显示列表的创建和执行 104                  
 5.3.1  显示列表的存储内容 106                  
 5.3.2  执行显示列表 107                  
 5.3.3  显示列表的层次结构 109                  
 5.4  显示列表及其索引的管理 110                  
 5.5  执行多个显示列表 111                  
 5.6  封装模式的改变 117                  
 第6章  颜色 119                  
 6.1  颜色的感知 119                  
 6.2  计算机的颜色 120                  
 6.3  RGBA模式与颜色索引模式 122                  
 6.3.1  RGBA模式与颜色索引模式的对比 122                  
 6.3.2  RGBA显示模式 123                  
 6.3.3  抖动操作 123                  
 6.3.4  颜色索引显示模式 125                  
 6.3.5  在RGBA模式与颜色索引模式之间进行选择 126                  
 6.4  指定颜色和阴影模型 126                  
 6.4.1  在RGBA模式下指定颜色 127                  
 6.4.2  在指定颜色索引模式下指定颜色 128                  
 6.4.3  指定阴影模型 128                  
 第7章  光照 132                  
 7.1  真实世界与OpenGL光照 133                  
 7.1.1  发射光, 环境光, 散射光和镜面反射光 133                  
 7.1.2  材料颜色 134                  
 7.1.3  光线与材质的RGB值 134                  
 7.2  一个简单的例子:光照球体的渲染 135                  
 7.2.1  为所有的物体顶点定义法线向量 137                  
 7.2.2  创建, 定位和激活一个或多个光源 137                  
 7.2.3  选择光照模型 137                  
 7.2.4  定义场景中物体的材质属性 137                  
 7.2.5  一些重要说明 138                  
 7.3  创建光源 138                  
 7.3.1  颜色 139                  
 7.3.2  定位和衰减 140                  
 7.3.3  聚光灯 140                  
 7.3.4  多光源 141                  
 7.3.5  控制光源的位置与方向 142                  
 7.4  选择光照模型 147                  
 7.4.1  全局环境光 147                  
 7.4.2  局部或无穷远的视点 147                  
 7.4.3  双面光照 148                  
 7.4.4  激活光照 148                  
 7.5  材料属性的定义 148                  
 7.5.1  散射和环境光反射 150                  
 7.5.2  镜面反射 150                  
 7.5.3  发射光颜色 151                  
 7.5.4  改变材质属性 151                  
 7.6  光照的数学计算 156                  
 7.6.1  材质的发射光 157                  
 7.6.2  放大的全局环境光 157                  
 7.6.3  光源的贡献 157                  
 7.6.4  聚光灯效果 157                  
 7.6.5  环境光项 158                  
 7.6.6  散射光项 158                  
 7.6.7  镜面反射光项 158                  
 7.6.8  求和 159                  
 7.6.9  颜色索引模式下的光照 159                  
 7.6.10  颜色索引模式下光照的数学计算 160                  
 第8章  混合. 反走样. 雾 161                  
 8.1  混合 161                  
 8.1.1  源因子和目标因子 162                  
 8.1.2  混合的简单使用 163                  
 8.1.3  混合操作范例 164                  
 8.1.4  具有深度缓存的三维混合 167                  
 8.2  反走样 171                  
 8.2.1  点和线的反走样 173                  
 8.2.2  多边形的反走样 178                  
 8.3  雾 182                  
 8.3.1  雾的使用 182                  
 8.3.2  雾的方程 186                  
 第9章  绘制像素. 位图. 字体和图像 191                  
 9.1  位图和字体 191                  
 9.1.1  当前光栅位置 194                  
 9.1.2  绘制位图 195                  
 9.1.3  字体和显示列表 196                  
 9.1.4  一个完整的字体定义和使用 197                  
 9.2  图像 203                  
 9.2.1  像素数据的读. 写和拷贝 203                  
 9.2.2  图像的放大与缩小 206                  
 9.3  像素的存储. 变换和映射 206                  
 9.3.1  像素模式概论 206                  
 9.3.2  像素存储控制模式 207                  
 9.3.3  像素传递操作 209                  
 9.3.4  像素矩形 210                  
 9.3.5  像素读取过程详解 212                  
 9.3.6  像素映射 213                  
 第10章  纹理映射 215                  
 10.1  概述及范例 217                  
 10.1.1  纹理映射的步骤 217                  
 10.1.2  一个简单的程序 218                  
 10.2  指定纹理 221                  
 10.2.1  使用纹理边界 222                  
 10.2.2  细节等级(Level of Details) 222                  
 10.2.3  控制过滤 228                  
 10.2.4  一维纹理 230                  
 10.3  调节和混合 230                  
 10.4  分配纹理坐标 232                  
 10.4.1  计算纹理坐标 232                  
 10.4.2  纹理的重复和截取 233                  
 10.5  自动纹理坐标生成 235                  
 10.5.1  创建轮廓 236                  
 10.5.2  环境映射 239                  
 10.6  高级特性 240                  
 10.6.1  纹理矩阵堆栈 240                  
 10.6.2  纹理的q坐标 241                  
 第11章  帧缓存 242                  
 11.1  缓存及其使用 243                  
 11.1.1  各种缓存概述 244                  
 11.1.2  清空缓存 245                  
 11.1.3  为写操作选择颜色缓存 246                  
 11.1.4  缓存屏蔽 246                  
 11.2  片原的测试与操作 247                  
 11.2.1  剪取测试 248                  
 11.2.2  alpha测试 248                  
 11.2.3  模板测试 249                  
 11.2.4  深度测试 254                  
 11.2.5  混合, 抖动及逻辑操作 255                  
 11.3  累积缓存 257                  
 11.3.1  场景反走样 257                  
 11.3.2  运动模糊度 269                  
 11.3.3  景深 270                  
 11.3.4  柔和阴影 276                  
 11.3.5  抖动 276                  
 第12章  求值程序和非均匀有理B样条(NURBS) 278                  
 12.1  概述 278                  
 12.2  求值程序 279                  
 12.2.1  一维求值程序 279                  
 12.2.2  二维求值程序 284                  
 12.3  GLU的NURBS接口程序 296                  
 12.3.1  简单的NURBS范例 296                  
 12.3.2  修剪 302                  
 第13章  选择机制 306                  
 13.1  选择 306                  
 13.1.1  基本步骤 307                  
 13.1.2  创建命名堆栈 307                  
 13.1.3  选中记录 309                  
 13.1.4  一个选择的实例 309                  
 13.1.5  拾取 314                  
 13.1.6  用多个命名和分层模型进行拾取 320                  
 13.1.7  拾取和深度值 322                  
 13.1.8  在编程中使用选择机制的一些提示 326                  
 13.2  反馈 327                  
 13.2.1  反馈数组 328                  
 13.2.2  在反馈模式下使用标记 329                  
 13.2.3  一个反馈的例子 330                  
 第14章  OpenGL应用及提高应用程序性能的技巧 335                  
 14.1  轻松制作透明物体 336                  
 14.2  轻松实现淡出效果 336                  
 14.3  利用后缓存进行物体选择 337                  
 14.4  方便的图像变换 338                  
 14.5  分层显示 339                  
 14.6  字符反走样 340                  
 14.7  绘制圆形的点 342                  
 14.8  插入图像 342                  
 14.9  制作贴花 342                  
 14.10  用模板缓存绘制填充的凹多边形 343                  
 14.11  确定重叠区域 344                  
 14.12  阴影 345                  
 14.13  消除隐藏线 345                  
 14.14  纹理映射的应用 346                  
 14.15  绘制深度缓存图像 347                  
 14.16  笛里希累(Dirichlet)域 347                  
 14.17  生命游戏(Life Game) 348                  
 14.18  交替使用glDrawPixels()和glCopyPixels() 349                  
 第15章  高级应用(一):OpenGL与AutoCAD的图形接口 351                  
 15.1  AutoCAD简介 351                  
 15.2  DXF文件分析 352                  
 15.2.1  DXF文件的基本结构 352                  
 15.2.2  实体段分析 354                  
 15.3  DXF接口程序的编写 356                  
 15.4  OpenGL 的DXF扩展库函数的制作 362                  
 15.5  高级应用实例 363                  
 第16章  高级应用(二):三维随机分形地形的生成 372                  
 16.1  分形的基本原理 372                  
 16.1.1  自相似 373                  
 16.1.2  一维中点变换 373                  
 16.1.3  Diamond-Square算法 376                  
 16.1.4  蓝天白云的生成 380                  
 16.2  分形地形生成实例 381                  
 16.2.1  程序的运行 381                  
 16.2.2  代码结构分析 382                  
 附录1  OpenGL中的操作顺序 405                  
 附1.1  概述 405                  
 附1.2  几何操作 406                  
 附1.2.1  顶点操作 406                  
 附1.2.2  图元装配 406                  
 附1.3  像素操作 407                  
 附1.4  片元操作 407                  
 附1.5  补充说明 407                  
 附录2  OpenGL状态变量 409                  
 附2.1  查询命令 409                  
 附2.2  出错处理 410                  
 附2.3  状态变量的保存和恢复 411                  
 附2.4  OpenGL的状态变量 412                  
 附2.4.1  当前值和相关数据 413                  
 附2.4.2  变换 413                  
 附2.4.3  颜色 414                  
 附2.4.4  光照 414                  
 附2.4.5  光栅化 416                  
 附2.4.6  纹理 416                  
 附2.4.7  像素操作 417                  
 附2.4.8  帧缓存控制 418                  
 附2.4.9  像素 419                  
 附2.4.10  求值程序 420                  
 附2.4.11  提示 420                  
 附2.4.12  依赖执行的值 420                  
 附2.4.13  像素深度 422                  
 附2.4.14  混合 422                  
 附录3  OpenGL实用库 423                  
 附3.1  纹理映射中的图像操作 423                  
 附3.2  变换坐标 424                  
 附3.3  多边形网格化 425                  
 附3.4  回调机制 425                  
 附3.5  网格化物体 425                  
 附3.6  指定回调函数 426                  
 附3.7  描述网格化多边形 427                  
 附3.8  渲染球体. 圆柱和圆盘 428                  
 附3.9  NURBS曲线和曲面 429                  
 附3.10  错误的描述 430                  
 附录4  OpenGL对X窗口系统的扩展 431                  
 附4.1  初始化 431                  
 附4.2  控制渲染 431                  
 附4.2.1  管理OpenGL渲染内容 431                  
 附4.2.2  后台渲染 432                  
 附4.2.3  同步执行 432                  
 附4.2.4  交换缓存 432                  
 附4.2.5  使用X字体 432                  
 附4.3  GLX库函数原型 432                  
 附录5  OpenGL辅助库 434                  
 附5.1  初始化及退出窗口 434                  
 附5.2  处理窗口和输入事件 435                  
 附5.3  装载颜色图 435                  
 附5.4  初始化和绘制三维物体 435                  
 附5.5  管理后台进程 437                  
 附5.6  运行程序 437                  
 附录6  计算法线向量 438                  
 附6.1  为解析表面确定法线 438                  
 附6.2  由多边形数据确定法线 440                  
 附录7  齐次坐标与变换矩阵 442                  
 附7.1  齐次坐标 442                  
 附7.2  变换 442                  
 附7.2.1  顶点变换 442                  
 附7.2.2  法线变换 443                  
 附7.2.3  变换矩阵 443                  
 附录8  OpenGL编程要点 446                  
 附8.1  OpenGL正确编程技巧 446                  
 附8.2  提高OpenGL程序性能 447                  
 附8.3  GLX的技巧 448                  
 附录9  OpenGL的不变性 449                  
 附录10  术语表 450                  
 A 450                  
 B 450                  
 C 451                  
 D 452                  
 E 453                  
 F 453                  
 G 454                  
 H 455                  
 I 455                  
 L 456                  
 M 456                  
 N 456                  
 O 457                  
 P 457                  
 R 458                  
 S 458                  
 T 459                  
 V 459                  
 X 460                  

猜您喜欢

读书导航