66 lines
1.4 KiB
Markdown
66 lines
1.4 KiB
Markdown
# OpenGLDevice::CreateSampler
|
|
|
|
```cpp
|
|
RHISampler* CreateSampler(const SamplerDesc& desc) override
|
|
```
|
|
|
|
创建纹理采样器对象。
|
|
|
|
## 详细描述
|
|
|
|
创建配置纹理采样参数的状态对象。
|
|
|
|
### 默认采样参数
|
|
|
|
当前实现使用默认采样参数(`OpenGLSamplerDesc` 零初始化):
|
|
|
|
| 参数 | 默认值 |
|
|
|------|--------|
|
|
| 过滤模式 | 线性 |
|
|
| 地址模式 | Clamp |
|
|
| 各向异性 | 关闭 |
|
|
|
|
## 参数
|
|
|
|
- `desc` - 采样器描述符
|
|
|
|
### SamplerDesc 字段
|
|
|
|
| 字段 | 描述 |
|
|
|------|------|
|
|
| `minFilter` | 缩小过滤模式 |
|
|
| `magFilter` | 放大过滤模式 |
|
|
| `addressU/V/W` | UVW 坐标寻址模式 |
|
|
| `maxAnisotropy` | 最大各向异性级别 |
|
|
|
|
## 返回值
|
|
|
|
`RHISampler*` - 创建的采样器指针
|
|
|
|
## 注意事项
|
|
|
|
- 返回的采样器对象归调用者所有,需自行管理生命周期
|
|
- 当前实现忽略输入的 `desc`,使用默认参数
|
|
- 采样器需要绑定到纹理单元才能使用
|
|
|
|
## 示例
|
|
|
|
```cpp
|
|
SamplerDesc samplerDesc;
|
|
samplerDesc.minFilter = FilterMode::Linear;
|
|
samplerDesc.magFilter = FilterMode::Linear;
|
|
samplerDesc.addressU = AddressMode::Clamp;
|
|
samplerDesc.addressV = AddressMode::Clamp;
|
|
samplerDesc.maxAnisotropy = 16;
|
|
|
|
RHISampler* sampler = device.CreateSampler(samplerDesc);
|
|
|
|
// 绑定到纹理单元
|
|
sampler->Bind(0);
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [OpenGLDevice](device.md) - 类总览
|
|
- [OpenGLSampler](../opengl-sampler.md) - OpenGL 采样器实现
|