Files
XCEngine/docs/api/rhi/rhi-sampler.md

2.7 KiB
Raw Blame History

RHISampler

命名空间: XCEngine::RHI

类型: class (abstract)

描述: GPU 纹理采样器抽象接口,用于配置纹理过滤和寻址模式。

概述

RHISampler 封装了纹理采样器的配置包括过滤模式、寻址模式、各向异性、mipmap 等设置。

公共方法

生命周期

方法 描述
virtual void Shutdown() 释放采样器资源

绑定/解绑

方法 描述
virtual void Bind(unsigned int unit) 绑定采样器到纹理单元
virtual void Unbind(unsigned int unit) 解绑采样器

属性访问

方法 描述
virtual void* GetNativeHandle() 获取原生 API 句柄
virtual unsigned int GetID() 获取采样器 ID

采样器描述 (SamplerDesc)

成员 类型 描述
filter uint32_t 过滤模式
addressU uint32_t U 轴寻址模式
addressV uint32_t V 轴寻址模式
addressW uint32_t W 轴寻址模式
mipLodBias float Mipmap 级别偏移
maxAnisotropy uint32_t 最大各向异性级别
comparisonFunc uint32_t 比较函数
borderColorR float 边框颜色 R
borderColorG float 边框颜色 G
borderColorB float 边框颜色 B
borderColorA float 边框颜色 A
minLod float 最小 Mipmap 级别
maxLod float 最大 Mipmap 级别

过滤模式 (FilterMode)

枚举值 描述
Point 点采样
Linear 双线性插值
Anisotropic 各向异性过滤
ComparisonPoint 带比较的点采样
ComparisonLinear 带比较的双线性插值
ComparisonAnisotropic 带比较的各向异性

寻址模式 (TextureAddressMode)

枚举值 描述
Wrap 重复寻址
Mirror 镜像寻址
Clamp 钳制寻址
Border 边框颜色寻址
MirrorOnce 单次镜像

使用示例

// 创建采样器
SamplerDesc samplerDesc;
samplerDesc.filter = (uint32_t)FilterMode::Anisotropic;
samplerDesc.addressU = (uint32_t)TextureAddressMode::Wrap;
samplerDesc.addressV = (uint32_t)TextureAddressMode::Wrap;
samplerDesc.addressW = (uint32_t)TextureAddressMode::Wrap;
samplerDesc.maxAnisotropy = 16;
samplerDesc.minLod = 0;
samplerDesc.maxLod = FLT_MAX;
samplerDesc.mipLodBias = 0;
samplerDesc.comparisonFunc = (uint32_t)ComparisonFunc::Never;

RHISampler* sampler = device->CreateSampler(samplerDesc);

// 绑定到纹理单元 0
sampler->Bind(0);

// 解绑
sampler->Unbind(0);

相关文档