




已阅读5页,还剩131页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 计算机图形学 主讲人 陈学工 tel 07318836763email csucxg 2 教材和参考书 教材计算机图形学 倪明田等 北京大学出版社 2000年 参考书1 OpenGL编程指南 第四版 DaveShreiner等 邓郑祥译 人民邮电出版社 2005年 2 计算机图形学 第三版 DonaldHearn 电子工业出版社 2004年 3 计算机图形学基础 唐泽圣等 清华大学出版社 2001年 3 本课程的学习内容 1 图形软件包2 用VC 编写OpenGL程序3 图形变换4 颜色和光照5 混合 反走样和雾6 显示列表 位图和图像7 纹理映射8 复杂图形绘制9 杂例 4 一 图形软件包 1 Direct3D和DirectXDirectX是微软公司的多媒体应用软件包 Direct3D是其中的一部分 DirectX支持图形 音响 应用程序安装和设备管理等 Direct3D至少支持游戏或其他应用中的12种3D图形效果处理 5 一 图形软件包 2 HeidiHeidi主要应用于CAD和CAM技术中 如AutoCAD 3DStudio以及3DSMAX Heidi是专业性强的软件包 在CAD和CAM领域应用比较广泛 在其它领域如多媒体或游戏软件中应用较少 6 一 图形软件包 3 OpenGLOpenGL是以SGI公司为首 联合IBM Intel等8家公司共同制定的3D图形标准 OpenGL与硬件无关 独立于操作系统 支持网络运行 7 二 用VC 编写OpenGL程序 1 OpenGL函数库基本库基本库是OpenGL的核心函数库 所有OpenGL操作都可用这些函数来实现 可以在平台之间移植 这些函数以 gl 为前缀 实用库实用库建立在基本库的基础之上 目的是为了减轻使用者的编程负担 这些函数以 glu 为前缀 辅助库提供窗口管理函数 事件处理函数和简单模型制作函数 这些函数以 aux 为前缀 Windows专用函数 8 二 用VC 编写OpenGL程序 2 帧缓存在OpenGL中 帧缓存由颜色缓存 深度缓存 模板缓存和累积缓存组成 颜色缓存 用于存储每个像素点的颜色 包括左前 左后 右前 右后 和辅助颜色缓存 深度缓存 用于存储每个像素点的深度值 模板缓存 用于将作图限制在屏幕中的某些部分 累积缓存 在RGBA模式中 用于将一系列图像累加成一幅图像 3 建立OpenGL控制台应用程序 NET 9 三 图形变换 1 投影voidglOrtho GLdoubleleft GLdoubleright GLdoublebottom GLdoubletop GLdoublezNear GLdoublezFar 函数功能 用一个正射投影矩阵右乘当前投影矩阵 输入参数 裁剪面left right bottom top zNear zFar 输出参数 无返回值 无voidglOrtho2D GLdoubleleft GLdoubleright GLdoublebottom GLdoubletop 10 三 图形变换 正射投影 11 三 图形变换 正射投影矩阵 12 三 图形变换 voidgluPerspective GLdoublefovy GLdoubleaspect GLdoublezNear GLdoublezFar 函数功能 设置一个透视投影矩阵 输入参数 视域的角度fovy 视域宽与高的比率 视点到近和远裁剪面的距离zNear和zFar 输出参数 无返回值 无 13 三 图形变换 voidglFrustum GLdoubleleft GLdoubleright GLdoublebottom GLdoubletop GLdoublezNear GLdoublezFar 函数功能 用一个透视投影矩阵右乘当前投影矩阵 输入参数 裁剪面left right bottom top 到近和远裁剪面的距离zNear和zFar 输出参数 无返回值 无 14 三 图形变换 透视投影 glFrustum near far left right bottom top viewpoint 15 三 图形变换 透视投影 glFrustum 矩阵 16 三 图形变换 2 视区变换voidglViewport GLintx GLinty GLintwidth GLintheight 函数功能 在窗口中定义一个视区 输入参数 视区左下角坐标 x y 视区的宽width 视区的高height 输出参数 无返回值 无 17 三 图形变换 3 裁剪变换voidglClipPlane GLenumplane constGLdouble equation 函数功能 定义附加裁剪平面 输入参数 参数plane表示裁剪平面索引号GL CLIP PLANEi i取0到到GL MAX CLIP PLANES 1之间的整数 参数equation表示三维平面方程Ax By Cz D 0的系数A B C和D构成的数组 输出参数 无返回值 无 18 三 图形变换 4 几何变换voidglRotate f d TYPEangle TYPEx TYPEy TYPEz 函数功能 对局部坐标系进行旋转 输入参数 旋转角度angle 旋转轴方向矢量 x y z 输出参数 无返回值 无 19 三 图形变换 voidglTranslate f d TYPEx TYPEy TYPEz 函数功能 对局部坐标系进行平移 输入参数 在坐标轴方向的平移量x y和z 输出参数 无返回值 无voidglScale f d TYPEx TYPEy TYPEz 函数功能 对局部坐标系进行缩放 输入参数 在坐标轴方向的缩放量x y和z 输出参数 无返回值 无 20 四 颜色和光照 1 绘图颜色voidglClearColor GLclampedred GLclampedgreen GLclampedblue GLclampedalpha 函数功能 设定清颜色缓冲区颜色值 voidglClear GLbitfieldmask 函数功能 清除指定的缓冲区 21 四 颜色和光照 voidglColor3 b f d s i ub ui us TYPEred TYPEgreen TYPEblue voidglColor4 b f d s i ub ui us TYPEred TYPEgreen TYPEblue TYPEalpha voidglColor3 b f d s i ub ui us v TYPE v voidglColor4 b f d s i ub ui us v TYPE v 函数功能 指定当前颜色 voidglIndex s i f d TYPEc voidglIndex s i f d TYPE c 函数功能 设置当前颜色索引值 22 四 颜色和光照 2 阴影模式voidglShadeMode GLenummode 函数功能 设置阴影模式 输入参数 阴影模式类型mode mode取值为GL FLAT或GL SMOOTH 当阴影模式为GL FLAT时 多边形用一个顶点的颜色进行绘制 当阴影模式为GL SMOOTH时 多边形用各个顶点颜色的插值结果进行绘制 输出参数 无返回值 无 23 四 颜色和光照 3 材质voidglMaterial i f GLenumface GlenumpName TYPEparam voidglMaterial i f v GLenumface GlenumpName TYPE param 函数功能 定义当前多边形的材质 输入参数 参数face表示材质应用于多边形的哪个面 GL FRONT GL BACK或GL FRONT AND BACK 参数pName表示光线类型 GL AMBIENT GL DIFFUSE GL SPECULAR GL SHINESS或GL EMISSION 参数param表示反射率或镜面反射指数 GL SHINESS表示镜面反射指数 此时param允许取值范围为0到128 输出参数 无返回值 无 24 四 颜色和光照 25 四 颜色和光照 voidglColorMaterial GLenumface GLenummode 函数功能 定义当前多边形的材质 输入参数 参数face表示材质应用于多边形的哪个面 GL FRONT GL BACK或GL FRONT AND BACK 参数pName表示光线类型 GL AMBIENT GL DIFFUSE GL AMBIENT AND DIFFUSE GL SPECULAR GL SHINESS或GL EMISSION 参数face缺省为GL FRONT AND BACK 参数pName缺省为GL AMBIENT AND DIFFUSE 输出参数 无返回值 无voidglColor 26 四 颜色和光照 4 光照voidglLight i f GLenumlight GlenumpName TYPEparam voidglLight i f v GLenumlight GlenumpName TYPE param 函数功能 创建光源 输入参数 参数light表示光源编号GL LIGHTi i取0到GL MAX LIGHTS 1之间的值 参数pName表示操作类型 GL AMBIENT GL DIFFUSE GL SPECULAR GL POSITION GL SPOT DIRECTION GL SPOT EXPONEXT GL SPOT CUTOFF或GL CONST ATTENUATION 参数param表示光的强度 光源位置 衰减因子或其他 输出参数 无返回值 无 27 四 颜色和光照 28 四 颜色和光照 5 光照模型voidglLightModel i f GLenumpName TYPEparam voidglLightModel i f v GLenumpName TYPE param 函数功能 建立光照模型 输入参数 参数pName表示光照模型的类型 GL LIGHG MODEL AMBIENT GL LIGHT MODEL LOCAL VIEWER或GL MODEL TWO SIDE 参数param表示要设置的参数值 参数pName取GL LIGHG MODEL AMBIENT时 param表示全局环境光 参数pName取GL LIGHG MODEL LOCAL VIEWER时 param表示镜面反射光视角的计算方法 输出参数 无返回值 无 29 四 颜色和光照 30 四 颜色和光照 31 四 颜色和光照 6 多边形绘制voidglFront GLenummode 函数功能 指定多边形的正面 输入参数 指定多边形正面的参数mode mode取GL CCW或GL CW mode取GL CCW时 多边形的顶点呈逆时针方向排列一面为正面 输出参数 无返回值 无 32 四 颜色和光照 voidglPolygonMode GLenumface GLenummode 函数功能 设定多边形的绘制模式 输入参数 指定绘制多边形哪些面的参数face 指定多边形绘制方式的参数mode face的取值为GL FRONT AND BACK GL FRONT或GL BACK 缺省为GL FRONT AND BACK mode取GL POINT GL LINE或GL FILL 缺省为GL FILL 输出参数 无返回值 无 33 四 颜色和光照 voidglNormal3 b s i f d TYPEnx TYPEny TYPEnz voidglNormal3 b s i f d v constTYPE v 函数功能 设置当前法向量 输入参数 法向量分量或法向量矢量 法向量的方向影响镜面反射光和散射光的强度 输出参数 无返回值 无链接DrawScence 34 四 颜色和光照 35 五 混合 反走样和雾 1 混合voidglBlendFunc GLenumsfactor GLenumdfactor 函数功能 设置混合因子 输入参数 参数sfactor和dfactor分别表示混合源因子和混合目标因子 输出参数 无返回值 无结果颜色值RsSr RdDr GsSg GdDg BsSb BdDb AsSa AdDa其中Rs Rd等表示源和目标颜色 Sr Dr等表示混合因子 各分量的值被截取到 0 1 36 五 混合 反走样和雾 37 五 混合 反走样和雾 38 五 混合 反走样和雾 39 五 混合 反走样和雾 40 五 混合 反走样和雾 2 反走样voidglHint GLenumtarget GLenummode 函数功能 设置混合因子 输入参数 参数target表示反走样的行为 GL POINT SMOOTH HINT GL LINE SMOOTH HINT GL FOG HINT GL POLYGON SMOOTH HINT 参数mode表示计算时的首选考虑 GL FASTEST GL NICEST或GL DON T CARE 输出参数 无返回值 无 41 五 混合 反走样和雾 3 雾化voidglFog i f GLenumpName TYPEparam voidglFog i f v GLenumpName TYPE param 函数功能 设置混合因子 输入参数 参数pName表示将要设置的参数类型 GL FOG MODE GL FOG DENSITY GL FOG START GL FOG END GL FOG COLOR GL FOG INDEX 参数param表示参数值 当pName为GL FOG MODE时 param取值为GL LINEAR GL EXP或GL EXP2 输出参数 无返回值 无 42 五 混合 反走样和雾 43 五 混合 反走样和雾 44 六 显示列表 位图和图像 1 显示列表显示列表为优化绘图性能而设计 尤其是为优化网络应用而设计 OpenGL的显示列表在程序运行过程中是不可修改的 显示列表的典型应用位图和图像 将位图或图像的定义添加到显示列表中 在显示列表编译 而不是在图形显示 时将数据转换成硬件支持的格式 光照 材质及光照模型 可将材质定义添加到显示列表中 避免在材质选择时反复计算 纹理 将纹理定义添加到显示列表中 在显示列表编译 而不是在图形显示 时将纹理格式转换成硬件支持的格式 矩阵操作 将计算某些矩阵及其逆矩阵的OpenGL命令添加到显示列表 45 六 显示列表 位图和图像 voidglNewList GLuintlist GLenummode 函数功能 新建一个显示列表 输入参数 参数list表示显示列表的名称 参数mode表示显示列表的状态 GL COMPILE GL COMPILE AND EXECUTE 输出参数 无返回值 无voidglEndList 函数功能 显示列表定义结束 voidglCallList GLuintlist 函数功能 调用显示列表 46 六 显示列表 位图和图像 GLuintglGenLists GLsizeirange 函数功能 新建一组空显示列表 输入参数 参数range表示将要创建的显示列表的数目 输出参数 无返回值 成功时返回最前面一个显示列表的索引值 否则返回0 GLbooleanglIsList GLuintlist 函数功能 测试显示列表是否存在 输入参数 参数list表示被测试显示列表的名称 输出参数 无返回值 被测试的显示列表存在时返回GL TRUE 否则返回GL FALSE 47 六 显示列表 位图和图像 48 六 显示列表 位图和图像 49 六 显示列表 位图和图像 2 位图OpenGL提供了位图操作函数 利用这些函数可以实现字符 串 输出 voidglRasterPos2 d f i s TYPEx TYPEy voidglRasterPos3 d f i s TYPEx TYPEy TYPEz voidglRasterPos4 d f i s TYPEx TYPEy TYPEz TYPEw voidglRasterPos 2 3 4 d f i s v TYPE v 函数功能 指定像素操作的光栅位置 50 六 显示列表 位图和图像 voidglBitmap GLsizeiwidth GLsizeiheight GLfloatx GLfloaty GLfloatdx GLfloatdy constGLubyte bitmap 函数功能 绘制位图 输入参数 参数width height表示位图按像素表示的宽和高 参数x y表示位图的左下角 相对于当前光栅位置的 坐标 参数dx dy表示当前位图画完之后 当前光栅位置在水平和垂直方向的偏移量 参数bitmap表示位图的地址 输出参数 无返回值 无 51 六 显示列表 位图和图像 glPixelStore i f GLenumpName TYPEparam 函数功能 设置像素存储模式 输入参数 参数pName表示存储模式名 参数param为特定存储模式设定的值 输出参数 无返回值 无 52 六 显示列表 位图和图像 53 六 显示列表 位图和图像 54 六 显示列表 位图和图像 55 六 显示列表 位图和图像 56 六 显示列表 位图和图像 57 六 显示列表 位图和图像 3 图像在位图中 每个像素点用一位来存储它的信息 在图像中 一个像素点可以用多位来存储它的信息 图像可以用作纹理图 58 六 显示列表 位图和图像 voidglReadPixels GLintx GLinty GLsizeiwidth GLsizeiheight GLenumformat GLenumtype GLvoid pixels 函数功能 从帧缓存中读取像素块 输入参数 参数x y表示像素块左下角的坐标 参数width height表示像块的宽和高 参数format表示像素数据的格式 GL RGB GL RGBA GL RED GL GREEN GL BLUE GL ALPHA GL LUMINANCE ALPHA GL LUMINANCE GL DEPTH COMPONENT GL STENCIL INDEX GL COLOR INDEX 参数type表示像素数据的数据类型 GL UNSIGNED BYTE GL BYTE BL BITMAP GL UNSIGNED SHORT GL SHORT GL UNSIGNED INT GL INT GL FLOAT 参数pixels指向像素数据 输出参数 无返回值 无 59 六 显示列表 位图和图像 voidglDrawPixels GLsizeiwidth GLsizeiheight GLenumformat GLenumtype GLvoid pixels 函数功能 在当前光栅位置绘制像素块 输入参数 参数width height表示像块的宽和高 参数format表示像素数据的格式 GL RGB GL RGBA GL RED GL GREEN GL BLUE GL ALPHA GL LUMINANCE ALPHA GL LUMINANCE GL DEPTH COMPONENT GL STENCIL INDEX GL COLOR INDEX 参数type表示像素数据的数据类型 GL UNSIGNED BYTE GL BYTE BL BITMAP GL UNSIGNED SHORT GL SHORT GL UNSIGNED INT GL INT GL FLOAT 参数pixels指向像素数据 输出参数 无返回值 无 60 六 显示列表 位图和图像 voidglCopyPixels GLintx GLinty GLsizeiwidth GLsizeiheight GLenumtype 函数功能 从帧缓存拷贝像素块到当前光栅位置 输入参数 参数x y表示像素块左下角的窗口坐标 参数width height表示像块的宽和高 参数type表示拷贝操作的类型 GL COLOR GL STENCIL GL DEPTH 输出参数 无返回值 无 61 六 显示列表 位图和图像 voidglPixelZoom GLfloatxfactor GLfloatyfactor 函数功能 在x和y方向进行缩放 voidglPixelTransfer i f GLenumpName TYPEparam 函数功能 设置像素转换模式 输入参数 参数pName表示像素转换模式名 参数param表示pName要设定的值 输出参数 无返回值 无 62 六 显示列表 位图和图像 63 六 显示列表 位图和图像 64 六 显示列表 位图和图像 65 六 显示列表 位图和图像 voidglPixelMap ui us f v GLenummap GLintmapsize constTYPE values 函数功能 设置像素 转换 映射 输入参数 参数map表示像素映射表名称 参数mapsize表示映射表的大小 参数values表示mapsize个值对组成的数组 输出参数 无返回值 无 66 六 显示列表 位图和图像 67 六 显示列表 位图和图像 68 六 显示列表 位图和图像 69 六 显示列表 位图和图像 70 六 显示列表 位图和图像 71 六 显示列表 位图和图像 72 六 显示列表 位图和图像 73 六 显示列表 位图和图像 74 六 显示列表 位图和图像 75 六 显示列表 位图和图像 76 六 显示列表 位图和图像 77 六 显示列表 位图和图像 78 六 显示列表 位图和图像 79 六 显示列表 位图和图像 80 六 显示列表 位图和图像 81 七 纹理映射 1 生成和绑定纹理名称voidglGenTextures GLsizein GLuint textures 函数功能 生成纹理名称 输入参数 参数n为纹理名称的数目 参数textures表示被生成的纹理名称构成的数组 输出参数 无返回值 无 82 七 纹理映射 83 七 纹理映射 2 纹理定义物体表面细节分为两类 一类是表面的颜色纹理 如桌上的木纹 另一类是表面的几何纹理 如凹凸不平的树皮 简单规则的颜色纹理可用表面细节多边形来模拟 当纹理变得精致复杂时 可采用纹理映射 texturemap 技术 即将一幅平面图映射到物体表面上 从而产生物体表面的细节 纹理是一块矩形区域 可以从图像中读取 可以将纹理映射到非矩形区域 84 七 纹理映射 纹理映射的基本步骤 纹理定义控制颜色启用纹理映射指定纹理坐标和几何坐标 85 七 纹理映射 voidglTexImage2D GLenumtarget GLintlevel GLintinternalFormat GLsizeiwidth GLsizeiheight GLintborder GLenumformat GLenumtype constGLvoid pixels 函数功能 定义一个二维纹理图像 输入参数 参数target为纹理类型 只能是GL TEXTURE 2D 参数level表示多分率图像的级数 参数internalFormat表示纹理中颜色分量的数目 参数width和height表示图像的宽和高 参数border表示图像边界的大小 参数format表示像素数据的格式 参数type表示像素数据的类型 参数pixels是指向像素数据的指针 输出参数 无返回值 无 86 七 纹理映射 voidglTexImage1D GLenumtarget GLintlevel GLintinternalFormat GLsizeiwidth GLsizeiheight GLintborder GLenumformat GLenumtype constGLvoid pixels 函数功能 定义一个二维纹理图像 输入参数 参数target为纹理类型 只能是GL TEXTURE 1D 参数level表示多分率图像的级数 参数internalFormat表示纹理中颜色分量的数目 参数width和height表示图像的宽和高 参数border表示图像边界的大小 参数format表示像素数据的格式 参数type表示像素数据的类型 参数pixels是指向像素数据的指针 输出参数 无返回值 无 87 七 纹理映射 88 七 纹理映射 MIP纹理映射程序员可以指定一系列分辩率递减的纹理图 mipmaps OpenGL按照物体的尺寸自动确定应该使用哪个纹理图 使用MIP纹理映射技术时 纹理图的大小必须从n n依次递减到1 1 89 七 纹理映射 3 设置纹理参数voidglTexParameter i f GLenumtarget GLenumpName TYPEparam voidglTexParameter i f v GLenumtarget GLenumpName TYPE param 函数功能 设置纹理参数 输入参数 参数target为纹理类型 GL TEXTURE 1D GL TEXTURE 2D 参数pName表示纹理名称 GL TEXTURE BORDER COLOR GL TEXTURE WRAP S GL TEXTURE WRAP T GL TEXTURE MIN FILTER GL TEXTURE MAG FILTER 参数param表示pName的值 输出参数 无返回值 无 9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金融市场与投资理论考试试卷及答案
- 2025年电气工程师考试试题及答案
- 2025年基础护理技能操作考试试卷及答案
- 2025年全国会计从业资格考试试卷及答案
- 生物医药企业股东除名与股权重组专项服务协议
- 生物样本库建设与科研合作项目培训合同
- 突发公共事件危机公关应急预案合同
- 婚姻忠诚协议中“忠诚”界定与婚姻关系稳定协议书
- 网络文学创作室租赁及作品推广合作合同
- 网络小说有声改编权授权与市场推广及衍生品授权合同
- 如何正确选择和使用运动护具
- 武术礼仪:抱拳礼、手型、步型
- 标本溶血或凝血的应急预案
- 部编版六年级语文下册第五单元《口语交际:辩论》范例《电脑时代需要不需要练字》
- 《用眼卫生》的教学设计
- (完整版)医疗器械网络交易服务第三方平台质量管理文件
- 中国动漫发展史课件
- 【履职清单】2023新版安全生产责任体系重点岗位履职清单
- 门式起重机、架桥机作业前安全隐患排查表
- 安全阀在线校验及延期校验
- GB/T 9128.1-2023钢制管法兰用金属环垫第1部分:PN系列
评论
0/150
提交评论