49 lines
1.2 KiB
Markdown
49 lines
1.2 KiB
Markdown
# OpenGLSampler::Initialize
|
|
|
|
```cpp
|
|
bool Initialize(const OpenGLSamplerDesc& desc);
|
|
```
|
|
|
|
初始化采样器。创建 OpenGL 采样器对象并根据描述符设置各项参数,包括过滤模式、环绕模式、各向异性级别和 LOD 范围。
|
|
|
|
**参数:**
|
|
- `desc` - 采样器描述符,包含以下字段:
|
|
- `minFilter` - 缩小过滤模式
|
|
- `magFilter` - 放大过滤模式
|
|
- `wrapS` - S轴环绕模式
|
|
- `wrapT` - T轴环绕模式
|
|
- `wrapR` - R轴环绕模式
|
|
- `maxAnisotropy` - 各向异性级别
|
|
- `minLod` - 最小 LOD 值
|
|
- `maxLod` - 最大 LOD 值
|
|
- `compareMode` - 比较模式(当前实现未使用)
|
|
- `compareFunc` - 比较函数(当前实现未使用)
|
|
|
|
**返回:** 成功返回 `true`,失败返回 `false`
|
|
|
|
**线程安全:** ❌
|
|
|
|
**复杂度:** O(1)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
OpenGLSamplerDesc desc;
|
|
desc.minFilter = SamplerFilter::LinearMipmapLinear;
|
|
desc.magFilter = SamplerFilter::Linear;
|
|
desc.wrapS = SamplerWrapMode::Repeat;
|
|
desc.wrapT = SamplerWrapMode::Repeat;
|
|
desc.maxAnisotropy = 16.0f;
|
|
desc.minLod = -1000.0f;
|
|
desc.maxLod = 1000.0f;
|
|
|
|
OpenGLSampler sampler;
|
|
if (sampler.Initialize(desc)) {
|
|
// 采样器初始化成功
|
|
}
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [OpenGLSampler 总览](sampler.md) - 返回类总览
|