Files
XCEngine/docs/api/resources/texture-import-settings/texture-import-settings.md

4.5 KiB
Raw Blame History

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 保存为 JSONstub
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);

相关文档