OpenGL_001入门

OpenGL是什么:

    1:OpenGL包含了一系列可以操作图形,图像函数,然而,OpenGL并不是一个API。

    2:OpenGL严格规定了每个函数如何执行,以及他们输出的值,其内部每个函数的实现是由OpenGL库的开发者决定的,OpenGL规范并没有规定实现细节,具体的OpenGL库允许实用不同的实现,只要功能与规范相匹配即可。

    3:实际上,OpenGL库的开发者通常是显卡的生产商。

OpenGL模式:

    OpenGL的渲染模式分为立即渲染模式核心模式

    1:立即渲染模式:早期的OpenGL都是使用立即渲染模式,也就是固定管线的方式,这样绘图很方便,OpenGL大多数功能都被库隐藏起来了,开发者很少能控制OpenGL如何进行计算的自由,缺乏灵活性,立即渲染模式优点在于实用方便,容易理解,但是效率低,灵活性差。立即渲染模式在一步一步被废弃,OpenGL开发者更希望我们使用核心模式。

    2:核心模式:在使用核心模式的时候,OpenGL会迫使我们实用现代的函数,当我们实用已经废弃的函数的时候,OpenGL会抛出错误,并终止绘图。现代函数的优点在于,灵活性非常高。

OpenGL状态机:

    OpenGL自身是一个很大的状态机,OpenGL的状态通常称为OpenGL上下文,通常,我们实用设置选项,操作选项,来改变状态机。最后,实用OpenGL上下文来渲染图形图像。

OpenGL开发库:

    在使用OpenGL之前,需要创建一个OpenGL上下文,和一个用于显示图形的窗口。由于这些操作在不同的系统上都是不一样的,我们需要创建窗体程序,定义OpenGL上下文,以及处理用户输入等。

    针对OpenGL,有一些库已经提供了我们所需要的功能,例如:GLUT,SDL, SFML, GLFW。下载地址:

GLUT:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

SDL:http://www.libsdl.org/download-2.0.php

GLFW:http://www.glfw.org/download.html

    在后面,将会实用GLFW完成OpenGL的学习。GLFW的安装及配置略微复杂,需要自己下载库,实用CMake编译成lib,在使用得到的lib,如果直接下载对应编译器的二进制文件,可以是使用,但是容易出现不可预知的错误,最好需要自己下载源码,实用CMake工具编译。具体流程可以参考一下博客:GLFW配置详解

    OpenGL只是一个标准/规范,具体实现是由驱动开发商针对特定显卡实现的,由于OpenGL版本众多,很多函数的位置在变异的时候,都无法被确定下来,因此,开发者需要自己获取OpenGL函数的地址,并保存为一个函数指针供后面开发使用,实用C语言那种函数指针,无疑是非常麻烦、复杂的,GLAD库就是为了简化这个过程儿诞生的库。

    GLAD:glad是一颗开源库,是通过一个在线服务下载,打开glad在线服务,将language配制成C++,API选项中选择3.3以上的版本,模式设置为core(核心模式),确保生成加载器是被选中的,然后点击生成,下载生成的zip压缩文件即可。后面将会使用到glad。

GLAD在线服务:http://glad.dav1d.de/

开发库快捷下载:

    以下链接,是我学习OpenGL所子下载的最新资源(2018.03.31)链接,里面包含常用的工具及库,当然,我们并不一定全部会用到,大家也可以从这里免费下载,也可以联系QQ292786156直接获取,希望对大家学习有帮助。

OpenGL开发使用库



猜你喜欢

转载自blog.csdn.net/qq_31622605/article/details/79768395