电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

opengl绘图相关函数

47页
  • 卖家[上传人]:第***
  • 文档编号:49290078
  • 上传时间:2018-07-26
  • 文档格式:PPT
  • 文档大小:776KB
  • / 47 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第二章 2.6 OpenGL图形软件包 OpenGL的主要功能OpenGL的绘制流程OpenGL的基本语法OpenGL的程序实例Date1OpenGL图形软件包p OpenGL是SGI(Silicon Graphics Inc.)公司对IRIS GL进行改进,扩展可移植性,形成的一个跨平台开放式图形编程接口。p 目前,OpenGL标准由1992年成立的独立财团OpenGL Architecture Review Board(ARB)以投票方式产生,并制成规范文档公布。Date2OpenGL的主要功能模型绘制 模型观察 颜色模式 光照应用 图像效果增强 位图和图像处理 纹理映射 实时动画 交互技术Date3OpenGL的绘制流程工作方式一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图 形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应 用软件。图2.34 OpenGL图形处理系 统在计算机系统中的层次结构Date4OpenGL的绘制流程流水线图2.35 一条简化的OpenGL绘制流水线包括命令、顶点数据和纹理等数据的OpenGL命令将放在命令

      2、缓冲区中,对几何顶点数据进行必要的变换、光照计算并进行 投影后进入光栅化流程,根据几何形状、颜色及纹理数据生成 图像的帧缓存地址和像素点值,结果置入帧缓冲存储器中。注意:只有当缓冲区被清空时,缓冲区中的命令和数据才会传递给流水线的下一个阶段,OpenGL命令才会得到执行。Date5OpenGL的基本语法相关库OpenGL核心库:gl 115个函数OpenGL实用程序库: glu 43个函 数OpenGL编程辅助库:aux 31个函 数OpenGL实用程序工具包(OpenGL utility toolkit, GLUT):glut 30多个函数Windows专用库:wgl 6个函数Date6OpenGL的基本语法命名规则OpenGL函数都遵循一个命名约定,即采用以下格式:例如函数glColor3f(),gl表示这个函数来自库gl.h, 根命令Color表示该函数用于颜色设定,3f表示这个函数采 用了三个浮点数参数。符号常量的表示:GL开头,下划线(_)分开,大写。例如:GL_RGB,GL_POLYGON等Date7OpenGL的基本语法数据类型OpenGL数据类类型内部表示法定义为义为

      3、C类类型C字面值值后 缀缀 GLbyte8位整数signed charBGLshort16位整数shortSGLint,GLsizei32位整数longLGLfloat,GLclampf32位浮点数floatFGLdouble,GLclampd64位浮点数doubleDGLubyte,GLboolean8位无符号整数unsigned charUbGLshort16位无符号整数unsigned shortUs GLuint,GLenum, GLbitfield32位无符号整数unsigned longUi表2.2 OpenGL的数据类型Date8OpenGL程序实例头文件包含利用OpenGL实现图 形绘制,首先要引入OpenGL核 心库以及其他需要使用的库的头文件。glut保证了gl.h和glu.h被正确包含。#include #include Date9OpenGL程序实例窗口管理初始化(glutInit )创建窗口(glutCreateWindow)设定窗口的显示模式(glutInitDisplayMode)指定窗口的位置和大小(glutInitWindowPosition和 glu

      4、tInitWindowSize )指定窗口的显示内容函数(glutDisplayFunc)运行框架(glutMainLoop)Date10OpenGL程序实例绘制图形指定窗口背景色( glClearColor)颜色管理,使用RGB颜色模型。一种颜色用红、绿 、蓝三种颜色成分混合而成,每种颜色成分使用0.0 到1.0之间的任意有效浮点数来表示颜色值(见下页 )。Date11OpenGL程序实例绘制图形混合色红色成分(R)绿色成分(G)蓝色成分(B) 黑0.00.00.0 红1.00.00.0 绿0.01.00.0 黄1.01.00.0 蓝0.00.01.0 紫1.00.01.0 青0.01.01.0 深灰0.250.250.25 浅灰0.750.750.75 棕0.600.400.12 南瓜橙0.980.6250.12 粉红0.980.040.70 紫红0.600.400.70 白1.01.01.0表2.2 OpenGL的一些常用混合色Date12OpenGL程序实例绘制图形刷新窗口的缓冲区glClear(GL_COLOR_BUFFER_BIT);设定投影参数(将三维图形投影到显示窗口)

      5、glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0,200.0,0.0,150.0);绘制图形glRectf(50.0f, 100.0f, 150.0f, 50.0f);Date13第三章 3.4 OpenGL实现橡皮筋技术 橡皮筋技术的实现方法l利用颜色的异或操作,对原有图形并不是擦除 ,而是再绘制一条同样的直线段并与原图形进 行异或操作,此时原图形会从屏幕上消失;l利用双缓存技术,绘制图形时分别绘制到两个 缓存,交替显示。Date14OpenGL实现橡皮筋技术 鼠标实现l鼠标响应函数glutMouseFuncl鼠标移动相应函数glutMotionFuncglutPassiveMotionFuncDate15 键盘实现l键盘相应函数glutKeyboardFuncOpenGL实现橡皮筋技术Date163.5 OpenGL实现拾取操作 设置拾取缓冲区void glSelectBuffer(GLsizei n,GLunint *buff); 进入选择模式GLint glRenderMode(GLenum mode);Date1718OpenGL实现拾取操

      6、作名字堆栈操作l初始化名字堆栈(glInitNames)l将一个名字压入堆栈(glPushName)l替换名字堆栈的栈顶元素(glLoadName)l将栈顶元素弹出(glPopName)Date1819设置合适的变换过程gluPickMatrix(xPick,yPick,widthPick, heightPick,*vp);为每个图元分配名字并绘制切换回渲染模式分析选择缓冲区中的数据OpenGL实现拾取操作Date193.6 OpenGL中的菜单功能菜单注册函数glutCreateMenu(ProcessMenu);在菜单中加入菜单项void glutAddMenuEntry(char *name, GLint value);将菜单与某个鼠标按键关联void glutAttachMenu(button);Date20第四章 OpenGL中层次模型的实现o 显示列表的创建glNewList( listID, listMode );glutSolidCube(2.0); glEndList();o 显示列表的执行void glListBase(GLuint offsetValue);Dat

      7、e21o 多级显示列表OpenGL支持创建多级显示列表,即在glNewList 和glEndLsit函数对之间允许调用glCallList函数来执行其他显示列表。o 显示列表的删除void glDeleteLists(GLuint listID, GLsizei range);OpenGL中层次模型的实现Date2223 GLUT库中的多面体函数OpenGL中的实体模型函数函数说说明 glutSolidTetrahedron( ) glutWireTetrahedron( )绘绘制中心位于世界坐标标系原点的实实心四面体和线线框四面体,四面 体的半径为为 。glutSolidCube(size) glutWireCube(size)绘绘制中心位于世界坐标标系原点的实实心立方体和线线框立方体,立方 体的半径为为size,size是一个双精度浮点值值。glutSolidOctahedron ( ) glutWireOctahedron ( )绘绘制中心位于世界坐标标系原点的实实心八面体和线线框八面体,八面 体的半径为为1.0。glutSolidDodecahedro n( ) glutWir

      8、eDodecahedro n( )绘绘制中心位于世界坐标标系原点的实实心12面体和线线框12面体,12面 体的半径为为 。glutSolidIcosahedron( ) glutWireIcosahedron( )绘绘制中心位于世界坐标标系原点的实实心20面体和线线框20面体,20面 体的半径为为1.0。表4.1 GLUT生成规则多面体的函数Date2324 GLUT库中的二、三次曲面l绘制实体或线框球面void glutSolidSphere/glutWireSphere (GLdouble radius, GLint slices, GLint stacks);l绘制实体或线框圆锥面void glutSolidCone/glutWireCone (GLdouble radius, GLdouble height, GLint slices, GLint stacks);OpenGL中的实体模型函数Date2425l绘制实体或线框圆环void glutSolidTorus/ glutWireTorus(GLdouble innerRadius, GLdouble outerRadiu

      9、s, GLint slices,GLint stacks);l绘制实体或线框茶壶void glutSolidTeapot/glutWireTeapot (GLdouble size);OpenGL中的实体模型函数Date2526 GLU二次曲面函数l定义一个二次曲面GLUquadricObj *sphere;l激活二次曲面绘制器sphere = gluNewQuadric( );l指定二次曲面的绘制方式gluQuadricDrawStyle(sphere, GLU_LINE); OpenGL中的实体模型函数Date2627l绘制二次曲面gluSphere(sphere, radius, slices, stacks);gluCylinder(sphere,baseRadius,topRadius, height, slices, stacks);gluDisk(sphere,innerRadius,outerRadius, slices, stacks); OpenGL中的实体模型函数Date274.3 非规则对象的表示 分形几何 形状语法 基于分数维理论的随机模型 基于物理的模型 粒子系统模型 数据场可视化Date28OpenGL中层次模型的实现o 显示列表的创建glNewList( listID, listMode );glutSolidCube(2.0); glEndList();o 显示列表的执行void glListBase(GLuint offsetValue);Date29o 多级显示列表OpenGL支持创建多级显示列表,即在glNewList 和glEndLsit函数对之间允许调用glCallList函数来执行其

      《opengl绘图相关函数》由会员第***分享,可在线阅读,更多相关《opengl绘图相关函数》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.