Files
XCEngine/docs/api/rhi/opengl/sampler/sampler.md
ssdfasd 1cf744b755 refactor(docs): RHI模块文档重构 - 修复18处链接错误并新增RHIFramebuffer/RHIRenderPass文档
- 修复opengl/下13个文件对overview.md的错误引用,改为opengl.md
- 修复opengl/shader/下2处get-native-handle.md的错误路径引用
- 修复rhi.md中rhifactory路径错误
- 修复opengl.md中对d3d12.md的错误引用
- 修复opengl/README.md中的overview.md引用
- 新增RHIFramebuffer完整文档(7个文件)
- 新增RHIRenderPass完整文档(7个文件)
- 更新rhi.md总览页,添加RHIFramebuffer和RHIRenderPass分类
2026-03-26 01:29:00 +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 后端总览](../opengl.md)
- [RHISampler](../../sampler/sampler.md) - 抽象采样器接口