42 lines
1006 B
Markdown
42 lines
1006 B
Markdown
# RHIShader::SetFloat
|
|
|
|
```cpp
|
|
virtual void SetFloat(const char* name, float value) = 0;
|
|
```
|
|
|
|
设置浮点数 uniform 变量。
|
|
|
|
通过名称查找并设置着色器中的单精度浮点数 uniform 变量。常见用途包括设置时间值、透明度、缩放因子等。
|
|
|
|
**参数:**
|
|
- `name` - uniform 变量名称
|
|
- `value` - 要设置的浮点数值
|
|
|
|
**线程安全:** ❌(需要在渲染线程调用)
|
|
|
|
**复杂度:** O(1)(通常为哈希表查找)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
RHIShader* shader = device->CreateShader();
|
|
shader->CompileFromFile(L"shaders/pixel.cso", "PSMain", "ps_5_0");
|
|
shader->Bind();
|
|
|
|
// 设置时间
|
|
shader->SetFloat("u_time", elapsedTime);
|
|
|
|
// 设置透明度
|
|
shader->SetFloat("u_alpha", 0.5f);
|
|
|
|
// 设置雾的起始距离
|
|
shader->SetFloat("u_fogStart", 10.0f);
|
|
shader->SetFloat("u_fogEnd", 100.0f);
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [RHIShader](shader.md) - 返回类总览
|
|
- [`SetInt`](set-int.md) - 设置整数 uniform
|
|
- [`SetVec3`](set-vec3.md) - 设置三维向量 uniform
|