声明:此篇仅是个人学习使用,不涉及商业利益,参考众多前辈的资料,会加参考文献,感谢前辈们的宝贵经验,我只是做笔记。


OpenGL有很多扩展库,例如gl、glu、glut、aux、wgl、glfw、glad、glew、freeglut、gltools、sdl、sfml、glx、agl等等


VS配置OpenGL环境

  • 1.确保自己的电脑连上了网
  • 2.打开VS,新建一个空项目,注意项目路径要有效且不含空格
  • 3.按下ctrl+shift+A创建一个源文件
  • 4.写上主函数,F5跑一下看有没有问题

  • 5.没有问题的话,用VS带的NuGet完成openGL的配置

  • 6.在下方出现的程序包管理器控制台中输入:Install-Package nupengl.core

——————-

1.gl–OpenGL核心库[1]

  • 基本介绍
    115个基本函数,以“gl”为前缀,函数用于常规的、核心的图形处理,如建立各种几何模型,产生光照效果,进行反走样及投影变化等。
    核心库中的函数主要可以分为以下几类函数[2]:
分类 举例
绘制基本几何图元 glBegain()、glEnd()、glNormal*()、glVertex*()
矩阵操作、几何变换和投影变换 矩阵入栈函数glPushMatrix()、矩阵出栈 函数glPopMatrix()、装载矩阵函数glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()
颜色、光照和材质 颜色模式函数glColor*()、glIndex*(),光照效果的函数glLight*() 、glLightModel*()和材质效果函数glMaterial()
显示列表 创建、结束、生成、删除和调用显示列表的函数glNewList()、 glEndList()、glGenLists()、glCallList()和glDeleteLists()
纹理映射 一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、 设置纹理参数glTexParameter*()、纹理环境glTexEnv*()和纹理坐标的函数glTetCoord*()
特殊效果 融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()
光栅化、象素操作 象素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()
选择与反馈 渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer()
曲线与曲面的绘制 生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*()
状态设置与查询 glGet*()、glEnable()、glGetError()

2.glu–OpenGL实用程序库[1]

  • 基本介绍
    43个函数,以“glu”为前缀,这些函数通过调用核心库函数,实现较复杂操作,如纹理映射、坐标变化、网格化、曲线曲面绘制以及二次物体(圆柱、球体)绘制等。 主要包括了以下几种[2]:
分类 举例
辅助纹理贴图 gluScaleImage() 、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()
坐标转换和投影变换 定义投影方式函数gluPerspective()、gluOrtho2D() 、gluLookAt(),拾取投影视景体函数gluPickMatrix(),投影矩阵计算gluProject()和 gluUnProject()
多边形镶嵌工具 gluNewTess()、 gluDeleteTess()、gluTessCallback()、gluBeginPolygon() gluTessVertex()、gluNextContour()、gluEndPolygon()
二次曲面绘制工具 绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric()
非均匀有理B样条绘制工具 定义和绘制Nurbs曲线和曲面,包括gluNewNurbsRenderer()、gluNurbsCurve()、gluBeginSurface()、gluEndSurface()、gluBeginCurve()、gluNurbsProperty()
错误反馈工具 获取出错信息的字符串gluErrorString()

3.glu–OpenGL实用程序工具包[1]

  • 基本介绍
    30多个函数,以“glut”为前缀,提供基于窗口的工具。 如:窗口的初试化、多窗口管理、菜单管理、字体以及较复杂物体的绘制,主要包括了以下几种[2]:
分类 举例
窗口操作 窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode() glutInitWindowSize() glutInitWindowPosition()
回调函数 响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc() glutPostRedisplay() glutReshapeFunc() glutTimerFunc() glutKeyboardFunc() glutMouseFunc()
创建复杂的三维物体 创建网状体和实心体。如glutSolidSphere()、glutWireSphere()
菜单函数 创建添加菜单的函数GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu() 和glutAttachMenu()
程序运行函数 glutMainLoop()
  • 配置
    (1)下载压缩包http://pan.baidu.com/s/1eRA2EcE;
    (2)解压后得到五个文件,分别为glut.dll、glut32.dll、glut.h、glut.lib、glut32.lib;

    (3)如果你的VS默认安装路径,则将glut.h文件拷贝至C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL中(新建GL文件夹);
    (4)如果你的VS默认安装路径,则将glut.lib、glut32.lib文件拷贝至C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib;
    (5)将glut.dll、glut32.dll文件拷贝至C:\Windows\System32,同时也拷贝至C:\Windows\SysWOW64中,保险;
    (6)glut库配置完毕。

4.aux–OpenGL编程辅助库[1]

  • 基本介绍
    31个函数,以“aux”为前缀,主要用于窗口管理、输入/输出处理以及绘制简单三锥形体,并不能在所有的OpenGL平台上使用,主要包括了以下几种[2]:
分类 举例
窗口初始化和退出函数 auxInitDisplayMode()和auxInitPosition()
窗口处理和时间输入函数 auxReshapeFunc()、auxKeyFunc()和auxMouseFunc()
颜色索引装入函数 auxSetOneColor()
三维物体绘制函数 两种形式网状体和实心体,如绘制立方体auxWireCube()和 auxSolidCube()。以网状体为例,长方体auxWireBox()、环形圆纹面auxWireTorus()、圆柱auxWireCylinder()、二十面体auxWireIcosahedron()、八面体auxWireOctahedron()、四面体auxWireTetrahedron()、十二面体auxWireDodecahedron()、圆锥体auxWireCone()和茶壶auxWireTeapot()

5.wgl–Window专用库[1]

  • 基本介绍
    16个函数,用于连接OpenGL和WindowsNT[2].
分类 具体
绘图上下文相关函数 wglCreateContext(), wglDeleteContext()wglGetCurrentContent() wglGetCurrentDC() wglDeleteContent()
文字和文本处理函数 wglUseFontBitmaps()、wglUseFontOutlines()
覆盖层、地层和主平面层处理函数 wglCopyContext()、wglCreateLayerPlane()、 wglDescribeLayerPlane()、wglReakizeLayerPlatte()
其他函数 wglShareLists()、wglGetProcAddress()

6.glwf[3]

  • 基本介绍

允许我们创建一个OpenGL上下文,定义窗口参数和处理所有我们需要的用户输入,以“glfw”为前缀。

  • 配置
    (1)下载Source包http://www.glfw.org/download.html;
    (2)下载CMake安装包https://cmake.org/download/,并进行安装;

    (3)安装好CMake后打开CMake,相关设置如下图(build文件夹是新建的);


    (4)点击“Generate”后,点击“Open Project”(电脑上安装了vs便用vs打开了),直接点击“本地windows调试器”;
    (5)打开D:\opengl\glfw-3.2.1\build\src\Debug文件夹,将编译成的“glfw3.lib”文件拷贝到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib中;
    (6)glfw库配置完毕,测试在Glad库配置步骤里。

7.glad[3]

  • 基本介绍
    GLAD是一个开源库,可以管理我们所讨论的所有繁琐的工作。

  • 配置
    (1)先测试自己电脑显卡支持的OpenGL版本,方法参考
    http://blog.csdn.net/so_geili/article/details/51774376;
    (2)GLAD与大多数常见的开源库配置设置略有不同。GLAD使用Web服务(http://glad.dav1d.de/),点开网页设置如下图所示;

    (3)点开网页中的“GENERATE”,跳转到”GLAD“界面,点击下载压缩包;

    (4)解压后GLAD有两个文件夹,将include文件夹中的两个文件拷贝至C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\中(注意不是include\GL);将src文件夹中的”glad.c“拷贝至项目中;

    (5)在VS项目属性–>链接器–>输入–>附加依赖项–>编辑–>”opengl32.lib“–>”glfw3.lib”–>确定,将以下代码进行测试,是否链接库成功,如果很多未定义的引用错误,这意味着您没有成功链接GLFW库。

#include <glad/glad.h>
#include <GLFW/glfw3.h>
int main()
{glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);return 0;
}

8.gltools

  • 基本介绍
  • 配置
    http://pan.baidu.com/s/1c2esUDq

9.glew

  • 基本介绍
  • 配置
    http://pan.baidu.com/s/1bpnO18V

10.freeglut

  • 基本介绍
  • 配置
    http://pan.baidu.com/s/1qYOBERq

(慢慢来,慢慢积累)

参考文献:
[1]陆枫,何云峰.计算机图形学基础[D],电子工业出版社,2015.
[2]雨琼新星,OpenGL开发库的详细介绍 .http://blog.csdn.net/yqxx/article/details/382519.
[3]Learn OpenGL,https://learnopengl.com.

OpenGL扩展库基本介绍以及配置(搜集)相关推荐

  1. linux下glew例子,ubuntu 下编译glew (opengl扩展库)

    推荐文章 更新源的方法 提前保存一下原来源 sudo cp sources.list sources.list.bak 换源命令: sudo gedit /etc/apt/sources.list 或 ...

  2. OpenCV配置(利用Source编译,并配置扩展库opencv_contrib)

    OpenCV配置(利用Source编译,并配置扩展库opencv_contrib) 1. 配置所需(以个人版本为准) 1.1 CMake下载 1.2 OpenCV Source下载 1.3 OpenC ...

  3. OpenGL开发库的详细介绍

    OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...

  4. OPenGL学习--库介绍

    文章目录 一.什么是OpenGL 二.OpenGL的由来 三.工具库 3.1.窗口管理 3.2.glut 3.3.freeglut 3.4.glfw 3.5.函数加载 3.6.glew 3.7.gla ...

  5. pycharm中python镜像源介绍与配置-提升下载库的速度

    pycharm中python镜像源介绍与配置-提升下载库的速度 pycharm中python镜像源介绍与配置-提升下载库的速度 1 2 3 各镜像源介绍 ① 阿里镜像: https://mirrors ...

  6. OpenGL实用扩展库(二)---- glee(OpenGL Extension Library)

    GLEE OpenGL Extension Library : GLEE也是一个跨平台的 OpenGL扩展函数库,主要用于载入OpenGL的高级扩展函数,以方便程序员使用显卡的最新扩展功能.和glew ...

  7. OpenGL版本与OpenGL扩展机制

    1 opengl的版本区别(在opengl官方文档中有详细说明)     针对Opengl不同版本的升级是主要是扩展指令集.     现在版本是4.0啦 1.1 opengl1.1 1995年,SGI ...

  8. C++各大有名库的介绍(转)

    C++各大有名库的介绍 C++各大有名库的介绍之C++标准库 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰 ...

  9. X Window 的 OpenGL 扩展 —— GLX

    GLX 与显卡驱动 为了取得广泛的平台支持,OpenGL 是不依赖任何窗口系统的,但是我们使用 OpenGL 绘制的三维场景却需要嵌入在某种窗口程序中才可以为人所见.似乎也是约好了的,目前主流的窗口系 ...

最新文章

  1. Download interrupted: URL not found.
  2. 不停歇的 Java 即将发布 JDK 16,新特性速览!
  3. UA MATH636 信息论5 信道编码简介
  4. Spring Security 学习之LDAP认证
  5. LiveVideoStackCon讲师热身分享 ( 十四 ) —— HEVC标准在客户端上的快速实现方法的研究...
  6. MHA manage节点安装报错解决
  7. Hive之函数与自定义函数
  8. 朋友面试被问到---静态构造函数
  9. debian 升级后mysql_教你在Debian和Ubuntu上升级MySQL
  10. mysql典型安装和自定义_Mysql8.0.19下载安装—windows版本自定义安装
  11. 30个常用python实现
  12. WebView与APP交互实战记录
  13. Bigendian 奇数内存地址取整形crash
  14. 权御天下计算机音乐数字乐谱,权御天下(单音 适合电吉他)
  15. OpenCV利用高斯模糊可以实现毛玻璃的特效
  16. HTTP405: 错误方法 - 不支持使用的 HTTP 谓词。
  17. GB/T2659-2000《世界各国和地区名称代码》
  18. 诺基亚N950–MeeGo式体验
  19. 【算法】Xgboost原理
  20. java根据经纬度获取详细地址

热门文章

  1. cute cut pro中文版,一个被忽视了的视频剪辑App
  2. ffmpeg 如何获取视频帧数
  3. python爬虫怎么登录_Python爬虫基础-模拟登陆
  4. 【C语言】看了这篇文章,如果你还不会文件操作的话,我把这篇文章给吃了(doge)
  5. ABBYY FineReader 12激活教程
  6. 【C++】各种菱形—实心菱形(一)
  7. 【Doris Weekly】2020.10.12~2020.10.18
  8. ASUS|华硕 天选4 FX507VV 工厂系统 带ASUS Recovery恢复功能
  9. 真正解决问题:maven eclipse tomcat java.lang.ClassNotFoundException: org.springframework.web.context.Contex
  10. 15.4 寸macbook pro