Files
XCEngine/docs/api/resources/texture-import-settings/texture-import-settings.md
ssdfasd 8df04c120f docs: 更新 API 文档 - 多模块修复和完善
- audio: 更新 audio-system 方法文档
- components: 新增 audio-listener/audio-source 组件方法文档,新增 remove-component 方法
- core: 更新 filewriter, types 文档
- math: 更新 box 方法文档
- memory: 更新 proxy-allocator 文档
- resources: 更新 loader 和 texture 文档
- rhi: 更新 opengl 设备、shader、swap-chain 文档
- threading: 更新 mutex 和 task-system 文档
2026-03-26 01:58:45 +08:00

4.4 KiB
Raw Blame History

TextureImportSettings

命名空间: XCEngine::Resources

类型: class

继承: ImportSettings

头文件: XCEngine/Resources/TextureImportSettings.h

描述: 纹理资源导入设置类,定义从外部图像文件导入纹理时的配置选项。


概述

TextureImportSettings 继承自 ImportSettings提供纹理导入时的完整配置能力。支持纹理类型、目标格式、Mipmap 生成、各项异性过滤、sRGB 转换、图像翻转、边框颜色、压缩质量、硬件压缩、纹理最大尺寸、法线贴图生成等选项。LoadFromJSON()SaveToJSON() 当前为 stub 实现。


公共方法

方法 描述
TextureImportSettings() 构造函数
virtual ~TextureImportSettings() override 析构函数
Clone 克隆设置对象
LoadFromJSON 从 JSON 加载设置stub
SaveToJSON 保存为 JSONstub
SetTextureType 设置纹理类型
GetTextureType 获取纹理类型
SetTargetFormat 设置目标格式
GetTargetFormat 获取目标格式
SetGenerateMipmaps 设置是否生成 Mipmap
GetGenerateMipmaps 获取是否生成 Mipmap
SetMipmapFilter 设置 Mipmap 滤波器
GetMipmapFilter 获取 Mipmap 滤波器
SetMaxAnisotropy 设置最大各向异性级别
GetMaxAnisotropy 获取最大各向异性级别
SetSRGB 设置是否 sRGB
GetSRGB 获取 sRGB 设置
SetFlipVertical 设置是否垂直翻转
GetFlipVertical 获取垂直翻转设置
SetFlipHorizontal 设置是否水平翻转
GetFlipHorizontal 获取水平翻转设置
SetBorderColor 设置边框颜色
GetBorderColor 获取边框颜色
SetCompressionQuality 设置压缩质量
GetCompressionQuality 获取压缩质量
SetUseHardwareCompression 设置是否使用硬件压缩
GetUseHardwareCompression 获取硬件压缩设置
SetMaxSize 设置最大纹理尺寸
GetMaxSize 获取最大纹理尺寸
SetGenerateNormalMap 设置是否生成法线贴图
GetGenerateNormalMap 获取法线贴图生成设置
SetNormalMapStrength 设置法线贴图强度
GetNormalMapStrength 获取法线贴图强度

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);

相关文档