4.5 KiB
4.5 KiB
TextureImportSettings
命名空间: XCEngine::Resources
类型: class
继承: ImportSettings
头文件: XCEngine/Resources/TextureImportSettings.h
描述: 纹理资源导入设置类,定义从外部图像文件导入纹理时的配置选项。
概述
TextureImportSettings 继承自 ImportSettings,提供纹理导入时的完整配置能力。支持纹理类型、目标格式、Mipmap 生成、各项异性过滤、sRGB 转换、图像翻转、边框颜色、压缩质量、硬件压缩、纹理最大尺寸、法线贴图生成等选项。LoadFromJSON() 和 SaveToJSON() 当前为 stub 实现。
公共方法
| 方法 | 描述 |
|---|---|
TextureImportSettings() |
构造函数 |
virtual ~TextureImportSettings() override |
析构函数 |
Core::UniqueRef<ImportSettings> Clone() const override |
克隆设置对象 |
bool LoadFromJSON(const Containers::String& json) override |
从 JSON 加载设置(stub) |
Containers::String SaveToJSON() const override |
保存为 JSON(stub) |
void SetTextureType(TextureType type) |
设置纹理类型 |
TextureType GetTextureType() const |
获取纹理类型 |
void SetTargetFormat(TextureFormat format) |
设置目标格式 |
TextureFormat GetTargetFormat() const |
获取目标格式 |
void SetGenerateMipmaps(bool generate) |
设置是否生成 Mipmap |
bool GetGenerateMipmaps() const |
获取是否生成 Mipmap |
void SetMipmapFilter(MipmapFilter filter) |
设置 Mipmap 滤波器 |
MipmapFilter GetMipmapFilter() const |
获取 Mipmap 滤波器 |
void SetMaxAnisotropy(Core::uint32 anisotropy) |
设置最大各向异性级别 |
Core::uint32 GetMaxAnisotropy() const |
获取最大各向异性级别 |
void SetSRGB(bool srgb) |
设置是否 sRGB |
bool GetSRGB() const |
获取 sRGB 设置 |
void SetFlipVertical(bool flip) |
设置是否垂直翻转 |
bool GetFlipVertical() const |
获取垂直翻转设置 |
void SetFlipHorizontal(bool flip) |
设置是否水平翻转 |
bool GetFlipHorizontal() const |
获取水平翻转设置 |
void SetBorderColor(const Math::Vector3& color) |
设置边框颜色 |
const Math::Vector3& GetBorderColor() const |
获取边框颜色 |
void SetCompressionQuality(CompressionQuality quality) |
设置压缩质量 |
CompressionQuality GetCompressionQuality() const |
获取压缩质量 |
void SetUseHardwareCompression(bool use) |
设置是否使用硬件压缩 |
bool GetUseHardwareCompression() const |
获取硬件压缩设置 |
void SetMaxSize(Core::uint32 size) |
设置最大纹理尺寸 |
Core::uint32 GetMaxSize() const |
获取最大纹理尺寸 |
void SetGenerateNormalMap(bool generate) |
设置是否生成法线贴图 |
bool GetGenerateNormalMap() const |
获取法线贴图生成设置 |
void SetNormalMapStrength(float strength) |
设置法线贴图强度 |
float GetNormalMapStrength() const |
获取法线贴图强度 |
MipmapFilter 枚举
| 值 | 描述 |
|---|---|
Box |
Box 滤波器 |
Kaiser |
Kaiser 滤波器 |
CompressionQuality 枚举
| 值 | 描述 |
|---|---|
Low |
低质量 |
Medium |
中等质量 |
High |
高质量 |
Ultra |
超高质量 |
使用示例
#include <XCEngine/Resources/TextureImportSettings.h>
#include <XCEngine/Resources/ResourceManager.h>
// 创建导入设置
TextureImportSettings settings;
settings.SetTextureType(TextureType::Texture2D);
settings.SetTargetFormat(TextureFormat::RGBA8);
settings.SetGenerateMipmaps(true);
settings.SetMipmapFilter(MipmapFilter::Kaiser);
settings.SetMaxAnisotropy(16);
settings.SetSRGB(true);
settings.SetFlipVertical(false);
settings.SetFlipHorizontal(false);
settings.SetBorderColor(Math::Vector3::Zero());
settings.SetCompressionQuality(CompressionQuality::High);
settings.SetUseHardwareCompression(true);
settings.SetMaxSize(2048);
settings.SetGenerateNormalMap(false);
settings.SetNormalMapStrength(1.0f);
// 克隆设置
auto cloned = settings.Clone();
// 加载纹理资源
ResourceHandle<Texture> tex = ResourceManager::Get().Load<Texture>("textures/diffuse.png", &settings);
相关文档
- 方法详情 - 所有方法的详细文档
- ImportSettings - 导入设置基类
- IResourceLoader - 资源加载器接口
- ResourceManager - 资源管理器
- Texture - 纹理资源类
- Resources 总览 - 资源模块总览