应用步骤
- 着色器和程序对象的概述
- 创建和编译着色器
- 创建和链接程序
【上接OpenGL ES 3.0 | 着色器源码、实例 与 管线程序源码、实例 的联系与细节 以及 各自的应用流程和相关API】 - 获取和设置统一变量
- 获取和设置属性
- 着色器编译器和程序二进制代码
统一变量和属性
一旦链接了
程序对象,就可以在对象上进行许多查询;首先,需要找出
程序中的活动统一变量;统一变量(uniform)是存储应用程序
通过OpenGL ES 3.0 API传递给着色器的
只读 常数值的变量;-
统一变量被组合成两类统一变量块;
第一类是命名统一变量块,统一变量的值 由统一变量缓冲区对象支持;
命名统一变量块被分配一个统一变量块索引;
-
第二类是默认的
统一变量块,用于在命名统一变量块之外声明的统一变量;
和命名统一变量块不同,
默认统一变量块没有名称或者统一变量块索引;
如果
统一变量在顶点着色器和片段着色器中均有声明,
则声明的类型必须相同,且在两个着色器中的值也需相同;在
链接阶段,链接程序将为程序中 与默认统一变量块相关的活动统一变量指定位置;这些
位置是 应用程序 用于 加载 统一变量的标志符;链接程序还将为与命名统一变量块相关的活动统一变量分配偏移和跨距(对于数组和矩阵类型的统一变量)
获取统一变量
-
查询程序中
活动统一变量的列表(/ 数量);
获取 程序中 最大统一变量名称的字符数量(最大长度):
-
找出每个
统一变量的细节:- 拿到
类型和名称:
- 拿到

最低0.47元/天 解锁文章
3413

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



