Files
XCEngine/docs/api/resources/mesh-loader/index.md

2.2 KiB
Raw Blame History

MeshLoader

命名空间

XCEngine::Resources

类型

类 (Class)

描述

网格资源加载器,负责从磁盘加载 .fbx.obj.gltf.glb.dae.stl 格式的网格资源文件。

概述

MeshLoader 继承自 IResourceLoader,实现了网格资源的加载功能。它支持多种主流 3D 模型文件格式,能够读取文件数据并创建 Mesh 对象。加载过程中会提取资源的基本信息路径、名称、GUID并设置内存占用。当前实现专注于文件读取和基础资源创建具体网格数据解析由 Mesh 类完成。

公共方法

方法 签名 描述
MeshLoader MeshLoader() 默认构造函数
~MeshLoader virtual ~MeshLoader() 析构函数
GetResourceType ResourceType GetResourceType() const 返回资源类型为 Mesh
GetSupportedExtensions Array<String> GetSupportedExtensions() const 返回支持的扩展名列表
CanLoad bool CanLoad(const String& path) const 检查给定路径是否可被加载
Load LoadResult Load(const String& path, const ImportSettings* settings = nullptr) 加载指定路径的网格资源
GetDefaultSettings ImportSettings* GetDefaultSettings() const 返回默认导入设置

使用示例

#include "Resources/MeshLoader.h"
#include "Resources/ResourceManager.h"

using namespace XCEngine::Resources;

// 通过 ResourceManager 加载网格
auto meshHandle = ResourceManager::Get().Load<Mesh>("assets/models/player.fbx");
if (meshHandle.IsValid()) {
    Mesh* mesh = meshHandle.Get();
    // 使用网格...
}

// 直接使用 MeshLoader
MeshLoader loader;
LoadResult result = loader.Load("assets/models/player.obj");
if (result.IsSuccess()) {
    Mesh* mesh = static_cast<Mesh*>(result.GetResource());
    // 使用网格...
}

相关文档