欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    完整的程序.ppt

    • 资源ID:3193515       资源大小:1.38MB        全文页数:23页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    完整的程序.ppt

    ,计算机图形学,杨 武 影像科学与技术实验室 东南大学计算机学院 yangwuseu.edu.cn,2,第二章之第二节 完整的程序,3,主要内容,修改第一个程序 改变默认值 定义标准程序结构 简单视图 二维视图:三维视图的特殊情形 OpenGL 中的基本形状 属性,4,程序结构,绝大多数OpenGL程序具有类似的结构,包含下述函数 main(): 定义回调函数 打开一个或多个具有指定属性的窗口 进入事件循环(最后一条可执行语句) init(): 设置状态变量 视图 属性 回调函数 显示函数 输入和窗口函数,5,Simple.c 修改,在新程序中,会得到同样的输出,但是所有具有默认值的相应状态值都通过函数调用显式指定 特别地,设置了 颜色 视图条件 窗口属性,6,main.c,#include int main(int argc, char* argv) glutInit( ,包含了gl.h,定义窗口属性,设置OpenGL状态,进入时间循环,显示回调函数,7,GLUT 函数,glutInit 使得应用程序可以获取命令行参数并初始化系统 gluInitDisplayMode 设置窗口属性 RGB 颜色 单缓冲区 属性按逻辑或组合在一起 glutWindowSize 以像素为单位 glutWindowPosition 定义窗口左上角在显示器上的位置 glutCreateWindow 创建一个窗口,标题 “simple” glutDisplayFunc 定义显示回调函数 glutMainLoop 进入无穷事件循环,8,init.c,void init() glClearColor (0.0, 0.0, 0.0, 1.0); glColor3f(1.0, 1.0, 1.0); glMatrixMode (GL_PROJECTION); glLoadIdentity (); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); ,背景色为黑,不透明窗口,白色填充,视景体,9,坐标系,在glVertex中的单位是由应用程序确定的,称为世界坐标系 视景体也是相对于世界坐标系指定的,视景体确定出现在图像中的对象 在OpenGL内部,会把世界坐标转化为照相机坐标,稍后转化为屏幕坐标,10,OpenGL 照相机,照相机放置在原点,指向z轴的负方向 默认的视景体是一个中心在原点,长为2的立方体,11,在默认的正交视图中,点沿着z轴投影到 z=0的平面上,正交视图,12,变换与视图,在OpenGL中投影是利用投影矩阵乘法进行的 由于只存在一个变换函数系列,因此必须先设置矩阵模式 glMatrixMode (GL_PROJECTION) 变换函数是累加在一起的,因此需要从单位阵开始,然后把它改变为一个投影矩阵以定义视景体 glLoadIdentity (); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);,13,二维与三维视图,在glOrtho(左,右,底,顶,近,远)中的近与远是相对于照相机的距离而言的 二维顶点命令把所有的顶点放在z=0的平面上 如果应用程序处于二维状态,那么可以使用下述函数设置正交视景体: gluOrtho2D(left,right,bottom,top) 对于二维情形,视景体或裁剪体退化为裁剪窗口,14,mydisplay.c,void mydisplay() glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); ,15,OpenGL 基本形状,GL_QUAD_STRIP,GL_POLYGON,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,GL_POINTS,GL_LINES,GL_LINE_LOOP,GL_LINE_STRIP,GL_TRIANGLES,16,多边形的条件,OpenGL 只能显示满足下述条件的多边形 简单: 边除顶点外不相交 凸: 对于多边形中任意两点,连接这两点的线段完全在多边形内 平面: 所有顶点在同一平面上 用户自己确保上述条件满足 三角形满足上述所有限制条件,17,字符,笔划字符 由顶点、线段和曲线描绘 利于变换处理 占内存、处理时间长 光栅字符 矩阵位图 处理速度快,18,属性,属性是OpenGL中状态的一部分,确定对象的外观 颜色 (points, lines, polygons) 大小和宽度 (points, lines) 线型 (lines, polygons) 多边形 颜色填充 边界显示,19,RGB 颜色,颜色的每个分量在帧缓冲区中是分开存贮的 在缓冲区中通常每个分量占用8位字节 注意在函数glColor3f中颜色值的变化范围是从0.0(无)到1.0(全部), 而在glColor3ub中颜色值的变化范围是从0到255,20,索引颜色,由一组RGB值构成一张表,“颜色”是表中项的索引 需要更少的内存 索引通常只有8位 现在重要性下降 内存价格下降 需要更多的颜色,21,颜色与状态,由glColor*设置的颜色成为状态的一部分,后续构造过程将使用这一颜色,直至它被修改为止 颜色与其它属性不是对象的一部分,但是在渲染对象时要把这些属性赋给对象 可以按下述过程创建具有不同颜色的顶点 glColor glVertex glColor glVertex,22,色彩的平滑,默认状态是光滑过渡 OpenGL根据多边形顶点的颜色插值出来内部的颜色 另外一种状态是平坦过渡 第一个顶点的颜色确定填充颜色 glShadeModel(GL_SMOOTH)或 (GL_FLAT),23,视窗,并不需要把整个当前窗口用来显示图像: glViewport(x,y,w,h) 参数值以像素为单位(屏幕坐标),

    注意事项

    本文(完整的程序.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开