将数据从STD ::向量传递到GLSL中的均匀阵列
Pass data from std::vector to uniform array in glsl
我在这样的着色器中有一个制服:
uniform vec3 origins[10];
和这样的代码中的std ::向量:
std::vector<glm::vec3> origins;
充满了十个glm::vec3
元素。
有人知道如何将其传递给着色器吗?我想:
GLint originsLoc = glGetUniformLocation(programID, "origins");
glUniform3fv(originsLoc, 10, origins.data());
会这样做,但不会编译。错误说有no matching function for call to 'glUniform3fv'
。如何以满足glUniform3fv
功能的方式传递std::vector
中的数据?
您应该使用glfloat并注意GLM :: vec3。但这是任何方式:
for (int i = 0; i != 10; i++) {
GLint originsLoc = glGetUniformLocation(programID, "origins[i]");
glUniform3f(originsLoc, origins[i].x, origins[i].y, origins[i].z);
}
相关文章:
- OpenMP阵列性能较差
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- Opengl 3.1 GLSL 140 在 C++ 年输出白色在片段着色器中
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 在不使用统一的情况下将纹理传递给 GLSL 着色器?
- 在细胞中产生噪声 - CPP 和 GLSL
- 从较小的阵列到较大的阵列的元素级转换
- 仅在大型阵列上出现合并排序分段错误
- 将数据从STD ::向量传递到GLSL中的均匀阵列
- 骨骼动画ussing ASSIMP和GLSL:骨骼均匀阵列大小