OpenGL学习笔记【1】——简介

一、OpenGL概念

        OpenGL (Open Graphics Library,译名:开放式图形库开放式图形库) 是一种用于渲染 2D 和 3D 图形跨语言、跨平台编程接口(API)

二、OpenGL跨语言

       OpenGL 是一个 C 语言库,因此理解 C 语言(或 C++)的基本知识是非常有用的。然而,许多其他语言也有 OpenGL 的绑定,值得一提的包括:

(1)JavaScript绑定的WebGL(基于OpenGL ES 2.0在Web浏览器中的进行3D渲染的API);

(2)C绑定的WGL、GLX和CGL;

(3)iOS提供的C绑定;

(4)Android提供的Java和C绑定;

所以你可以选择你最熟悉的语言来学习。

三、OpenGL跨平台

        OpenGL 提供了一组底层的图形渲染函数,严格规定了每个函数该如何执行,以及它们的输出值,这些函数可以直接与图形硬件交互,实现高效的图形渲染。至于内部具体每个函数是如何实现(Implement)的,将由OpenGL库的开发者(通常是显卡的生产商)自行决定。   

     OpenGL被设计为只有输出的,只提供渲染功能,核心API没有窗口系统、音频、打印、键盘/鼠标或其他输入设备的概念,也正是这种限制使得OpenGL允许进行渲染的代码完全独立于它运行的操作系统,允许跨平台开发。

    OpenGL没有提供着色器编译器,而是由显卡驱动来完成着色器的编译工作,也就是说,只要显卡驱动支持对GLSL的编译它就能运行,所以能够跨平台具有强大的通用性和可移植性,可以将其轻松的移植在多个不同的平台上进行二次开发。因为OpenGL本身是一个与硬件无关的软件接口,所以,通用于市面上较为流行的平台:比如,Windows、Unix、Linux、MacOS等。

四、OpenGL扩展特性

       OpenGL的一大特性就是对扩展(Extension)的支持,当一个显卡公司提出一个新特性或者渲染上的大优化,通常会以扩展的方式在驱动中实现。扩展可能会引入新功能和新常量,并且可能放松或取消现有的OpenGL函数的限制。然后一个扩展就分成两部分发布:包含扩展函数原型
头文件和作为厂商的设备驱动。供应商使用扩展公开自定义的API而无需获得其他供应商或Khronos Group的支持,这大大增加了OpenGL的灵活性。

    每个扩展都与一个简短的

你可能感兴趣的:(学习,笔记)