内容简介
《计算机图形学基础》对计算机图形学的基本概念、原理与方法进行了详细介绍,主要内容包括计算机图形学的发展及应用,图形设备,图形变换,多边形的扫描转换与区域填充,隐藏线与隐藏面的消隐,曲线、曲面的表示,几何造型技术,真实感图形学,动画技术,OpenGL程序设计基础等。
《计算机图形学基础》针对图形学的特点,为读者提供了学习和掌握图形软件的一般实践方法,为读者深入学习图形学的专门知识打下坚实的基础。
《计算机图形学基础》的内容注重基础性与实用性,可作为计算机专业的本科教材,同时,也可供研究生或从事计算机图形学研究的专业人士参考。
内页插图
目录
第1章 计算机图形学的发展及应用
1.1 概述
1.2 计算机图形学的发展
1.2.1 计算机图形学的发展简史
1.2.2 硬件设备的发展
1.3 计算机图形学的应用
1.3.1 图形用户界面
1.3.2 计算机辅助设计与制造
1.3.3 计算机动画
1.3.4 科学计算可视化
1.3.5 计算机艺术
1.3.6 虚拟现实
1.3.7 真实感图形绘制
1.4 计算机图形学的研究热点
1.4.1 真实感人脸建模研究
1.4.2 基于图像的建模与绘制技术
1.4.3 体绘制技术
习题1
第2章 图形设备
2.1 图形输入设备
2.1.1 常用的输入设备
2.1.2 新型输入设备
2.2 图形绘制设备
2.2.1 绘图仪
2.2.2 打印机
2.3 图形显示系统
2.3.1 CRT显示器
2.3.2 显示卡
2.3.3 液晶显示器
2.4 图形软件
2.4.1 图形软件的类型与功能
2.4.2 图形软件标准
2.4.3 三维实时图形软件包
习题2
第3章 图形变换
3.1 坐标系统
3.2 几何变换
3.2.1 平移变换
3.2.2 缩放变换
3.2.3 旋转变换
3.2.4 错切变换
3.2.5 反射变换
3.2.6 齐次坐标表示
3.2.7 变换矩阵表示
3.2.8 复合变换
3.2.9 相对于任意参考点的几何变换
3.3 投影变换
3.3.1 透视投影变换
3.3.2 平行投影变换
3.4 图形裁剪
3.4.1 点的裁剪
3.4.2 直线的裁剪
3.4.3 多边形的裁剪
3.5 窗口概念及窗口到视区的变换
3.5.1 基本概念
3.5.2 窗口到视区的变换
习题3
第4章 多边形的扫描转换与区域填充
4.1 多边形的扫描转换
4.1.1 多边形的扫描转换的定义
4.1.2 逐点判断算法(z扫描线算法)
4.1.3 扫描线算法
4.1.4 边界标志算法
4.2 区域填充技术
4.2.1 区域的表示
4.2.2 递归算法
4.2.3 栈结构的种子填充算法
4.2.4 扫描线填充算法
4.2.5 区域填充图案
4.2.6 多边形的扫描转换与区域填充方法比较
4.3 反走样
4.3.1 提高分辨率
4.3.2 直线的区域采样
习题4
第5章 隐藏线与隐藏面的消除
5.1 多面体的隐藏线消除
5.1.1 减少直线求交
5.1.2 多面体的隐藏线消除
5.1.3 凹多面体的隐藏线消除
5.2 曲面的隐藏线消除
5.3 隐藏面的消除
5.3.1 区域子分算法
5.3.2 画家算法
5.3.3 Z缓存算法
5.3.4 扫描线算法
5.3.5 区间扫描线算法
习题5
第6章 曲线、曲面的表示
6.1 基础知识
6.1.1 显式、隐式和参数表示
6.1.2 插值
6.1.3 逼近
6.1.4 曲线的连续性
6.1.5 曲线拟合
6.1.6 三次Hermite样条
6.2 Bezier曲线、曲面的表示
6.2.1 Bezier曲线的定义
6.2.2 Bezier曲线的性质
6.2.3 Bezier曲线的拼接
6.2.4 Bezier曲线的离散生成
6.2.5 Bezier曲面的定义
6.2.6 Bezier曲面的性质
6.2.7 Bezier曲面的拼接
6.3 B样条曲线、曲面的表示
6.3.1 B样条曲线的定义
6.3.2 B样条曲线的分类
6.3.3 B样条曲线的性质
6.3.4 非均匀有理B样条曲线
6.3.5 B样条曲面的定义
6.3.6 非均匀有理B样条曲面
习题6
第7章 几何造型技术
7.1 线框模型
7.2 表面模型
7.2.1 三维物体的边界表示
7.2.2 三维物体的扫描表示
7.3 构造实体
7.3.1 正则形体及正则运算
7.3.2 构造实体的几何表示
7.3.3 光线投射算法
7.4 空间划分表示法
7.4.1 空间位置枚举表示
7.4.2 八叉树表示
7.4.3 八叉树节点的编码方式
习题7
第8章 真实感图形学
8.1 颜色模型
8.1.1 CIE色度图
8.1.2 常用的颜色模型
8.2 简单光照明模型
8.2.1 Lambert模型
8.2.2 Phong光照明模型
8.3 增量式光照明模型
8.3.1 双线性光强插值(Gouraud明暗处理)
8.3.2 双线性法向插值(Phong明暗处理)
8.4 阴影的产生
8.4.1 阴影多边形算法
8.4.2 阴影缓存器方法
8.5 整体光照模型
8.5.1 透明效果的简单模拟
8.5.2 Whitted光透射模型
8.5.3 Hall光透射模型
8.6 光线跟踪算法
8.6.1 算法原理
8.6.2 光线与物体求交
8.6.3 光线跟踪算法的加速
习题8
第9章 动画技术
9.1 动画简介
9.1.1 国外影视动画发展概况
9.1.2 国内影视动画发展现状
9.2 动画开发工具
9.2.1 超强3D动画制作工具AvidSoltimage-XSI
9.2.2 三维非线性动画创作系统Sumatra
9.2.3 Alias/Wavefronl.MAYA
9.2.4 3DSmax
9.2.5 Lightwave3D
9.3 计算机动画技术
9.3.1 关键帧动画技术
9.3.2 基于物理的动画技术
9.3.3 过程动画
9.3.4 群体行为动画
9.3.5 运动捕捉技术
9.4 三维动画设计
9.4.1 三维动画的制作过程
……
第10章 openGL程序设计基础
参考文献
精彩书摘
1.2.2硬件设备的发展
图形输出包括图形显示和图形绘制。图形显示指的是在屏幕上输出图形。图形绘制通常指把图形画在纸上,也称硬拷贝。打印机和绘图仪是两种最常用的硬拷贝设备。
专用的图形显示器起源于20世纪60年代中期的画线显示器(亦称矢量显示器),其特点是需要刷新,图形可以随时更新,缺点是设备昂贵,限制了该设备的普及。60年代后期出现了存储管式显示器,该显示器不需刷新,价格较低,缺点是不具有动态修改图形功能,不适合交互式绘图。70年代初,刷新式光栅扫描显示器的出现,大大地推动了交互式图形技术的发展。尤其是彩色光栅扫描显示器的出现,更将人们带到了一个多彩的世界。光栅扫描显示器以点阵形式表示图形,使用专用的缓冲区存放点阵,由视频控制器负责刷新扫描。
到了21世纪,LCD(Liquid Crystal Display,液晶显示器)成为主流显示设备。LCD的特点是外观小巧精致,厚度只有6.5~8 cm左右,远小于CRT显示器。由于液晶像素总是发光,只有加上不发光的电压时该点才变黑,因此不会产生像CRT那样的因为刷新频率低而出现的闪烁现象。而且它的工作电压低,功耗小,节约能源,没有电磁辐射,对人体健康影响较小。
另外,LCD不只应用在显示器方面,电子表、手持游戏机以及PDA等产品中都能见到LCD的影子。在LCD不断发展的同时,其他平面显示器也在进步中,如等离子显示器、场致发射显示器、发光聚合体显示器等。
最常用的图形输入设备就是基本的计算机输入设备——键盘和鼠标。人们一般利用一些图形软件,通过键盘和鼠标直接在屏幕上定位和输入图形。如人们常用的CAD系统就是通过鼠标和键盘命令生成各种工程图的。此外还有跟踪球、空间球、数据手套、光笔、触摸屏等输入设备。跟踪球和空间球都是根据球在不同方向受到的推或拉的压力来实现定位和选择的。数据手套则是通过传感器及天线来获得和发送手指的位置与方向信息的。这几种输入设备在虚拟现实场景的构造和漫游中特别有用。
前言/序言
计算机图形学是计算机辅助设计/制造(CAD/CAM)技术的基础学科之一,主要研究用计算机及其图形设备来输入、表示、变换、运算和输出图形的原理、算法及系统。随着微机的日益普及,计算机图形学发展迅速,并应用于各个领域。
本书介绍了计算机图形学的基础知识和基本概念,内容安排有较广的适应面,能满足各专业的基本教学需要,同时注重实践环节,注意用典型的算法和习题启迪读者的思维,培养其独立研究、独立工作的能力。本书还注意反映该学科领域的发展动向,以利于开阔读者眼界,适应高新技术的快速发展。
本书介绍的内容主要有:计算机图形学的发展和应用;计算机图形设备和系统;基本图形生成算法;图形变换和裁剪;窗口系统;多边形的扫描转换与区域填充;隐藏线与隐藏面的消除;几何造型的理论和算法;颜色、光照模型及真实图形显示技术;OpenGL图形处理系统等。
本书是作者在参考国内外同类书籍,吸收国内外近十年来在计算机图形学方面的新成果,并广泛征求国内同行的意见和建议的基础上编写而成的。本书的特点是既注重讨论计算机图形学中最基本和广泛应用的理论和算法,也力求反映20世纪90年代以来国内外的一些重要的新成果。
探索光影的魔法:数字世界的艺术与科学 在这个瞬息万变的数字时代,视觉叙事的力量日益凸显。从令人惊叹的电影特效到逼真细腻的游戏场景,再到交互式的虚拟现实体验,这一切的背后都离不开一门既是艺术又是科学的学科——计算机图形学。本书将带您踏上一段引人入胜的旅程,深入了解那些赋予数字世界生命与活力的奥秘,探索如何将抽象的数学概念转化为栩栩如生的视觉图像。 想象一下,您正置身于一个由像素和多边形构建的奇幻世界,每一束光线、每一次阴影、每一次材质的纹理都经过精密的计算和渲染。这不是魔法,而是计算机图形学强大的力量。本书将揭示构建这一切的基础原理,从最基本的几何体建模,到复杂的材质属性模拟,再到令人惊叹的光照和阴影计算。您将学习到如何利用数学语言来描述三维空间中的物体,如何通过算法来处理和变换这些几何信息,最终将它们呈现在二维的屏幕上。 构建数字世界的基石:几何与建模 一切数字图形的起点,都源于对现实世界或想象世界的几何描述。本书将从最基础的几何原语出发,例如点、线、面,以及更复杂的曲面和实体。您将深入了解如何使用多边形网格来构建几乎任何形状的物体,从简单的立方体到复杂的角色模型,再到宏伟的建筑场景。本书将详细讲解各种建模技术,包括: 多边形建模 (Polygon Modeling): 这是构建三维模型最常用的方法。您将学习如何通过顶点、边和面的组合来创建模型,以及各种编辑和优化技术,例如挤出、倒角、细分曲面等。 参数化建模 (Parametric Modeling): 这种技术允许您通过一组参数来定义和控制几何体的形状,使得模型的修改更加灵活方便。 NURBS (Non-Uniform Rational B-Splines): 对于需要高度平滑和精确曲线的场景,NURBS模型提供了强大的解决方案。您将理解其数学原理和在设计中的应用。 体素建模 (Voxel Modeling): 类似于三维像素,体素为构建具有体积感的模型提供了另一种途径,尤其在某些特定应用中表现出色。 除了静态的模型,本书还将探讨如何创建动态的对象。您将学习到骨骼动画 (Skeletal Animation) 的原理,如何通过绑定骨骼来控制模型的变形,以及关键帧动画 (Keyframe Animation) 的技术,从而赋予数字角色生命。 赋予模型生命:材质与纹理 一个精美的三维模型,如果缺乏恰当的材质和纹理,将显得冰冷而失真。本书将带您深入探索如何赋予模型逼真的外观。您将理解: 材质属性 (Material Properties): 颜色、反射率、粗糙度、折射率、透明度……这些属性共同决定了物体如何与光线相互作用。本书将详细阐述各种材质模型的原理,例如兰伯特模型 (Lambertian Model)、冯·冯模型 (Phong Model)、布林·丰模型 (Blinn-Phong Model) 等,以及它们在模拟不同表面特性方面的表现。 纹理映射 (Texture Mapping): 将二维图像“贴”到三维模型表面,可以极大地丰富模型的细节和真实感。您将学习到各种纹理映射技术,包括漫反射纹理 (Diffuse Texture)、法线纹理 (Normal Texture)、高光纹理 (Specular Texture)、凹凸纹理 (Bump Map) 和位移纹理 (Displacement Map) 等,以及如何利用它们来模拟木材、石头、金属、皮肤等各种材质的表面细节。 程序化纹理 (Procedural Texturing): 利用算法生成的纹理,避免了对外部图像文件的依赖,并且能够生成无限变化的效果,例如程序化噪声、分形图案等。 着色器 (Shaders): 着色器是现代图形渲染的核心。本书将介绍顶点着色器 (Vertex Shader) 和片段着色器 (Fragment Shader) 的作用,它们负责在GPU上执行高度并行的计算,从而实现复杂的材质效果和渲染管线。 光影的魔术:光照与渲染 光照是创造视觉真实感的关键。本书将深入揭示光线如何在三维空间中传播,以及如何计算物体表面的亮度。您将学习到: 光照模型 (Lighting Models): 从简单的定向光 (Directional Light)、点光源 (Point Light) 和聚光灯 (Spotlight),到更复杂的区域光 (Area Light) 和环境光 (Ambient Light),本书将详述各种光源的特性及其对场景的影响。 阴影生成 (Shadow Generation): 阴影是物体与光线相互作用的重要体现,也是增强空间感和真实感的关键。您将学习到各种阴影算法,例如阴影映射 (Shadow Mapping) 和阴影体 (Shadow Volumes),以及它们在不同场景下的优缺点。 反射与折射 (Reflection and Refraction): 模拟镜面反射 (Mirror Reflection) 和玻璃、水等透明物体的折射效果,能够极大地提升场景的逼真度。本书将介绍光线追踪 (Ray Tracing) 的基本原理,以及如何利用它来模拟这些复杂的现象。 全局光照 (Global Illumination): 真实世界的光照并非仅仅来自直接光源,物体之间还会产生间接光照(例如,墙壁反射的光线会照亮房间)。本书将介绍全局光照的概念,以及光子映射 (Photon Mapping)、辐射度法 (Radiosity) 等技术,它们能够模拟出更加柔和、自然的场景光照。 渲染管线 (Rendering Pipeline): 您将了解从三维场景数据到最终二维图像的整个渲染过程,包括模型变换、裁剪、投影、光栅化等一系列步骤。 穿越二维与三维的界限:投影与观察 要将三维世界呈现在二维屏幕上,需要进行精密的投影变换。本书将解释: 正交投影 (Orthographic Projection): 在这种投影下,平行线在投影后仍然保持平行,常用于工程制图和CAD应用。 透视投影 (Perspective Projection): 这种投影能够模拟人眼观察现实世界的方式,近处的物体看起来更大,远处的物体看起来更小,营造出深度感。您将理解视锥体 (View Frustum) 的概念,以及如何通过相机参数来控制投影效果。 视口变换 (Viewport Transformation): 将裁剪后的三维场景投影到二维视口上的过程。 交互与动态:实时图形与虚拟现实 本书不仅仅关注静态图像的生成,还将探索如何实现实时互动和沉浸式体验。 实时渲染 (Real-time Rendering): 游戏、模拟和交互式应用需要以极高的帧率生成图像。您将了解GPU (Graphics Processing Unit) 的强大并行计算能力如何在实时渲染中发挥关键作用。 计算机视觉基础 (Introduction to Computer Vision): 了解如何从图像中提取信息,例如边缘检测、特征提取等,这对于实现物体识别、跟踪以及增强现实等应用至关重要。 虚拟现实与增强现实 (Virtual and Augmented Reality): 探索如何利用计算机图形学技术构建虚拟世界,以及如何将虚拟信息叠加到真实世界中,创造前所未有的交互体验。 更进一步的探索 在掌握了基础知识之后,本书还将引导您探索更高级的主题,例如: 动画曲线与插值 (Animation Curves and Interpolation): 用于平滑地控制动画的运动轨迹。 碰撞检测 (Collision Detection): 在模拟和游戏环境中,判断物体之间是否发生碰撞。 粒子系统 (Particle Systems): 用于模拟火焰、烟雾、雨雪等复杂的动态效果。 几何着色器 (Geometry Shader) 和计算着色器 (Compute Shader): 进一步扩展GPU的计算能力,实现更复杂的效果。 本书旨在为读者提供一个全面而深入的计算机图形学知识体系。无论您是希望深入理解电影特效的制作原理,还是想要开发逼真的游戏,亦或是对构建未来虚拟世界充满好奇,本书都将为您提供坚实的基础和宝贵的启示。准备好,让我们一起用代码和算法,点亮数字世界的想象力,创造属于我们的视觉奇迹。