OpenGL本身是一个图形API规范,它定义了一系列函数调用接口,这些接口可以通过多种编程语言来调用,最常见的是C和C++。
GLSL (OpenGL Shading Language) 是OpenGL的着色器语言,用于编写在GPU上运行的着色器程序,包括顶点着色器(Vertex Shader)、片段着色器(Fragment Shader)等。
在典型的OpenGL应用程序中,程序结构通常是:
使用C或C++编写主程序,初始化OpenGL上下文,设置渲染状态,提交绘图命令等使用GLSL编写着色器程序,控制GPU渲染管线中的可编程部分
所以,OpenGL应用程序通常由两部分组成:
主程序:通常用C或C++编写,处理OpenGL上下文、窗口系统交互、资源管理等着色器代码:用GLSL编写,直接在GPU上运行,负责实际的顶点变换和像素着色
这两者协同工作:C++代码设置上下文和状态,然后向GPU提交GLSL着色器代码和绘制命令。
OpenGL的使用包含两部分编程模型:
应用程序代码:通常使用C或C++编写,负责:
创建OpenGL上下文管理顶点数据和纹理等资源控制渲染流程处理窗口系统交互
着色器代码:使用GLSL (OpenGL Shading Language) 编写,在GPU上运行:
顶点着色器 (Vertex Shader)片段着色器 (Fragment Shader)其他可选着色器 (几何、曲面细分等)
实际开发中,你需要同时使用这两种语言:C/C++控制应用程序流程和资源,GLSL控制GPU渲染管线中的可编程部分。两者协同工作,C++代码会编译并加载GLSL代码到GPU上执行。