OpenGL-客户端和服务器模式

首先理解下绘图过程:

无非是把数据从系统内存中复制到图形卡,然后绘制出图形

绘图过程

OpenGL设计模式

OpenGL是按照客户机-服务器模式设计

客户端:

  • 负责发送OpenGL命令
  • CPU上面存储的代码,比如OpenGLApi,C和C++代码

服务端:

  • 负责接收OpenGL命令并执行相应的操作
  • 调用的是GPU芯片
客户端-服务器

进一步阐述

  • 客户端是存储在CPU储存器中的,并且在应用程序中执行或者在主系统内存中驱动程序中执行。驱动程序会将渲染命令数组组合起来,发送给服务器执行!
  • 服务器客户端功能上也是异步的。客户端不断的把数据块和命令块组合在⼀起输送到缓冲区,然后缓冲区就会发送到服务器执行
  • 管线停滞:在以下两种情况会发生
    1)服务器停⽌工作等待客户机
    2)客户机停⽌工作来等待服务器做好接受更多的命令和准备

不同角度理解:

  • 软件:
    客户端:我们编写的程序
    服务端:计算机图形硬件制造商提供的OpenGL的实现

  • 个人计算机:
    客户端:CPU、内存等硬件,以及用户编写的OpenGL程序
    服务端:OpenGL驱动程序、显示设备(实际上就是图形加速卡上的硬件和内存)

推荐阅读更多精彩内容