# RHIShader::SetVec3 ```cpp virtual void SetVec3(const char* name, float x, float y, float z) = 0; ``` 设置三维向量 uniform 变量。 通过名称查找并设置着色器中的三维向量 uniform 变量。常见用途包括设置位置、法线、方向、光照方向、颜色等。 **参数:** - `name` - uniform 变量名称 - `x` - 向量的 X 分量 - `y` - 向量的 Y 分量 - `z` - 向量的 Z 分量 **线程安全:** ❌(需要在渲染线程调用) **复杂度:** O(1)(通常为哈希表查找) **示例:** ```cpp RHIShader* shader = device->CreateShader(); shader->CompileFromFile(L"shaders/pixel.cso", "PSMain", "ps_5_0"); shader->Bind(); // 设置光照方向 shader->SetVec3("u_lightDir", 0.5f, 1.0f, 0.3f); // 设置相机位置 shader->SetVec3("u_cameraPos", camera.x, camera.y, camera.z); // 设置材质颜色 shader->SetVec3("u_baseColor", 1.0f, 0.8f, 0.6f); ``` ## 相关文档 - [RHIShader](shader.md) - 返回类总览 - [`SetFloat`](set-float.md) - 设置浮点数 uniform - [`SetVec4`](set-vec4.md) - 设置四维向量 uniform