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

2.0 KiB
Raw Blame History

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 构造函数
Initialize 初始化采样器OpenGL 特有)
Shutdown 关闭采样器
Bind 绑定采样器到纹理单元
Unbind 解绑采样器
GetID 获取采样器 ID
GetNativeHandle 获取原生句柄(继承自 RHISampler

使用示例

#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();
}

相关文档