第一讲1.计算机图形学的研究内容什么是计算机图形学?(1/2)什么是计算机图形学?(2/2)什么是交互式计算机图形学?(1/3)什么是交互式计算机图形学?(2/3)什么是交互式计算机图形学?(3/3)基本概念——图形图形表示方法相关学科图像处理图像分析2.图形学发展历史计算机图形学的发展历史现代计算机图形学的发展硬件的对比现代计算机图形学的发展模型与渲染交互式图形学的概念框架图形库3.图形学应用领域图形学的应用设计信息显示仿真VirtualReality用户界面超媒体用户界面4.相关知识软件兼容性和图形标准官方标准APIs的嵌入标准典型的图形系统好的图形需要什么?(1/2)好的图形需要什么?(2/2)ACMSIGGRAPH会议资料查询作业第二讲数字图像基础1.基础概念计算机图形系统例子:一个简单程序(P23code)图形系统的概念框架图形处理器Renderfarms光栅&像素像素(Pixel)着色顶点顶点(Vertex)着色扫描线刷新频率分辨率例子纵横比2.图形输入设备输入设备3D输入设备图形输入设备3.图形输出设备图形输出设备硬拷贝设备3D图形设备CRT显示器彩色CRTs局限性液晶显示器(LiquidCrystalDisplays)LCDs光栅显示光栅显示器内存映射显存(帧缓冲存储器)显存大小的计算Avatar引发的3D浪潮(前沿)三维电视问题提出3D显示技术原理技术手段?立体显示技术分类问题?MIT“第六感”涉及的技术4.图形文件图形文件点阵图形及其表示参数图形及其表示作业第三讲(第四章)扫描转换3.1扫描转换直线直线的扫描转换寻找下一个像素数字微分法(DDA)P35DDA算法DDA算法实例DDA算法Bresenham画线算法竖直距离Bresenham画线算法Bresenham算法实例Bresenham画线算法3.2圆的扫描转换圆的扫描转换圆的扫描转换(正负法)圆的扫描转换(中点法)圆的扫描转换中点画圆实例圆的扫描转换圆的扫描转换(Bresenham算法)3.3椭圆的扫描转换椭圆的扫描转换作业第四讲(第四章)1.基本概念光栅图形的基本概念多边形的顶点表示多边形的点阵表示多边形的扫描转换2.区域填充·四连通区域和八连通区域·连通区域的种子填充算法点阵表示的区域填充区域的类型内部表示区域种子填充算法边界表示区域种子填充算法边界表示种子填充算法演示3.多边形的扫描转换·逐点判断算法·扫描线算法·连贯性概念:区域、扫描线、边·奇异点的处理·算法的数据结构与实现逐点判断算法逐点判断算法中的奇异情况逐点判断算法的不足相邻像素之间的连贯性区域连贯性扫描线连贯性边的连贯性奇异点奇异点的分类奇异点的处理多边形扫描转换算法边的数据结构边的数据结构实例分类的边表(ET)分类的边表实例活性边表(AEL)活性边表实例多边形扫描转换算法多边形扫描转换实例多边形扫描转换矩形填充4.多边形的扫描转换与区域填充的比较多边形扫描转换与区域填充比较5.字符的扫描转换字符的扫描转换位图字体BitBlt/RasterOp(1/3)BitBlt/RasterOp(2/3)BitBlt/RasterOp(3/3)轮廓字体6.反走样走样走样现象举例采样和重构点的采样反走样提高分辨率区域取样像素移位GeForce3-MultisamplingATISmoothvision作业第五讲三维基础1.物体的几何表示·线框模型物体的几何表示线框模型2.面模型·多边形表示面模型物体的多边形表示实例物体的多边形表示多边形表示物体的主要来源扫描重建与等值面多边形物体多边形表示物体的主要来源多边形表示方法:OBJ格式多边形表示的OBJ格式数据结构三角形网格三角形网格表示的数据结构半边结构(Half-EdgeStructure)半边结构的实例关于半边结构多边形表示的优势多边形表示的不足面模型多边形表示的大规模场景:草地多边形表示的复杂物体:油轮大规模网格模型:雕塑3.体模型·实体CSG表示·实体建模技术物体的CSG树表示CSG树表示的实例物体CSG树表示的分析实体模型实体建模技术体素造型布尔运算Sweep操作面操作基于模型特征参数建模4.自然景物表示方法(分形理论)自然景物表示方法分形举例:Koch雪花曲线海岸线问题分形基于分形方法生成山基于分形方法生成山:一维实例基于分形方法生成山基于分形方法生成山的实例L-系统:植物建模L-系统实例L-系统实例的图示基于L-系统的植物建模实例L-系统:植物建模基于L-系统生成的花与树木粒子系统粒子系统一般性描述基于粒子系统的火焰与瀑布自然景物造型在计算机中生成的复杂场景第六讲几何与坐标变换图形变换1.二维变换·基本变换(平移、旋转、缩放)·齐次坐标表示·其它变换(剪切、反射、复合)理解2D图形变换顶点(Vertex)平移(Translation)旋转(Rotation,关于原点)缩放(Scale,关于原点)T,R,S的组合变换齐次坐标(P78)二维平移二维旋转二维放缩剪切变换(Shear)对称(反射)变换复合变换实例P102三维模型变换:平移三维模型变换:放缩三维模型变换:旋转三维模型变换x方向上3D错切变换课堂练习2.三维变换·场景坐标系和造型变换(基本变换)·视点坐标系和取景变换·投影坐标系和投影变换·屏幕坐标系和设备变换三维变换的基本概念三维变换流程图三维变换中的各种坐标系场景坐标系和模型变换三维模型变换:平移三维模型变换:放缩三维模型变换:旋转三维模型变换x方向上3D错切变换视点坐标系和取景变换视点坐标系的交互建立投影坐标系和投影变换投影变换的基本概念投影分类平行投影正平行投影斜投影透视投影关于透视投影点的透视变换(P77)透视变换变换矩阵的统一表示例题视域四棱锥裁剪规格化设备坐标和设备变换屏幕坐标系和视窗变换第七讲颜色与着色模型1.光和颜色颜色色彩视觉常见的颜色模型CIEXYZ颜色模型CIE色度图色度图中纯色波长CIE颜色空间CIE颜色空间例题CIE颜色模型的特点CIELab颜色模型CIELab颜色模型的特点Photoshop中的CIELabRGB颜色模型RGB颜色模型的特点CMY颜色模型RGB模型和CMY模型转换关系HSV颜色模型HSV颜色模型的特点NTSCYIQ颜色模型YIQ颜色模型2.光照明模型光照明模型泛光模型Lambert漫反射模型Phong模型Whitted模型光照明模型的进一步完善3.插值着色法多边形物体的明暗处理(Shading)FlatShadingFlatShadingGouraudShadingPhongShading课堂练习第八讲裁剪算法1.直线裁剪·直接求交算法·Cohen-Sutherland编码算法·梁友栋-Barsky算法图形裁剪点的裁剪直线的裁剪直接求交算法编码算法(P132)Cohen_Sutherland算法端点分类Cohen_Sutherland算法C_S算法例题3DC_S算法Cohen_Sutherland算法Liang-Barsky裁剪算法(P135)Liang-Barsky裁剪算法例题Liang-Barsky裁剪算法2.多边形裁剪·Sutherland_Hodgman算法(逐边裁剪算法)·Weiler_Atherton算法*(双边裁剪算法)多边形剪裁Sutherland-Hodgman算法Weiler-Athenton算法*3.字符的裁剪字符裁剪课堂练习作业第九讲人机交互1.用户界面(接口)概述用户界面的重要性几个问题实例1实例2UI的重要性人机交互UI的发展UI的三元素2.逻辑设备与输入控制方式逻辑设备与输入控制方式逻辑设备输入方式请求方式事件方式事件类型CallbacksGLUTcallbacksGLUTEventLoopdisplaycallback3.交互式图形设计方法基本交互技术基本交互技术——定位基本交互技术——笔划基本交互技术——定值基本交互技术——选择基本交互技术——字符串输入图形交互技术几何约束引力场拖动橡皮筋技术操作柄技术拾取技术其他的交互技术4.UI设计用户界面设计案例:MacintoshOS的UI设计UI评估及方法界面评估清单界面评估5.UI发展趋势UI的发展趋势WIMP的优势WIMP的劣势WIMPGUI的局限性后-WIMP接口后-WIMP特征后-WIMP世界WIMPGUI从HCI到HHI(Human-HumanInteraction)第十讲曲线与曲面一、曲线与曲面的表示方法·显示表示法·隐式表示·参数形式·特点分析什么是好的表示方法?显示表示隐式表示参数曲线参数直线参数曲面参数平面法向量参数表示方法的优点曲线曲面拟合方法插值vs.逼近曲线段参数连续性参数连续性&几何连续性二、常用曲线与曲面·曲线曲面类型·Hermite·Bezier·B-spline·性能分析三次Hermite曲线三次Hermite曲线基函数基函数的作用三次Hermite曲线的形状控制三次Hermite曲线例子Bézier曲线Bézier曲线的应用Bézier曲线三次Bézier曲线三次Bézier曲线基函数Bernstein基函数Bézier曲线性质(P183-184)Bézier曲线分析Bezier曲面双三次Bezier曲面双三次Bézier曲面实例Bézier曲面性质Bézier曲面的不足B-样条(B-Splines)B-样条曲线三次B-样条曲线三次B-样条曲线基函数B-样条曲线的定义B-样条基函数实例B-样条曲线性质B-样条曲面B-样条曲面的重要性质B-样条曲面实例B-样条曲线曲面分析NURBS引入NURBS曲线的原因NURBS曲线NURBS曲线的权因子NURBS曲线的例子NURBS曲线表示圆NURBS曲面NURBS曲面表示球面三、曲线曲面的绘制·绘制曲线的主要方法·直线近似·前向差分·Bezier曲线与曲面的递归细分方法·其它多项式曲线如何转换成Bezier多项式?deCasteljau递推算法二次Bezier曲线实现过程三次Bezier曲线实现过程四次Bezier曲线实现过程四、OpenGL中的曲线与曲面·OpenGL求值器·如何绘制曲线与曲面·讨论OpenGL二次曲线·GLUT二次曲线·GLU二次曲线OpenGL支持什么?一维求值器设置一个求值器例子计算例子Bezier曲面例子UtahTeapot用线(line)绘制用四边形绘制均匀网格带光照的绘制二次曲面GLUT对象(P121)GLUT理想实体(P121)GLU中的二次曲面对象定义一个圆柱体第十一计算机动画计算机动画例1:物体静止,摄像机在运动例2:摄像机静止,物体运动动画形成的视觉原理计算机动画的主要两个类别计算机动画技术1.关键帧技术关键帧技术例子线性插值顶点线性插值线性插值的问题2.样条驱动技术样条曲线插值样条驱动技术例子样条驱动动画技术按参数采样与按弧长采样的对比例子常用的曲线类型Hermite曲线Bezier曲线Catmull-Rom曲线B-Spline/NURBS曲线变形动画技术(Morphing)Morphing空间变形二维多边形形状渐变二维图像morphing技术实现Morphing的传统技术图像morphing的过程三维morphing技术动画演示简单的三维Morphing应用实例4.过程动画技术例子动画演示粒子系统应用例子泡沫、溅起的水花采用粒子系统生成动画演示生成粒子系统某瞬间画面的基本步骤5.关节动画例子可以用于关节动物也可以用于无生命的物体以创建拟人效果6.正运动学方法逆运动学方法逆运动学的求解动力学方法7.运动捕获和运动重现应用实例运动捕获的三种技术运动重现(MotionRetargeting)把运动曲线应用于一个新的角色动画演示演员和虚拟角色的一致性运动模糊应用例子动画演示第十二图形软件支撑平台1.常用图形支撑软件简介常用图形支撑软件简介OpenGL简介DirectX简介DirectX结构基于场景图的图形开发工具面向VR应用的图形开发工具2.网络图形开发VRML/X3D简介Java3D简介3.计算机动画软件二维动画软件Flash动画例子Flash动画制作软件MacromediaFlash三维动画