Files
XCEngine/docs/api/resources/mesh-import-settings/mesh-import-settings.md
ssdfasd a1804f4cb0 docs: 更新 resources, rhi, scene 模块及新增 camera-component 方法文档
- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档
- rhi: 更新 opengl render-target-view 文档
- components: 新增 camera-component 全部方法文档 (15个文件)
2026-03-26 02:00:45 +08:00

3.7 KiB
Raw Blame History

MeshImportSettings

命名空间: XCEngine::Resources

类型: class

继承: ImportSettings

头文件: XCEngine/Resources/MeshImportSettings.h

描述: 网格资源导入设置类,定义从外部模型文件导入网格时的配置选项。


概述

MeshImportSettings 继承自 ImportSettings,提供网格导入时的完整配置能力。支持导入标志位操作、缩放、偏移、轴转换、网格合并等选项。LoadFromJSON()SaveToJSON() 当前为 stub 实现。


公共方法

方法 描述
MeshImportSettings() 构造函数
virtual ~MeshImportSettings() override 析构函数
Core::UniqueRef<ImportSettings> Clone() const override 克隆设置对象
bool LoadFromJSON(const Containers::String& json) override 从 JSON 加载设置stub
Containers::String SaveToJSON() const override 保存为 JSONstub
void SetImportFlags(MeshImportFlags flags) 设置导入标志
MeshImportFlags GetImportFlags() const 获取导入标志
void AddImportFlag(MeshImportFlags flag) 添加导入标志
void RemoveImportFlag(MeshImportFlags flag) 移除导入标志
bool HasImportFlag(MeshImportFlags flag) const 检查是否包含标志
void SetScale(float scale) 设置缩放
float GetScale() const 获取缩放
void SetOffset(const Math::Vector3& offset) 设置偏移
const Math::Vector3& GetOffset() const 获取偏移
void SetAxisConversion(bool convert) 设置轴转换
bool GetAxisConversion() const 获取轴转换设置
void SetMergeMeshes(bool merge) 设置是否合并网格
bool GetMergeMeshes() const 获取合并网格设置
void SetOptimizeThreshold(float threshold) 设置优化阈值
float GetOptimizeThreshold() const 获取优化阈值
void SetImportScale(float scale) 设置导入缩放
float GetImportScale() const 获取导入缩放
void SetThreshold(float threshold) 设置阈值
float GetThreshold() const 获取阈值

MeshImportFlags 枚举

标志 描述
None 0 无特殊标志
FlipUVs 1 << 0 翻转 UV 坐标
FlipWindingOrder 1 << 1 翻转顶点绕序
GenerateNormals 1 << 2 生成法线
GenerateTangents 1 << 3 生成切线
OptimizeMesh 1 << 4 优化网格
ImportSkinning 1 << 5 导入骨骼蒙皮数据
ImportAnimations 1 << 6 导入动画数据
ImportMaterials 1 << 7 导入材质
ImportCameras 1 << 8 导入相机
ImportLights 1 << 9 导入灯光

支持位运算组合:operator|operator&operator~


使用示例

#include <XCEngine/Resources/MeshImportSettings.h>
#include <XCEngine/Resources/ResourceManager.h>

// 创建导入设置
MeshImportSettings settings;
settings.SetImportFlags(MeshImportFlags::FlipUVs | MeshImportFlags::GenerateNormals | MeshImportFlags::OptimizeMesh);
settings.SetScale(1.0f);
settings.SetOffset(Math::Vector3::Zero());
settings.SetAxisConversion(true);
settings.SetMergeMeshes(false);
settings.SetOptimizeThreshold(0.3f);

// 克隆设置
auto cloned = settings.Clone();

// 加载网格资源
ResourceHandle<Mesh> mesh = ResourceManager::Get().Load<Mesh>("models/player.fbx", &settings);

相关文档