介绍了OpenGL.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
介绍了OpenGL

第6章 OpenGL;6.1 基本介绍;6.1.1 背景情况 ;OpenGL独立于硬件设备、窗口系统和操作系统,使得以OpenGL为基础开发的应用程序可以在各种平台间移植。OpenGL可以运行在当前各种流行操作系统之上,如Windows95/98、Windows NT/2000、Linux、Mac OS、Unix、OS/2等。特别需要指出的是,由于Microsoft公司在其Windows95或更高版本的操作系统和Visual系列高级语言开发环境中捆绑了OpenGL标准,使得OpenGL在微机中得到了更为普遍的应用。 OpenGL可以与各种编程语言紧密接口。各种流行的编程语言如C、C++、Fortran、Ada、Java等都可以调用OpenGL中的库函数。 OpenGL是一个状态机,一直处于用户指定的状态中,直到状态被修改为止。;gl.h: 基本函数 glu.h: OpenGL实用库 glaux.h: OpenGL扩展库 glut.h: OpenGL实用工具包 #include GL/gl.h #include GL/glu.h #include GL/glaux.h #include GL/glut.h ;逻彻与弗纵纪臻却殷???弯伎亩昭劝刃邹兔墟梗雪力钱骇舔卉爱捂疥娃唁另介绍了OpenGL介绍了OpenGL;6.1.2 OpenGL的主要功能 ;纹理映射(Texture Mapping): 将真实感的纹理粘贴在物体表面,使物体逼真生动。纹理是数据的简单矩阵排列,数据有颜色数据、亮度数据和alpha数据。 位图和图像:提供了一系列函数来实现位图和图像的操作。位图和图像数据均采用像素的矩阵形式表示。 制作动画:提供了双缓存(Double Buffering)技术来实现动画绘制。双缓存即前台缓存和后台缓存,后台缓存用来计算场景、生成画面,前台缓存用来显示后台缓存已经画好的画面。当画完一帧时,交互两个缓存,这样循环交替以产生平滑动画。 选择和反馈:OpenGL为支持交互式应用程序设计了选择操作模式和反馈模式。在选择模式下,则可以确定用户鼠标指定或拾取的是哪一个物体,可以决定将把哪些图元绘入窗口的某个区域。而反馈模式,OpenGL把即将光栅化的图元信息反馈给应用程序,而不是用于绘图。 此外,OpenGL还提供了反走样技术,能够实现深度暗示(Depth Cue)、运动模糊(Motion Blur)、雾化(Fog)等特殊效果。 ;6.1.3 OpenGL的绘制流程和原理 ;6.1.4 VC++开发OpenGL绘图程序;// 首先定义像素存储格式 PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // pfd的大小 1, // 结构的版本号 PFD_DRAW_TO_WINDOW| // 支持window PFD_SUPPORT_OPENGL| // 支持OpenGL PFD_DOUBLEBUFFER, // 双缓存 PFD_TYPE_RGBA, // RGBA颜色模式 24, // 24位颜色深度缓存 0,0,0,0,0,0, // color bits ignored 0, // no alpha buffer 0, // shift bit ignored 0, // 不使用累积缓存 0,0,0,0, // accum bits ignored 32, // 32位z缓冲 0, // 不使用模板缓存 0, // no auxiliary buffer PFD_MAIN_PLANE, // 选择主层面 0, // 保留 0,0,0 //layer masks ignored }; m_hDC = GetDC()-GetSafeHdc(); int pixelFormat = ChoosePixelFormat(m_hDC, pfd); SetPixelFormat(m_hDC, pixelFormat, pfd); // 创建绘图上下文RC m_hRC = wglCreateContext(m_hDC); wglMakeCurrent(m_hDC, m_hRC);;③ 改造OnSize函数 当视图尺寸变化是,应及时将新的客户区尺寸通知OpenGL,方能够正确在窗口客户区域显示二维场景,通过命令glViewport完成这项工作。 ④ 改造OnEraseBkgnd函数 重载视图类的OnEraseBkgnd成员,使之返回TRUE值可以阻止Windows重画窗口背景,因

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档