Files
XCEngine/docs/api/rhi/opengl/sampler/sampler.md
2026-03-20 02:35:45 +08:00

73 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) - 抽象采样器接口