六、OpenGL 2.0 通过引入可编程着色器,将渲染控制权从硬件厂商转移到开发者手中。这是如何实现的,或者说可编程着色器是如何实现的
OpenGL 2.0 可编程着色器的实现原理与控制权转移机制
一、可编程着色器的技术架构基础
OpenGL 2.0(2004 年)通过 ** 着色器程序(Shader Programs)和着色器语言(GLSL)** 实现渲染逻辑的完全可编程化,其核心架构包括:
-
着色器语言(GLSL)
- 类 C 语法:专门设计用于 GPU 编程,支持向量 / 矩阵运算、纹理操作等
- 数据类型:基本类型(float, int)、向量(vec2/vec3/vec4)、矩阵(mat4)
- 执行单元:
- 顶点着色器:每个顶点执行一次
- 片段着色器:每个像素执行一次
-
着色器程序的编译与执行
- 离线编译:开发者编写着色器代码→编译为 GPU 可执行的微代码
- 运行时链接:通过 OpenGL API 将编译后的着色器链接到程序中
c
// 创建并编译顶点着色器 GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader, 1, &vertexShaderCode