73 lines
2.0 KiB
Markdown
73 lines
2.0 KiB
Markdown
# OpenGLSampler
|
||
|
||
## 命名空间
|
||
|
||
`XCEngine::RHI`
|
||
|
||
## 头文件
|
||
|
||
`XCEngine/RHI/OpenGL/OpenGLSampler.h`
|
||
|
||
## 类型
|
||
|
||
| 类型 | 说明 |
|
||
|------|------|
|
||
| `OpenGLSampler` | OpenGL 采样器封装类,继承自 `RHISampler` |
|
||
| `OpenGLSamplerDesc` | 采样器描述结构体 |
|
||
| `SamplerWrapMode` | 采样器环绕模式枚举 |
|
||
| `SamplerFilter` | 采样器滤镜模式枚举 |
|
||
| `SamplerCompareMode` | 采样器比较模式枚举 |
|
||
|
||
## 描述
|
||
|
||
OpenGL 采样器实现,继承自 `RHISampler`。
|
||
|
||
## 概述
|
||
|
||
`OpenGLSampler` 是 RHI 抽象层对 OpenGL 纹理采样器的封装。通过 `OpenGLSamplerDesc` 配置采样参数(过滤模式、环绕模式、各向异性、LOD 等),`Initialize` 方法创建 OpenGL 采样器对象,`Bind`/`Unbind` 控制采样器与纹理单元的绑定状态。
|
||
|
||
**关键特性:**
|
||
- 支持点采样、线性采样、各向异性采样
|
||
- 支持 Repeat、Mirror、Clamp、Border 等寻址模式
|
||
- 支持 Mipmap 多级渐远纹理过滤
|
||
- 支持各向异性过滤和 LOD 范围控制
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [`OpenGLSampler`](constructor.md) | 构造函数 |
|
||
| [`Initialize`](initialize.md) | 初始化采样器(OpenGL 特有) |
|
||
| [`Shutdown`](shutdown.md) | 关闭采样器 |
|
||
| [`Bind`](bind.md) | 绑定采样器到纹理单元 |
|
||
| [`Unbind`](unbind.md) | 解绑采样器 |
|
||
| [`GetID`](get-id.md) | 获取采样器 ID |
|
||
| [`GetNativeHandle`](../../sampler/get-native-handle.md) | 获取原生句柄(继承自 `RHISampler`) |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
#include "XCEngine/RHI/OpenGL/OpenGLSampler.h"
|
||
|
||
using namespace XCEngine::RHI;
|
||
|
||
OpenGLSamplerDesc desc;
|
||
desc.minFilter = SamplerFilter::LinearMipmapLinear;
|
||
desc.magFilter = SamplerFilter::Linear;
|
||
desc.wrapS = SamplerWrapMode::Repeat;
|
||
desc.wrapT = SamplerWrapMode::Repeat;
|
||
desc.maxAnisotropy = 16.0f;
|
||
|
||
OpenGLSampler sampler;
|
||
if (sampler.Initialize(desc)) {
|
||
sampler.Bind(0);
|
||
sampler.Unbind(0);
|
||
sampler.Shutdown();
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [OpenGL 后端总览](../overview.md)
|
||
- [RHISampler](../../sampler/sampler.md) - 抽象采样器接口
|