OpenGL着色器应用:简单三角形渲染与波纹网格变形
1. 与着色器程序通信
为了与着色器程序进行通信,应用程序在绑定着色器程序后,必须获取属性或统一变量(uniform)的位置。在 GLSLShader 类中,为了方便,我们将属性和统一变量的位置分别存储在两个 std::map 对象中。
1.1 获取属性/统一变量位置
通过 GLSLShader 类的索引器来访问任何属性或统一变量的位置。例如,若有一个名为 shader 的 GLSLShader 对象,且着色器中包含一个名为 MVP 的统一变量,我们可以通过以下步骤操作:
shader.AddUniform("MVP"); // 将统一变量的位置添加到映射中
int location = shader("MVP"); // 直接调用获取统一变量的位置
2. 使用着色器渲染简单彩色三角形
2.1 准备工作
假设已经创建了一个使用OpenGL 3.3核心配置文件的新Win32空项目。代码位于 Chapter1/SimpleTriangle 目录。
2.2 顶点变换阶段
顶点在最终渲染到屏幕之前,会经历以下变换阶段:
graph LR
超级会员免费看
订阅专栏 解锁全文
2324

被折叠的 条评论
为什么被折叠?



