《计算机图形学基础(OpenGL版)》第2版前言

在这里插入图片描述

随着虚拟现实和5G技术的发展,计算机图形学将会发挥更加重要的基础作用,因此,越来越多的高校开设了图形学课程,同时也有更多的技术爱好者加入了图形学的学习队伍。为了更好地帮助读者学习和掌握计算机图形学,作者用心地改版了这本书。下面对本书的指导思想进行一些介绍,希望在这些重要问题上和读者取得共识,之后介绍下本书内容组织及改版情况。

1.指导思想
(1)自顶向下

图形学内容繁多复杂,很容易让学生在学习一学期后仍不得要领。针对此问题,本书在整体上采用自顶向下原则来组织内容,从计算机图形学定义出发,紧紧围绕图形绘制流水线这条主线进行图形学内容介绍,让读者在各章内容学习的同时,头脑中始终明确该章内容在图形绘制流水线中的定位和作用,从而能更整体、全面地学习与掌握计算机图形学。

(2)循序渐进

另一方面,学习是一个循序渐进的过程,一本教材也应当尽可能按照循序渐进的原则和方式来组织教材内容。因此,本书在整体上遵循图形绘制流水线这条主线的同时,在具体内容组织则遵循循序渐进的原则来处理。首先,循序渐进介绍图形绘制流水线。我们分别在第1、2、7章从不同层面、不同角度对图形绘制流水线进行介绍,让读者逐渐深入地了解图形绘制流水线这一主线。其次,按照由易到难、由外而内的顺序介绍图形绘制流水线各部分知识。为了帮助读者更好地从整体上理解和认识图形绘制流水线,本书首先在第2章介绍了图形系统,再由外而内,从图形显示的光栅化入手,介绍了基本图形的光栅化。之后再介绍变换与观察,到三维造型与真实感图形,完成整个图形绘制流水线的介绍。

(3)OpenGL定位

对本书而言,OpenGL定位于学习辅助工具,即通过OpenGL来辅助学习与掌握图形学相关知识与技术。因此,本书没有像OpenGL编程指南一样地把它的各方面知识都一一介绍,而是仅介绍了对于学习图形学来说必要的那些部分。也正是基于这一考虑,本书没有基于最新基于可编程流水线的OpenGL版本,而是采用了学习难度与台阶较小的基于固定流水线的OpenGL版本来介绍,这样可以使读者更好地聚焦到图形学内容上。同时我们相信,如果读者以本书为台阶,再去学习最新版的OpenGL会更加容易和高效。

2.内容组织

本书的图形学内容体系,如图0.1所示。其中,图形学基础模块是学习计算机图形学的一些数学与相关软硬件的基础知识;建模模块是为了解决图形学的建模与表示任务;绘制模块用来解决图形学的绘制任务。各知识模块及相应章节内容简要介绍如下。
图形学内容体系
图0.1. 本书的图形学内容体系

(1) 基础模块:

图形学基础主要包括数学以及与之相关软、硬件基础知识。数学基础知识包括向量、矩阵、齐次坐标和几何变换等,是计算机图形学中重要的计算工具,它们被大量地运用到真实感图形生成过程中的法向计算,还有直线、平面及各种曲面的计算,曲线曲面的构造与光顺等。其中向量、矩阵等知识请读者自行查阅相关书籍,本书不作介绍。几何变换知识将在第4章详细介绍。
软、硬件基础知识包括常见图形API,如OpenGL、Direct3D等,图形输出设备与输出技术的简单基础知识如光栅显示器基本原理、图形流水线等知识将在第2章中介绍。

(2)建模模块:

主要集中在本书的第6章,主要介绍多边形网格模型表示、曲线曲面表示方法等,为图形绘制流水线的应用程序阶段服务。

(3)绘制模块:

绘制模块主要为图形绘制流水线后两个阶段即几何处理和光栅阶段服务,其中几何处理主要负责大部分多边形和顶点的变换操作,这将在第5章介绍三维观察和有关顶点坐标变换问题。光栅阶段主要负责光栅化和像素着色任务,其中光栅化将在第3章介绍,而像素着色则会在第8章介绍。
附录A是含有12个实验的实验教程。

3.相对第1版的变化
  • 总体修改:删去第5章二维观察,第9章交互技术,第10章计算机动画。附录B内容移至线上课程相关网站,供读者参考。具体修改情况如下:
  • 第1章将原内容按照图形学的4W(What, Why, Where, When)方面来整理,使原内容逻辑更清晰;增加“1.1.2什么是计算机图形学”、“1.1.3图形绘制两种策略”和“1.1.4图形绘制流水线”;
  • 第2章增加“2.4.4 显卡和图形处理器”、“2.5图形流水线”,将原“8.3颜色模型”提前为“2.3颜色模型”;
  • 第3章:将原第5章中的裁剪内容移至“3.7裁剪”,并改写了“3.2直线段光栅化”、“3.3圆弧光栅化”和“3.6反走样技术”;
  • 第4章增加“4.1.4二维几何变换通式与总结”和“4.4.3变换应用实例——正方形旋转动画”;
  • 第5章原“6.1三维观察流水线”改为“5.1三维观察流程”并增加大量新内容,改写了“5.2观察变换”、“5.3.3透视投影”节内容;
  • 第6章按某一类曲线曲面来介绍,如Bezier曲线曲面,不再按Bezier曲线和Bezier曲面分开介绍,增加“6.4.5 NURBS曲线曲面”;
  • 第7章进行了大量的精简和改写,同时增加“7.8图形流水线再分析”;
  • 附录实验指导在原有实验基础上,增加了4个实验: “实验7 3D机器人”、“实验8 OpenGL太阳系动画”、“实验10 OpenGL纹理映射”和“实验12 B样条曲面生成”。
4.适用对象

本书旨在服务于32~48学时的本科图形学教学与学习。它具有以下特点:以经典图形学知识为主,同时注重结合OpenGL图形应用编程来详细介绍相关技术实例;以OpenGL为教学平台与实验平台,提供实验指导书,以更好地满足教学需要;内容精炼,服务本科教学需要,不过多涉及最新技术。
在阅读本书之前,读者应该了解C或者C++语言,了解简单的数据结构知识,有一些线性代数的初步知识。
欢迎读者在阅读本书的过程中,对本书存在的缺点和问题提出批评与建议。在此提供以下方式供读者联系或反馈我:作者个人博客:http://blog.youkuaiyun.com/wpxu08/;个人网站https://wpxu08.com/;微信公众号:wpxnew;邮箱:wpxu08@gmail.com。欢迎大家留言,同时上述网站中会有一些与本教材相关的教学建议、章节代码、实验指导、模拟试题等内容。

第1章绪论 1.1计算机图形学及其相关概念 1.2计算机图形学的发展 1.2.1计算机图形学学科的发展 1.2.2图形硬件设备的发展 1.2.3图形软件的发展 1.3计算机图形学的应用 1.3.1计算机辅助设计与制造 1.3.2计算机辅助绘图 1.3.3计算机辅助教学 1.3.4办公自动化和电子出技术 1.3.5计算机艺术 1.3.6在工业控制及交通方面的应用 1.3.7在医疗卫生方面的应用 1.3.8图形用户界面 1.4计算机图形学研究动态 1.4.1计算机动画 1.4.2地理信息系统 1.4.3人机交互 1.4.4真实感图形显示 1.4.5虚拟现实 1.4.6科学计算可视化 1.4.7并行图形处理 第2计算机图形系统及图形硬件 2.1计算机图形系统概述 2.1.1计算机图形系统的功能 2.1.2计算机图形系统的结构 2.2图形输入设备 2.2.1键盘 2.2.2鼠标器 2.2.3光笔 2.2.4触摸屏 2.2.5操纵杆 2.2.6跟踪球和空间球 2.2.7数据手套 2.2.8数字化仪 2.2.9图像扫描仪 2.2.10声频输入系统 2.2.11视频输入系统 2.3图形显示设备 2.3.1阴极射线管 2.3.2CRT图形显示器 2.3.3平板显示器 2.3.4三维观察设备 2.4图形显示子系统 2.4.1光栅扫描图形显示子系统的结构 2.4.2绘制流水线 2.4.3相关概念 2.5图形硬拷贝设备 2.5.1打印机 2.5.2绘图仪 2.6OpenGL图形软件包 2.6.1OpenGL的主要功能 2.6.2OpenGL的绘制流程 2.6.3OpenGL的基本语法 2.6.4一个完整的OpenGL程序 第3章用户接口与交互式技术 3.1用户接口设计 3.1.1用户模型 3.1.2显示屏幕的有效利用 3.1.3反馈 3.1.4一致性原则 3.1.5减少记忆量 3.1.6回退和出错处理 3.1.7联机帮助 3.1.8视觉效果设计 3.1.9适应不同的用户 3.2逻辑输入设备与输入处理 3.2.1逻辑输入设备 3.2.2输入模式 3.3交互式绘图技术 3.3.1基本交互式绘图技术 3.3.2三维交互技术 3.4OpenGL中橡皮筋技术的实现 3.4.1基于鼠标的实现 3.4.2基于键盘的实现 3.5OpenGL中拾取操作的实现 3.6OpenGL的菜单功能 第4章图形的表示与数据结构 4.1基本概念 4.1.1基本图形元素 4.1.2几何信息与拓扑信息 4.1.3坐标系 4.1.4实体的定义 4.1.5正则集合运算 4.1.6平面多面体与欧拉公式 4.2三维形体的表示 4.2.1多边形表面模型 4.2.2扫描表示 4.2.3构造实体几何法 4.2.4空间位置枚举表示 4.2.5八叉树 4.2.6BSP树 4.2.7OpenGL中的实体模型函数 4.3非规则对象的表示 4.3.1分形几何 4.3.2形状语法 4.3.3粒子系统 4.3.4基于物理的建模 4.3.5数据场的可视化 4.4层次建模 4.4.1段与层次建模 4.4.2层次模型的实现 4.4.3OpenGL中层次模型的实现 第5章基本图形生成算法 5.1直线的扫描转换 5.1.1数值微分法 5.1.2中点Bresenham算法 5.1.3Bresenham算法 5.2圆的扫描转换 5.2.1八分法画圆 5.2.2中点Bresenham画圆算法 5.3椭圆的扫描转换 5.3.1椭圆的特征 5.3.2椭圆的中点Bresenham算法 5.4多边形的扫描转换与区域填充 5.4.1多边形的扫描转换 5.4.2边缘填充算法 5.4.3区域填充 5.4.4其他相关概念 5.5字符处理 5.5.1点阵字符 5.5.2矢量字符 5.6属性处理 5.6.1线型和线宽 5.6.2字符的属性 5.6.3区域填充的属性 5.7反走样 5.7.1过取样 5.7.2简单的区域取样 5.7.3加权区域取样 5.8在OpenGL中绘制图形 5.8.1点的绘制 5.8.2直线的绘制 5.8.3多边形面的绘制 5.8.4OpenGL中的字符函数 5.8.5OpenGL中的反走样 第6章二维变换及二维观察 6.1基本概念 6.2基本几何变换 6.2.1平移变换 6.2.2比例变换 6.2.3旋转变换 6.2.4对称变换 6.2.5错切变换 6.2.6二维图形几何变换的计算 6.3复合变换 6.3.1二维复合平移变换和比例变换 6.3.2二维复合旋转变换 6.3.4其他二维复合变换 6.3.5相对任一参考点的二维几何变换 6.3.6相对于任意方向的二维几何变换 6.3.7坐标系之间的变换 6.3.8光栅变换 6.3.9变换的性质 6.4二维观察 6.4.1基本概念 6.4.2?用户坐标系到观察坐标系的变换 6.4.3?窗口到视区的变换 6.5?裁剪 6.5.1?点的裁剪 6.5.2直线段的裁剪 6.5.3多边形的裁剪 6.5.4其他裁剪 6.6OpenGL中的二维观察变换 第7章三维变换及三维观察 7.1三维变换的基本概念 7.1.1几何变换 7.1.2三维齐次坐标变换矩阵 7.1.3平面几何投影 7.2三维几何变换 7.2.1三维基本几何变换 7.2.2三维复合变换 7.3三维投影变换 7.3.1正投影 7.3.2斜投影 7.4透视投影 7.4.1一点透视 7.4.2二点透视 7.4.3三点透视 7.5观察坐标系及观察空间 7.5.1观察坐标系 7.5.2观察空间 7.6三维观察流程 7.6.1用户坐标系到观察坐标系的变换 7.6.2平行投影的规范化投影变换 7.6.3透视投影的规范化投影变换 7.7三维裁剪 7.7.1关于规范化观察空间的裁剪 7.7.2齐次坐标空间的裁剪 7.8OpenGL中的变换 7.8.1矩阵堆栈 7.8.2模型视图变换 7.8.3投影变换 7.8.4实例 第8章曲线与曲面 8.1基本概念 8.1.1曲线/曲面数学描述的发展 8.1.2曲线/曲面的表示要求 8.1.3曲线/曲面的表示 8.1.4插值与逼近 8.1.5连续性条件 8.1.6样条描述 8.2三次样条 8.2.1自然三次样条 8.2.2Hermite插值样条 8.3Bezier曲线/曲面 8.3.1Bezier曲线的定义 8.3.2Bezier曲线的性质 8.3.3Bezier曲线的生成 8.3.4Bezier曲面 8.4B样条曲线/曲面 8.4.1B样条曲线 8.4.2B样条曲线的性质 8.4.3B样条曲面 8.5有理样条曲线/曲面 8.5.1NURBS曲线/曲面的定义 8.5.2有理基函数的性质 8.5.3NURBS曲线/曲面的特点 8.6曲线/曲面的转换和计算 8.6.1样条曲线/曲面的转换 8.6.2样条曲线/曲面的离散生成 8.7OpenGL生成曲线/曲面 8.7.1Bezier曲线/曲面函数 8.7.2GLU中的B样条曲线/曲面函数 第9章消隐 9.1深度缓存器算法 9.2区间扫描线算法 9.3深度排序算法 9.4区域细分算法 9.5光线投射算法 9.6BSP树 9.7多边形区域排序算法 9.8OpenGL中的消隐处理 第10章真实感图形绘制 10.1简单光照模型 10.1.1环境光 10.1.2漫反射光 10.1.3镜面反射光 10.1.4光强衰减 10.1.5颜色 10.2基于简单光照模型的多边形绘制 10.2.1恒定光强的多边形绘制 10.2.2Gouraud明暗处理 10.2.3Phong明暗处理 10.3透明处理 10.4产生阴影 10.5模拟景物表面细节 10.5.1用多边形模拟表面细节 10.5.2纹理的定义和映射 10.5.3凹凸映射 10.6整体光照模型与光线追踪 10.6.1整体光照模型 10.6.2Whitted光照模型 10.6.3光线跟踪算法 10.6.4光线跟踪反走样 10.7 OpenGL中的光照与表面绘制函数 10.7.1 OpenGL点光源 10.7.2 OpenGL全局光照 10.7.3 OpenGL表面材质 10.7.4 OpenGL透明处理 10.7.5 OpenGL表面绘制 10.7.6 实例 10.8 OpenGL中的纹理映射
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图形空间

文章不错,赞赏鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值