35 lines
916 B
Markdown
35 lines
916 B
Markdown
|
|
# OpenGLShader::SetMat3
|
||
|
|
|
||
|
|
设置 3x3 矩阵 uniform 变量。
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
void SetMat3(const char* name, const float* value);
|
||
|
|
```
|
||
|
|
|
||
|
|
通过名称查找并设置着色器中的 3x3 变换矩阵 uniform 变量。矩阵按列主序存储。常见用途包括设置法线矩阵、模型矩阵的 3x3 部分等。
|
||
|
|
|
||
|
|
**参数:**
|
||
|
|
- `name` - uniform 变量名称
|
||
|
|
- `value` - 指向 9 个 float 元素的数组指针(列主序排列)
|
||
|
|
|
||
|
|
**返回:** 无
|
||
|
|
|
||
|
|
**线程安全:** ❌(需要在渲染线程调用)
|
||
|
|
|
||
|
|
**示例:**
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
// 设置 3x3 法线矩阵
|
||
|
|
float normalMatrix[9] = {
|
||
|
|
1.0f, 0.0f, 0.0f, // 第一列
|
||
|
|
0.0f, 1.0f, 0.0f, // 第二列
|
||
|
|
0.0f, 0.0f, 1.0f // 第三列
|
||
|
|
};
|
||
|
|
shader->SetMat3("u_normalMatrix", normalMatrix);
|
||
|
|
```
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [OpenGLShader 总览](shader.md) - 返回类总览
|
||
|
|
- [SetMat2](set-mat2.md) - 设置 2x2 矩阵
|
||
|
|
- [SetMat4](../../shader/set-mat4.md) - 设置 4x4 矩阵
|