美文网首页
OpenGL 简介

OpenGL 简介

作者: BeginnerX | 来源:发表于2020-07-02 21:35 被阅读0次

    什么是 OpenGL

            OpenGL 是由Khronos组织制定并维护的规范。通常被认为是一个 API ,包含了一系列可以操作图形、图像的函数。但是,OpenGL本身并不是一个API,OpenGL 严格规定了每个函数该如何执行,如何输出。函数内部具体的实现则是由开发者去实现,这造就了 OpenGL 跨平台的特性,任何硬件厂商都可以实现 OpenGL 的 API。

            规范文档可在 https://www.khronos.org/registry/OpenGL/specs/gl/  找到

    OpenGL基本概念

    OpenGL 状态机

            状态机是一个手抽象的概念,表示一组状态变量的集合。每个状态变量都有不同的值。想象一下有这么一台机器,这台机器上有很多开关,控制着这台机器的运行的效果。改变这些开关的状态,就能达到不同的效果。

    OpenGL 上下文 

            OpenGL 上下文保存了 OpenGL 的各种状态。OpenGL 上下文是一个巨大的状态机。应用程序调用任何 OpenGL 的指令之前,需要安排首先创建一个 OpenGL 的上下文。

            由于 OpenGL 上下文是一个巨大的状态机,上下文的切换会产生较大的开销,但是不同的绘制模块,可能需要使用完全独立的状态管理。因此,可以在应用程序中分别创建多个不同的上下文,在不同线程中使用不同的上下文,上下文之间共享纹理、缓冲区等资源。这样的方案,会比反复切换上下文,或者大量修改渲染状态,更加合理高效的。

    渲染

            计算机将图像数据显示到屏幕上的过程。这是一个将原始图形数据图形化的过程。

    顶点数组和顶点缓冲区

            顶点数组:用于存储顶点数据,是存储在内存中的数据结构。

            顶点缓冲区:在显卡的显存中,也存储的顶点信息。

    管线(图形渲染管线)

            将一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。是将3D坐标转为2D坐标的处理过程。

            管线主要完成两部分工作:1、3D坐标转换为2D坐标;2、把2D坐标转变为实际的有颜色的像素。

    固定管线/存储着色器

            固定管线就像是一个封闭的流水线,设置好指定的参数,原始图形数据经过预先设计好的流程,完成渲染。

    着色器

        顶点着色器

            可编程着色器中的一个,是 OpenGL中计算顶点属性的程序,用来确定顶点的位置、顶点位置的换算、投影换算。

        片元着色器

            另外一个可编程着色器,用来对每个像素点的计算和填充

    GLSL(OpenGL Shader Language OpenGL着色语言)

            开发人员使用GLSL编写着色器程序,在 GPU 上执行。代替了固定渲染管线中部分功能,使渲染管线中不同层次具有可编程性。

    光栅化

            根据顶点确定像素点的范围,计算片元供片元着色器使用

    片元着色器

            计算一个像素的最终颜色。

    纹理(位图)

            纹理指的就是图像的内容,包含了图像上每个像素点的颜色和透明度。

    变换矩阵

            用于图形的平移、缩放、旋转

    投影矩阵

             将 3D 坐标转换成二维屏幕坐标

    视口

            OpenGL的渲染窗口

    投影    

            正投影,避免远小近大问题。

            透视投影,显示的更加逼真,显示 3D 效果

    相关文章

      网友评论

          本文标题:OpenGL 简介

          本文链接:https://www.haomeiwen.com/subject/everqktx.html