本书内容包括:计算机图形系统组成;OpenGL编程基础;基本图元的生成;OpenGL中基本图元的绘制;图形用户界面与交互技术;图形变换等。
本书全面地介绍了计算机图形学的基础知识,强调课程的理论教学与实践内容并重,配套有实验内容。编写本书的目的是让学生了解计算机图形学技术的发展、应用和最新成果,掌握计算机图形学的核心理论和算法,使学生具有基本2D和3D图形程序的空间造型、基本图形编程能力和实践应用能力。
本书根据作者多年的教学实践经验编写而成,在内容安排和课程实验的配置上充分考虑了教师的教学计划与学生的接受理解能力。全书共分11章。第1章绪论,介绍计算机图形学及其相关概念,计算机图形学的发展、应用及相关技术;第2章计算机图形系统组成,包括计算机图形系统的体系结构、硬件设备以及图形软件及其标准;第3章OpenGL编程基础,首先叙述了OpenGL的一些基本概念,然后通过简单实例介绍OpenGL编程的基本知识;第4章基本图元的生成,包括点、直线、圆的生成算法,多边形的填充算法,字符生成和光栅图形的反走样算法;第5章OpenGL中基本图元的绘制,介绍了点、直线、多边形、圆、字符绘制方法以及反走样的实现;第6章图形用户界面与交互技术,首先对人机交互技术与图形用户界面做了系统叙述,然后详细描述了OpenGL交互与动画技术的实现,包括键盘和鼠标交互、时间动画等技术;第7章图形变换,包括二维几何变换及组合变换、二维观察流程、二维直线裁剪算法及其实现、三维几何变换及组合变换、OpenGL三维图形变换及其实例;第8章三维观察与投影变换,包括三维观察流程、投影变换、平行投影与透视投影、三维裁剪以及OpenGL三维观察实现;第9章真实感图形绘制,叙述了颜色模型、光照基础知识、Phong光照模型、消隐技术、OpenGL的简单光照实现;第10章曲线曲面造型,首先叙述了曲线曲面基础知识,然后分别对Bezier、B样条、NURBS和多结点样条曲线曲面的定义及性质做了详细介绍,并对这几种曲线曲面造型算法进行了比较,最后讲述了OpenGL曲线曲面绘制方法;第11章三维形体的表示,对现有几种三维形体造型方法及其应用场合做了阐述,给出了OpenGL分形和粒子系统的实现方法。
本书具有如下特点:
1)精选内容、突出主线。计算机图形学在发展过程中不断推陈出新,为适应教学,本书增添了成熟的新内容,强调核心算法,对部分图形学算法进行取舍,重心向3D真实感图形技术偏移。
2)强调交互和动画技术。交互与动画是计算机图形学的重要环节。本书不仅介绍了交互和动画技术的理论知识,在实验环节还设有专门的交互和动画实验,并且几乎每个实验都有交互和动画部分。
3)与OpenGL编程技术结合,设有配套实验。加强实践教学,配套极富特色的实验单元。
所有配套实验单元均是笔者自主设计,每个实验单元都是一个完整案例。例如鼠标画线、太阳系、3D机器人、漫游场景、线段窗口裁剪、雾透明与阴影、曲线曲面造型等。整个实验穿插验证性、设计性和综合性,由浅至深、由易到难、由简单到交互、由2D到3D,循序渐进。
序一
序二
前言
教学建议
第1章 绪论
11 计算机图形学及其相关概念
1.2 计算机图形学的发展
1.3 计算机图形学的应用
1.4 计算机图形学的相关技术
1.4.1 0penGL技术
1.4.2 DirectX技术
1.4.3 Web3D技术
本章小结
习题
第2章 计算机图形系统组成
2.1 概述
2.1.1 计算机图形系统的功能
2.1.2 计算机图形系统的结构
2.2 图形显示与观察设备
2.3 图形输入设备
2.4 图形输出设备
2.5 图形软件及其标准
本章小结
习题
第3章 OpenGL编程基础
3.1 0penGL简介
3.2 0penGL的功能
3.3 0penGL的组成
3.4 0penGL体系结构
3.5 0penGL T作流程
3.6 0penGL数据类型
3.7 0penGL函数命名约定
3.8 0penGL编程初探
3.8.1 0penGL编程入门
3.8.2 0penGL程序结构
本章小结
习题
第4章 基本图元的生成
4.1 点的生成算法
4.2 直线的生成算法
4.2.1 DDA算法
4.2.2 Bresenham算法
4.3 圆的生成算法
4.4 区域填充算法
4.4.1 多边形扫描转换算法
4.4.2 边缘填充算法
4.4.3 种子填充算法
4.5 字符的生成
4.6 光栅图形的反走样
本章小结
习题
第5章 OpenGL中基本图元的绘制
5.1 点的绘制
5.2 直线的绘制
5.3 可填充的图元绘制
5.4 多边形的绘制模式
5.5 圆和椭圆的绘制
?5.6 状态的保存
5.7 字符的绘制
5.8 反走样的实现
本章小结
习题
第6章 图形用户界面与交互技术
6.1 概述
6.2 人机交互用户界面的设计原则
6.3 逻辑输入设备及数据输入处理
6.3.1 逻辑输入设备
6.3.2 数据输入处理
6.4 基本交互技术
6.4.1 基本绘图技术
6.4.2 基本三维交互技术
6.5 0penGL交互与动画技术的实现
6.5.1 窗口改变回调函数
6.5.2 闲置回调函数
6.5.3 重绘回调函数
6.5.4 单、双缓存技术
6.5.5 键盘交互
6.5.6 鼠标交互
6.5.7 快捷菜单
6.5.8 子窗口与多窗口
6.5.9 显示列表 -
6.5.1 0拾取操作
本章小结
习题
第7章 图形变换
7.1 二维基本几何变换
7.1.1 平移变换
7.1.2 比例变换
7.1.3 旋转变换
7.1.4 对称变换
7.1.5 错切变换
7.2 齐次坐标
7.2.1 齐次坐标的概念
7.2.2 二维齐次坐标变换
7.3 组合变换
7.3.1 组合平移
7.3.2 组合旋转
7.3.3 组合缩放
7.3.4 对任一固定点旋转
7.3.5 对任一固定点缩放
7.3.6 对任一固定轴对称变换
7.3.7 矩阵合并特性
7.4 二维观察
7.4.1 二维观察流程
7.4.2 窗口到视区的变换
7.4.3 0penGL二维图形变换及其实例
7.4.4 二维直线裁剪算法及其实现
7.4.5 其他二维图形裁剪算法介绍
7.5 三维几何变换
7.5.1 三维基本几何变换
7.5.2 三维组合变换
7.5.3 0penGL三维图形变换及其
实例
本章小结
习题
第8章 三维观察与投影变换
8.1 三维观察
8.1.1 三维观察流程
8.1.2 三维观察坐标系
8.1.3 从世界坐标系到观察坐标系的变换
8.2 投影变换
8.2.1 平行投影
8.2.2 透视投影
8.3 空间规范化
8.4 三维裁剪
第9章 真实感图形绘制
第10章 曲线曲面造型
第11章 三维形体的表示
实验一 OpenGL图形编程入门
实验二 OpenGL的简单动画
实验三 OpenGL的键盘交互绘制
实验四 OpenGL的鼠标交互绘制
实验五 基本图元的生成算法
实验六 2D图形变换
实验七 2D太阳系绘制
实验八 线段裁剪算法
实验九 3D编程基础
实验十 3D机器人
实验十一 交互的3D漫游世界
实验十二 简单光照和材质
实验十三 雾、透明和阴影
实验十四 3DS格式的模型显示
实验十五 纹理映射
实验十六 Bezier曲线曲面绘制
实验十七 多结点样条曲线曲面绘制
参考文献