OpenGL初识

OpenGL

概念

  • OpenGL提供的是一系列接口, 它是指一个规范, OpenGL规范严格规定了每个函数该如何执行, 以及它们的输出值, 具体的实现是由各个显示设备厂商, 它作为本地系统库直接运行在硬件上, 如果OpenGL出现了BUG, 应该升级显卡驱动
  • 顶点着色器(Vectex Shader): 负责绘制图形, 根据顶点坐标, 建立图形模型
  • 片段着色器(Fragment Shader): 根据顶点给图形填充颜色
  • 渲染通道: 由顶点着色器与片段着色器组成, 在现代技术中, 渲染通道被Stream Processor取代

OpenGL组件

  • GLEW是一个跨平台的C++扩展库, 基于OpenGL图形接口, 下载过来就有了glew.h头文件
  • glu是工具库, 封装了OpenGL的函数, 提供了更为直观简单的接口, 函数名为glu
  • glad也是一个工具库, 和glu一样, 与窗口有关

执行流程

  • 输入顶点数据->执行顶点着色器, 根据顶点画图几何图形->光栅化图形(加入我们的几何图形是一条直线, 进行了光栅化就是将该直线进行分段, 具体效果见Windows的mspaint软件)->执行片段着色器->写入帧缓冲区->显示在屏幕上

DirectX

  • OpenGL是图形的API
  • DirectX是许多中API的集合, Direct3D(3D图形API, 简称D3D), Direct2D(2D图形), DirectCompute(通用计算), XAudio(音频), XInput(Xbox手柄输入)
  • DX11性能好, DX12更加提高了DX11(如果开发者厉害的话)

OpenGL与DirectX比较

  • OpenGL更加开放, 但是效率比DirectX低, OpenGL渲染在Windows比DX好
  • 在实际游戏开发中, OpenGL基本上不用

Vulkan

  • 是OpenGL的继承者, 入门难度比OpenGL高
  • 苹果不支持
原文地址:https://www.cnblogs.com/megachen/p/10542376.html