OpenGL--渲染流程解析
1.客户端-服务端
OpeneGL渲染流程是遵循客户端-服务器模式的,客户端与服务端协作完成图形图像的渲染流程。
客户端:负责发送OpenGl命令(如OprnGLAPI、C++代码等)至服务端,客户端运行于CPU中,在主系统内存中的驱动程序中执行,将渲染命令和数组进行组合,并发送到服务端。
服务端:负责执行OpenGL命令,进行主要的渲染操作,服务端运行于GPU中。
客户端与服务端在功能上是异步的,他们各自是独立的软件块或硬件块。图形渲染的过程就是客户端与服务端持续通信的过程。如果客户端停止工作等待服务端或者服务端停止工作等待客户端,这种情况称为管线停滞。
2.着色器
着色器是用GLSL语言编写的程序,用于处理客户端传入的数据。
顶点着色器:处理客户端输入的原始数据,进行计算光照效果、位移值、颜色值等。而且每个顶点对应一次顶点着色器的执行。这个阶段对于所有的OpenGl程序都是必需的。
片元着色器:将纹理数据、Uniforms数据等进行处理,输出屏幕上将看到的颜色值数据。这个阶段对于所有的OpenGl程序都是必需的。
着色器有了&#x