OpenGL复习提纲.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
光栅化:决定哪些像素被集合图元覆盖的过程。经过上面诸多坐标转换之后,现在我们得到了每个点的屏幕坐标值,也知道我们需要绘制的图元(点、线、面)。但此时还存在两个问题:问题一:点的屏幕坐标值是浮点数,但像素都是由整数点来表示的,如果确定屏幕坐标值所对应的像素?问题一:“绘制的位置只能接近两指定端点间的实际线段位置,例如,一条线段的位置是(10.48,20.51),转换为像素位置则是(10,21)”。问题二:在屏幕上需要绘制的有点、线、面,如何根据两个已经确定位置的2 个像素点绘制一条线段,如何根据已经确定了位置的3 个像素点绘制一个三角形面片?问题二涉及到具体的画线算法,以及区域图元填充算法。通常的画线算法有 DDA 算法、Bresenham画线算法;区域图元填充算法有,扫描线多边形填充算法、边界填充算法等。什么是OpenGL?OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。OpenGL是行业领域中最为广泛接纳的 2D/3D 图形?API。扩展名每个扩展都有一个扩展名,扩展名类似如下形式:?????????????????????? GL_ARB_multitexture第一段GL,用来表示针对OpenGL哪部分开发的扩展,有以下几个值:GL??–针对OpenGL核心的扩展WGL –针对Windows平台的扩展GLX –针对Unix / Linux平台的扩展GLU –针对OpenGL Utility Library的扩展GLEW库GLEW库是OpenGL的扩展库,用于支持OpenGL1.1以上的版本。比如着色器特性。一般非集成显卡都能支持到OpenGL2.0或者更高,但是没有GLEW库依然无法调用高版本OpenGL的函数。GLEW能自动识别你的平台所支持的全部OpenGL高级扩展涵数。也就是说,只要包含一个glew.h头文件,你就能使用gl, glu, glext, wgl, glx的全部函数。GLFW库一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。因为OpenGL没有窗口管理的功能,所以很多热心的人写了工具来支持这些功能,比如早期的glut,现在的freeglut等。那么GLFW有何优势呢?glut太老了,最后一个版本还是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齐全,但是bug太多。稳定性也不好(不是我说的啊),GLFW应运而生。OpenGL的配置第一步:h放在了C:\ Program Files (x86) \Windows Kits\8.0\Include\um\gl目录下(通过在C盘搜索GL.h得来)如果本机没有此目录,可以放在某个目录下,通过在项目中指定目标文件目录。第二步:glut.lib和glut32.lib放到 C:\Program Files (x86)\Microsoft Visual Studio \VC\lib如果本机没有此目录,可以放在某个目录下,通过在项目中指定目标文件目录。第三步:glut.dll和glut32.dll放到C:\Windows\System32glClear()函数原型:?????voidglClear(GLbitfield mask); 参数说明:??????GLbitfield:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位????? GL_COLOR_BUFFER_BIT:??? 当前可写的颜色缓冲????? GL_DEPTH_BUFFER_BIT:??? 深度缓冲????? GL_ACCUM_BUFFER_BIT:?? 累积缓冲GL_STENCIL_BUFFER_BIT: 模板缓冲glutSwapBuffers()glutSwapBuffers函数是OpenGL中GLUT工具包中用于实现双缓冲技术的一个重要函数。该函数的功能是交换两个缓冲区指针。双缓冲技术我们进行复杂的绘图操作时,画面便可能有明显的闪烁。解决这个问题的关键在于使绘制的东西同时出现在屏幕上。所谓双缓冲技术,是指使用两个缓冲区:前台缓冲和后台缓冲。前台缓冲即我们看到的屏幕,后台缓冲则在内存当中,对我们来说是不可见的。每次的所有绘图操作都在后台缓冲中进行,当绘制完成时,把绘制的最终结果复制到屏幕上,这样,我们看到所有GDI元素同时出现在屏幕上,从而解决了频繁刷新导致的画面闪烁问题。点的绘制#defi

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档