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高
- 苹果不支持
05-11 22:37