1、计算机图形学计算机图形学引言引言路路 通通 博士博士、教授、教授 Department of Computer Science and Technology南京大学计算机科学与技术系课程南京大学计算机科学与技术系课程计算机图形学计算机图形学一、计算机图形学简介一、计算机图形学简介动作捕捉动作捕捉模型渲染模型渲染真假融合真假融合1个老虎的镜头需要几周时个老虎的镜头需要几周时间调整细节间调整细节60多种海水效果多种海水效果,耗时耗时1周周到到3个月不等个月不等从逐帧到捕捉从逐帧到捕捉1915年的年的“Rotoscope”:画家直接照着:画家直接照着放映动画一帧一帧画。放映动画一帧一帧画。1985年
2、,年,Sun-1工作站用工作站用17个小时算出通个小时算出通过过4个摄像机跟踪的个摄像机跟踪的8个点的三维运动轨个点的三维运动轨迹,整个动作时长仅迹,整个动作时长仅3秒。光学跟踪使秒。光学跟踪使用至今。用至今。1993年,年,Stan Winston工作室和工业光工作室和工业光魔(魔(ILM)联手,通过机械动作捕捉来)联手,通过机械动作捕捉来创造首批创造首批CG数字恐龙。数字恐龙。1994年,年,Motion Analysis 公司首次提出公司首次提出“面部捕捉面部捕捉”(Facial Capture)这一概)这一概念。念。2007年开始无标记的面部身体捕捉。年开始无标记的面部身体捕捉。从捕捉
3、到动画的产生 用多个摄像机用多个摄像机同时拍摄多个角度同时拍摄多个角度 利用利用100微米距离扫描得到非常精确的面部高低数据。微米距离扫描得到非常精确的面部高低数据。形成形成3D模型模型。匹配不同位置图片中的像素,并得到连续帧的像素运动。匹配不同位置图片中的像素,并得到连续帧的像素运动轨迹,也可以手工建模后将表情轨迹定位到模型上。轨迹,也可以手工建模后将表情轨迹定位到模型上。根据照片绘制皮肤,还可以专门为头发、眼睛、牙齿这些元素根据照片绘制皮肤,还可以专门为头发、眼睛、牙齿这些元素专门制作精细的专门制作精细的绘制算法绘制算法。配合起来并加入照明效果的计算获。配合起来并加入照明效果的计算获得精致
4、画面得精致画面真实和虚拟的融合(本杰明本杰明巴顿奇事巴顿奇事)根据实拍,创建每一帧场景的根据实拍,创建每一帧场景的照明数据,替身带着蓝色的头照明数据,替身带着蓝色的头套进行表演。套进行表演。皮特的表演用来生成头部和表皮特的表演用来生成头部和表情动画(情动画(3D模型)并替换实模型)并替换实拍场景中的头部。拍场景中的头部。(碟中谍碟中谍4)l隐形幕布:根据人眼位隐形幕布:根据人眼位置显示正确的场景置显示正确的场景L L1 1=CL=CL2 2L L1 1L L2 2L L1 1=CL=CL2 2L L1 1L L2 2P Pi i-3 3P Pi i-4 4i+1i+1P Pi i-2 2P P
5、i i-1 1P PP Pi iu uu uu ui iu ui i+1+1u ui i+2+2u ui i-1 1P(u)P(u)P Pi i-3 3P Pi i-4 4i+1i+1P Pi i-2 2P Pi i-1 1P PP Pi iP Pi i-3 3P Pi i-3 3P Pi i-3 3P Pi i-4 4P Pi i-4 4P Pi i-4 4i+1i+1P Pi+1i+1P Pi+1i+1P Pi i-2 2P Pi i-2 2P Pi i-2 2P Pi i-1 1P Pi i-1 1P Pi i-1 1P PP Pi iP Pi iP Pi iu u u uu uu ui
6、 iu ui i+1+1u ui i+2+2u ui i-1 1u uu ui iu ui iu ui i+1+1u ui i+1+1u ui i+2+2u ui i+2+2u ui i-1 1u ui i-1 1P(u)P(u)P(u)P(u)car“计算机图形学”谁在做?谁在用?http:/www.graphics.stanford.edu/http:/groups.csail.mit.edu/graphics/http:/www.tech.purdue.edu/cg/http:/ of information)(Display of information)统计图表统计图表 数据可视化数
7、据可视化 设计设计 (Design)(Design)仿真和动画仿真和动画 (Simulation and Animation)(Simulation and Animation)计算机艺术,计算机电影,计算机游戏计算机艺术,计算机电影,计算机游戏 飞行、飞行、驾驶驾驶模拟等模拟等 虚拟现实环境虚拟现实环境 用户接口用户接口 (User interfaces)(User interfaces)图形用户界面图形用户界面GUI3D3D2D2D-3D建模建模渲染渲染2D显示显示动画动画UI和交互和交互“计算机图形学”做什么?怎么用?从研究的角度看几何模型构造技术几何模型构造技术(参数化特征造型,参数化
8、特征造型,任意曲面体的三维重建任意曲面体的三维重建)图形生成技术图形生成技术 (真实感真实感/非真实感绘制)非真实感绘制)图形的操作与处理方法图形的操作与处理方法图形信息的存储图形信息的存储,检索与交换技术检索与交换技术人机交互与用户接口技术人机交互与用户接口技术动画与游戏技术动画与游戏技术图形硬件与输出技术图形硬件与输出技术图形标准与图形软件包的研究开发图形标准与图形软件包的研究开发可视化(可视化(远程手术远程手术)虚拟现实技术虚拟现实技术3D3D2D2D-3D建模建模渲染渲染2D显示显示动画动画UI和交互和交互可以学些什么?Computer Graphics Visualization I
9、ntroduction to 3D Animation Digital Lighting and Rendering Digital Video&Audio Raster Imaging for CG Vector Imaging for CG Human Factors of UI Design Visual Intelligence&Perception in CGT3D3D2D2D-3D建模建模渲染渲染2D显示显示动画动画UI和交互和交互教材计算机图形学计算机图形学(第三(第三/四版)四版)Computer Graphics with OpenGL著:著:Donald Hearn&M.P
10、auline Baker翻译:蔡士杰等(第三版)翻译:蔡士杰等(第三版)出版:电子工业出版社出版:电子工业出版社参考交互式计算机图形学(第四版)交互式计算机图形学(第四版)基于基于OpenGL的自顶向下方法的自顶向下方法Interactive Computer Graphics A Top-Down Approach Using OpenGL著:著:Edward Angel 美美出版:电子工业出版社出版:电子工业出版社计算机图形学课程的目标介绍经典介绍经典系统了解系统了解局部深入局部深入激发兴趣激发兴趣融会贯通融会贯通计算机图形学课程的内容综述综述几何变换几何变换观察流水线观察流水线 裁剪裁剪
11、基本图元基本图元2D&3D基本原理基本原理&最新动态最新动态OpenGL函数函数曲线曲面曲线曲面 实体造型实体造型可见面判别可见面判别 光照光照 面绘制面绘制UI 动画动画 建模建模 观察观察 显示显示其它其它图形学图形学和和图形系统图形系统坐标系统坐标系统南京大学计算机科学与技术系南京大学计算机科学与技术系 路路 通通 博士博士 计算机图形学计算机图形学课程讲课程讲义义内容提要内容提要第一讲第一讲 概述概述第二讲第二讲 图元图元 图元及其属性的生成和反走样图元及其属性的生成和反走样第三讲第三讲 几何变换几何变换 坐标系变换坐标系变换第四讲第四讲 层次式建模和建模变换层次式建模和建模变换第五讲
12、第五讲 观察观察 2D3D场景的观察场景的观察投影投影裁剪裁剪第六讲第六讲 可见面判别可见面判别第七讲第七讲 基本光照模型:面基本光照模型:面/体绘制体绘制,颜色雾气透明阴颜色雾气透明阴影影第八讲第八讲 全局光照模型之光线跟踪全局光照模型之光线跟踪第九讲第九讲 全局光照模型之辐射度和纹理全局光照模型之辐射度和纹理第十讲第十讲 曲线曲面曲线曲面 Bezier,B,NURBS,多边形网格,多边形网格第十一讲第十一讲 实体造型实体造型第十二讲第十二讲 UI和计算机动画和计算机动画计算机图形学概述 计算机图形学发展简史 计算机图形学的研究内容 计算机图形学中的基本概念 计算机图形学的相关学科 计算机图
13、形学的应用实例 计算机图形学的发展方向计算机图形学概述 计算机图形学发展简史 计算机图形学的研究内容 计算机图形学中的基本概念 计算机图形学的相关学科 计算机图形学的应用实例 计算机图形学的发展方向二维线画图元的生成 二维线画图元的基本概念 线生成算法及属性控制 圆生成算法及属性控制 椭圆生成算法及属性控制 其它曲线生成算法及属性控制 并行算法与反走样方法二维线画图元的生成 二维线画图元的基本概念 线生成算法及属性控制 圆生成算法及属性控制 椭圆生成算法及属性控制 其它曲线生成算法及属性控制 并行算法与反走样方法计算机图形显示原理 图形系统逻辑构成 视频显示设备 光栅扫描系统原理 随机扫描系统
14、原理 图形输入设备 硬拷贝设备三维图形的基本概念 三维图形的基本问题 平面几何投影 观察坐标系中的投影变换 三维图形的显示流程 三维图形裁剪的基本方法 三维图形变换三维图形的基本概念 三维图形的基本问题 平面几何投影 观察坐标系中的投影变换 三维图形的显示流程 三维图形裁剪的基本方法 三维图形变换曲线与曲面基本理论 曲线曲面的数学基础 基本曲线的构造和表示 Bezier曲线和曲面 B样条曲线和曲面 NURBS曲线和曲面曲线与曲面基本理论 曲线曲面的数学基础 基本曲线的构造和表示 Bezier曲线和曲面 B样条曲线和曲面 NURBS曲线和曲面二维裁剪方法 二维裁剪的基本概念 点的裁剪算法 线段的
15、裁剪算法 多边形的裁剪算法 曲线的裁剪算法 字符的裁剪算法二维裁剪方法 二维裁剪的基本概念 点的裁剪算法 线段的裁剪算法 多边形的裁剪算法 曲线的裁剪算法 字符的裁剪算法三维实体的表示 三维实体的基本定义和表示 正则集合运算 空间分割表示 扫掠表示 边界表示 构造体素表示三维实体的表示 三维实体的基本定义和表示 正则集合运算 空间分割表示 扫掠表示 边界表示 构造体素表示二维填充图元的生成 区域填充的基本概念 扫描转换多边形算法 内、外测试算法 曲线边界区域的扫描线填充 区域填充算法及图像填充区域 字符的表示与输出二维填充图元的生成 区域填充的基本概念 扫描转换多边形算法 内、外测试算法 曲线
16、边界区域的扫描线填充 区域填充算法及图像填充区域 字符的表示与输出二维图形变换 图形变换的数学基础 二维图形基本变换 齐次坐标与变换矩阵表示 二维复合变换及其它变换 坐标系之间的变换二维图形变换 图形变换的数学基础 二维图形基本变换 齐次坐标与变换矩阵表示 二维复合变换及其它变换 坐标系之间的变换真实感图形显示初步 简单光照模型 多边形绘制方法 物体表面细节模拟 阴影产生方法 透明处理方法 光线跟踪算法真实感图形显示初步 简单光照模型 多边形绘制方法 物体表面细节模拟 阴影产生方法 透明处理方法 光线跟踪算法三维图形显示三维图形显示三维图形显示三维图形显示二维图形生成二维图形生成二维图形生成二
17、维图形生成图形基本原理图形基本原理图形基本原理图形基本原理图形学相关技术综述 计算机动画技术综述 虚拟现实技术综述 可视化技术综述 真实感图形技术综述图形学相关技术综述 计算机动画技术综述 虚拟现实技术综述 可视化技术综述 真实感图形技术综述计算机图形学概述 计算机图形学发展简史 计算机图形学的研究内容 计算机图形学中的基本概念 计算机图形学的相关学科 计算机图形学的应用实例 计算机图形学的发展方向计算机图形学概述 计算机图形学发展简史 计算机图形学的研究内容 计算机图形学中的基本概念 计算机图形学的相关学科 计算机图形学的应用实例 计算机图形学的发展方向二维线画图元的生成 二维线画图元的基本
18、概念 线生成算法及属性控制 圆生成算法及属性控制 椭圆生成算法及属性控制 其它曲线生成算法及属性控制 并行算法与反走样方法二维线画图元的生成 二维线画图元的基本概念 线生成算法及属性控制 圆生成算法及属性控制 椭圆生成算法及属性控制 其它曲线生成算法及属性控制 并行算法与反走样方法计算机图形显示原理 图形系统逻辑构成 视频显示设备 光栅扫描系统原理 随机扫描系统原理 图形输入设备 硬拷贝设备三维图形的基本概念 三维图形的基本问题 平面几何投影 观察坐标系中的投影变换 三维图形的显示流程 三维图形裁剪的基本方法 三维图形变换三维图形的基本概念 三维图形的基本问题 平面几何投影 观察坐标系中的投影
19、变换 三维图形的显示流程 三维图形裁剪的基本方法 三维图形变换曲线与曲面基本理论 曲线曲面的数学基础 基本曲线的构造和表示 Bezier曲线和曲面 B样条曲线和曲面 NURBS曲线和曲面曲线与曲面基本理论 曲线曲面的数学基础 基本曲线的构造和表示 Bezier曲线和曲面 B样条曲线和曲面 NURBS曲线和曲面二维裁剪方法 二维裁剪的基本概念 点的裁剪算法 线段的裁剪算法 多边形的裁剪算法 曲线的裁剪算法 字符的裁剪算法二维裁剪方法 二维裁剪的基本概念 点的裁剪算法 线段的裁剪算法 多边形的裁剪算法 曲线的裁剪算法 字符的裁剪算法三维实体的表示 三维实体的基本定义和表示 正则集合运算 空间分割表
20、示 扫掠表示 边界表示 构造体素表示三维实体的表示 三维实体的基本定义和表示 正则集合运算 空间分割表示 扫掠表示 边界表示 构造体素表示二维填充图元的生成 区域填充的基本概念 扫描转换多边形算法 内、外测试算法 曲线边界区域的扫描线填充 区域填充算法及图像填充区域 字符的表示与输出二维填充图元的生成 区域填充的基本概念 扫描转换多边形算法 内、外测试算法 曲线边界区域的扫描线填充 区域填充算法及图像填充区域 字符的表示与输出二维图形变换 图形变换的数学基础 二维图形基本变换 齐次坐标与变换矩阵表示 二维复合变换及其它变换 坐标系之间的变换二维图形变换 图形变换的数学基础 二维图形基本变换 齐
21、次坐标与变换矩阵表示 二维复合变换及其它变换 坐标系之间的变换真实感图形显示初步 简单光照模型 多边形绘制方法 物体表面细节模拟 阴影产生方法 透明处理方法 光线跟踪算法真实感图形显示初步 简单光照模型 多边形绘制方法 物体表面细节模拟 阴影产生方法 透明处理方法 光线跟踪算法三维图形显示三维图形显示三维图形显示三维图形显示二维图形生成二维图形生成二维图形生成二维图形生成图形基本原理图形基本原理图形基本原理图形基本原理图形学相关技术综述 计算机动画技术综述 虚拟现实技术综述 可视化技术综述 真实感图形技术综述图形学相关技术综述 计算机动画技术综述 虚拟现实技术综述 可视化技术综述 真实感图形技
22、术综述我的联系方式我的联系方式 仙林校区计算机科学与技术楼仙林校区计算机科学与技术楼1007 二、计算机图形学学科发展二、计算机图形学学科发展南京大学计算机科学与技术系南京大学计算机科学与技术系 路路 通通 博士博士 计算机图形学计算机图形学课程讲课程讲义义内容提要内容提要Vis工程图纸流场的可视化体视化技术气象卫星云图可视化结构可视化结构原始数据原始数据数据表数据表数据视图数据视图数据变换可视化映射视图变换数据可视化形式可视化结构可视化结构原始数据原始数据数据表数据表数据视图数据视图数据变换可视化映射视图变换数据可视化形式9%3%4%13%29%42%9%3%4%13%29%42%网页结构图
23、网页设计图DallasChicagoSan Francisco(2)SydneyBostonDetroitTokyoNew York(2)W ashington D.C.AtlantaLondonParisK鰈 nStockholmM adridUtrechtTorontoDenverLosAngelesM inneapolisBrazilArgentinaColom biaGreaterChinaM alaysiaSingaporeHam bourgM chenDistributorsSales officesDenm arkNorwaySwedenFinlandSwitzerlandAus
24、triaBelgiumItalySpain&PortugalM exicoAustraliaNew ZealandTaiw anJapanBahrainSouth AfricaIndiaKuwaitLebanonUAEM exicoBrusselsChileBeijingDallasChicagoSan Francisco(2)SydneyBostonDetroitTokyoNew York(2)W ashington D.C.AtlantaLondonParisK鰈 nStockholmM adridUtrechtTorontoDenverLosAngelesM inneapolisBraz
25、ilArgentinaColom biaGreaterChinaM alaysiaSingaporeHam bourgM chenDistributorsSales officesDenm arkNorwaySwedenFinlandSwitzerlandAustriaBelgiumItalySpain&PortugalM exicoAustraliaNew ZealandTaiw anJapanBahrainSouth AfricaIndiaKuwaitLebanonUAEM exicoBrusselsChileBeijing三维建模三维建模三维建模三维建模真实感模拟真实感模拟真实感模拟真实
26、感模拟物理规则物理规则物理规则物理规则知识表达知识表达知识表达知识表达传统动画方法传统动画方法传统动画方法传统动画方法造型表达造型表达造型表达造型表达运动表达运动表达运动表达运动表达三维动画三维动画三维动画三维动画三维建模三维建模三维建模三维建模真实感模拟真实感模拟真实感模拟真实感模拟物理规则物理规则物理规则物理规则知识表达知识表达知识表达知识表达传统动画方法传统动画方法传统动画方法传统动画方法造型表达造型表达造型表达造型表达运动表达运动表达运动表达运动表达三维动画三维动画三维动画三维动画n=0 Fn=1 FF+F-Fn=2 FF+F-F-F-F+FF+F-F+FF-F-F+F-Fn=0 Fn
27、=1 FF+F-Fn=2 FF+F-F-F-F+FF+F-F+FF-F-F+F-F缩放拷贝旋转平移仿射变换文法描述粒子系统模拟植物的形态粒子系统模拟雨水粒子系统模拟宇宙(d)杉(b)枫(a)竹(c)梅(无花/有花)(c)柏 植物V:F,+,-,w:FP:F-F+FF-FF几何解释F:向前画一条线+:右转角度-:左转角度:压栈:出栈n=1,F+FF-FFn=0 Fn=2,F+FF-FF+F+FF-FFF+FF-FF-F+FF-FFF+FF-FF(b)植物生成的形状文法植物V:F,+,-,w:FP:F-F+FF-FF几何解释F:向前画一条线+:右转角度-:左转角度:压栈:出栈n=1,F+FF-FF
28、n=0 Fn=2,F+FF-FF+F+FF-FFF+FF-FF-F+FF-FFF+FF-FF(b)植物生成的形状文法 Koch 雪花曲线 V:F,+,-w:F P:F-F-F+F-F 几何解释 F:向前画一条线 +:右转角度 -:左转角度 n=0 F n=1 FF+F-F n=2 FF+F-F-F-F+FF+F-F+FF-F-F+F-F(a)Koch 雪花曲线生成的形状文法 UnnaturalInflexibilityInefficient Computer-OrientedHuman-OrientedHumanizationIntelligenceIndividualitiesFormalI
29、nformalUnnaturalInflexibilityInefficient Computer-OrientedComputer-OrientedHuman-OrientedHuman-OrientedHuman-OrientedHumanizationIntelligenceIndividualitiesFormalInformal三、计算机图形系统的构成及编程三、计算机图形系统的构成及编程工具工具交互式图形系统的组成 硬件系统硬件系统 主计算机主计算机 输出设备:图形显示器输出设备:图形显示器、绘图仪、打印机、绘图仪、打印机 输入设备:键盘、鼠标仪、图形输入板输入设备:键盘、鼠标仪、图
30、形输入板 存储设备:磁盘、磁带、光盘机存储设备:磁盘、磁带、光盘机 软件系统软件系统 操作系统操作系统 DOS MS-Windows UNIX Linux 图形软件图形软件 GKS PHIGS OPEN GL 其它接口其它接口.应用软件应用软件 CorelDraw,AutoCAD.高级语言高级语言 Visual C+JAVA .视频显示设备 CRT(Cathod-Ray Tube)CRT(Cathod-Ray Tube)显示器显示器 随机扫描随机扫描CRT显示器:显示器:Vector/Random Display 光栅扫描光栅扫描CRT显示器:显示器:Raster Display 平板显示器平
31、板显示器 液晶显示器液晶显示器LCD 等离子体显示器等离子体显示器PDP 平板彩色平板彩色CRT 三维观察设备三维观察设备宽屏显示(SGI Reality Center 3300W)monitors SGI Graphics Cluster曲面式屏幕 键盘键盘 鼠标鼠标 机械式、光学式机械式、光学式 旋钮旋钮 跟踪球跟踪球 操纵杆操纵杆 数据手套数据手套输入设备l数字化仪数字化仪 l图像扫描仪图像扫描仪l触摸屏触摸屏 光学、电子、声学光学、电子、声学l光笔光笔l语音系统语音系统 硬拷贝输出设备 打印机打印机 击打式击打式:字符式字符式,行式行式,针式针式非击打式非击打式:激光激光,喷墨喷墨,静
32、电静电,热转印热转印 绘图仪绘图仪 笔式笔式,喷墨喷墨,静电静电图形软件 专业应用软件包:专业应用软件包:提供非程序员使用的接口提供非程序员使用的接口 建筑、医学、商用、工程建筑、医学、商用、工程CADCAD等等 通用图形软件包:通用图形软件包:提供可用于高级语言的图提供可用于高级语言的图形函数库(形函数库(CG API)CG API)例子:描述基本图元(直线、圆)的函数例子:描述基本图元(直线、圆)的函数 可移植性可移植性 应用程序在不同系统间的可移植性应用程序在不同系统间的可移植性;应用程序和图形设备的可移植性应用程序和图形设备的可移植性;图形数据的可移植性图形数据的可移植性;GKSGKS
33、,PHIGSPHIGS,OpenGLOpenGL,DirectX,VRMLDirectX,VRML通用图形软件包的基本功能 建立和管理图建立和管理图 生成输出图元生成输出图元(graphics output primitivegraphics output primitive)设定图元属性设定图元属性(attributeattribute)几何变换:几何变换:改变对象大小、位置、方向等改变对象大小、位置、方向等 建模变换:建模变换:例如描述复杂对象的树形结构例如描述复杂对象的树形结构 观察变换:观察变换:指定投影类型、观察位置、输出范指定投影类型、观察位置、输出范围等围等 输入函数:输入函数:
34、处理来自输入设备的数据流处理来自输入设备的数据流 控制操作:控制操作:清屏,初始化等清屏,初始化等坐标表示及转换过程 建模坐标系建模坐标系modeling coordinatemodeling coordinate(局部(局部locallocal,主,主mastermaster)-单个对象位置、方向变换,多个对象的装配单个对象位置、方向变换,多个对象的装配 世界坐标系世界坐标系 WC(World Coordinate System)WC(World Coordinate System)-光照纹理计算,观察流水线,假想的照相机位置进行投影,光照纹理计算,观察流水线,假想的照相机位置进行投影,观察
35、坐标系观察坐标系-裁剪,约束坐标范围裁剪,约束坐标范围(-1-1,0-1)(-1-1,0-1)规范化设备坐标系规范化设备坐标系NDC(Normalized Device Coordinate System)NDC(Normalized Device Coordinate System)-识别可见部分,坐标变换,扫描转换到刷新缓存识别可见部分,坐标变换,扫描转换到刷新缓存,仅保留二维坐标仅保留二维坐标 设备(屏幕)坐标系设备(屏幕)坐标系DC(Device Coordinate System)DC(Device Coordinate System)坐坐标标转转换换过过程程建模坐标系建模坐标系世界
36、坐标系世界坐标系观察坐标系观察坐标系设备坐标系设备坐标系图图例例50251030建模坐标系建模坐标系世界坐标系世界坐标系50ZZZZZ观察坐标系观察坐标系1观察坐标系观察坐标系2zOpenGL简介 OpenGLOpenGL三维图形标准三维图形标准是由是由ATATT T、IBMIBM、DECDEC、SUNSUN、HPHP、MicrosoftMicrosoft和和SGISGI等多家公司在等多家公司在GLGL图图形库形库标准的基础上联合推出的开放式标准,它标准的基础上联合推出的开放式标准,它结束了只能依赖于昂贵的图形工作站及复杂的结束了只能依赖于昂贵的图形工作站及复杂的三维图形软件从事计算机三维图形
37、应用的历史,三维图形软件从事计算机三维图形应用的历史,使程序员能够在使程序员能够在PCPC机上用机上用C C语言开发出复杂的语言开发出复杂的三维图形应用。三维图形应用。基本语法:基本语法:glBeginglBegin GL_CCW GL_CCW GLint GLint 相关库:核心库,相关库:核心库,GLUGLU,GLXGLX,GLUTGLUTOpenGL简介 OpenGLOpenGL的几何建模思想的几何建模思想 点构成线点构成线 线及其拓扑结构组成多边形平(曲)面线及其拓扑结构组成多边形平(曲)面 面及其拓扑结构组成组成三维体面及其拓扑结构组成组成三维体 绘制流水线:建模渲染投影绘制流水线:
38、建模渲染投影 OpenGLOpenGL的的Client-ServerClient-Server机制机制 C C(用(用OpenGLOpenGL绘制图形的应用程序)向绘制图形的应用程序)向S S(OpenGLOpenGL内内核)发送核)发送OpenGLOpenGL指令,指令,S S解释执行这些命令,最终解释执行这些命令,最终把处理过的图形命令送给视频显示驱动程序完成最把处理过的图形命令送给视频显示驱动程序完成最终的显示。终的显示。OpenGL例子Void main(int argc,char*argv)glutInit(&argc,argv);glutInitDisplayMode(GLUT_S
39、INGLE|GLUT_RGB);glutInitWindowPosition(50,100);glutInitWindowSize(400,300);glutCreateWindow();Init();glutDisplayFunc(lineSegment);glutMainLoop();OpenGL例子Void init()glClearColor(1.0,1.0,1.0,0.0);glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0,2000.0,0.0,1500.0);Void lineSegment()glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0,0.0,0.0);glBegin(GL_LINES);glVertex2i(1800,150);glVertex2i(100,1450);glEnd();glFlush();注意:注意:窗口坐标窗口坐标设备坐标设备坐标图形范围,图形坐标图形范围,图形坐标逻辑坐标逻辑坐标