- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档 - rhi: 更新 opengl render-target-view 文档 - components: 新增 camera-component 全部方法文档 (15个文件)
3.7 KiB
3.7 KiB
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 |
保存为 JSON(stub) |
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);
相关文档
- ImportSettings - 导入设置基类
- IResourceLoader - 资源加载器接口
- ResourceManager - 资源管理器
- Resources 总览 - 资源模块总览