1.1 KiB
1.1 KiB
OpenGLShader::SetMat4Array
设置 4x4 矩阵数组 uniform 变量。
void SetMat4Array(const char* name, const float* values, unsigned int count);
通过名称查找并设置着色器中的 4x4 矩阵数组 uniform 变量。矩阵按列主序存储。
参数:
name- uniform 变量名称values- 指向count * 16个 float 元素的数组指针(列主序排列)count- 矩阵数量
返回: 无
线程安全: ❌(需要在渲染线程调用)
示例:
// 设置多个变换矩阵(例如骨骼动画)
const unsigned int boneCount = 4;
float boneMatrices[4 * 16] = {
// 第一个矩阵
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f,
// 第二个矩阵
0.5f, 0.0f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f, 0.0f,
0.0f, 0.0f, 0.5f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f,
// ...更多矩阵
};
shader->SetMat4Array("u_boneMatrices", boneMatrices, boneCount);
相关文档
- OpenGLShader 总览 - 返回类总览
- SetMat4 (single) - 设置单个 4x4 矩阵