docs: add xceditor api tree and new resource docs
This commit is contained in:
32
docs/api/XCEngine/Resources/GaussianSplat/GaussianSplat.md
Normal file
32
docs/api/XCEngine/Resources/GaussianSplat/GaussianSplat.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# GaussianSplat
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `submodule`
|
||||
|
||||
**描述**: Gaussian Splat 资源子模块,覆盖运行时 splat payload、artifact I/O 与对应 loader。
|
||||
|
||||
## 概述
|
||||
|
||||
`Resources::GaussianSplat` 当前负责把压缩后的 splat payload 以资源形式接入引擎。按当前实现,这条链路分成三层:
|
||||
|
||||
1. `GaussianSplat`
|
||||
- 保存 metadata、section table 与原始 payload
|
||||
2. `GaussianSplatArtifactIO`
|
||||
- 读写 `.xcgsplat` artifact,并在加载时构造 `GaussianSplat`
|
||||
3. `GaussianSplatLoader`
|
||||
- 作为 `IResourceLoader` 接入 `ResourceManager`
|
||||
|
||||
和 [Model](../Model/Model.md) / [Mesh](../Mesh/Mesh.md) 这类图结构资源不同,`GaussianSplat` 更像“多 section 二进制块 + metadata”的只读 payload 资源。
|
||||
|
||||
## 头文件
|
||||
|
||||
- [GaussianSplat](GaussianSplat/GaussianSplat.md) - `GaussianSplat.h`
|
||||
- [GaussianSplatArtifactIO](GaussianSplatArtifactIO/GaussianSplatArtifactIO.md) - `GaussianSplatArtifactIO.h`
|
||||
- [GaussianSplatLoader](GaussianSplatLoader/GaussianSplatLoader.md) - `GaussianSplatLoader.h`
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Resources](../Resources.md)
|
||||
- [Core / Asset](../../Core/Asset/Asset.md)
|
||||
- [Model](../Model/Model.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::Clear
|
||||
|
||||
清空内部数据。
|
||||
|
||||
```cpp
|
||||
void Clear();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::Clear(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,28 @@
|
||||
# GaussianSplat::GaussianSplat()
|
||||
|
||||
构造对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplat();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,33 @@
|
||||
# GaussianSplat::CreateOwned
|
||||
|
||||
创建新对象或资源。
|
||||
|
||||
```cpp
|
||||
bool CreateOwned(const GaussianSplatMetadata& metadata, Containers::Array<GaussianSplatSection>&& sections, Containers::Array<Core::uint8>&& payload);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `metadata` - 参数语义详见头文件声明。
|
||||
- `sections` - 参数语义详见头文件声明。
|
||||
- `payload` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::CreateOwned(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,29 @@
|
||||
# GaussianSplat::~GaussianSplat()
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
|
||||
```cpp
|
||||
~GaussianSplat() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,31 @@
|
||||
# GaussianSplat::FindSection
|
||||
|
||||
查找并返回匹配对象。
|
||||
|
||||
```cpp
|
||||
const GaussianSplatSection* FindSection(GaussianSplatSectionType type) const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `type` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `const GaussianSplatSection*` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::FindSection(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,64 @@
|
||||
# GaussianSplat
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/Resources/GaussianSplat/GaussianSplat.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/GaussianSplat/GaussianSplat.cpp`
|
||||
|
||||
**描述**: Gaussian Splat 运行时资源对象,保存 metadata、section table 与原始 payload。
|
||||
|
||||
## 概述
|
||||
|
||||
`GaussianSplat` 当前把 splat 数据拆成三层状态:
|
||||
|
||||
- `GaussianSplatMetadata`
|
||||
- 内容版本、splat/chunk/camera 数量、bounds 与 section format
|
||||
- `GaussianSplatSection`
|
||||
- 每个 section 的类型、格式、payload 偏移、大小和元素布局
|
||||
- `payload`
|
||||
- 实际的二进制块数据
|
||||
|
||||
这让资源对象可以在不理解每种 section 语义的前提下,统一保存和查询 payload。
|
||||
|
||||
## 当前状态模型
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `m_metadata` | 版本、bounds、计数和 section format |
|
||||
| `m_sections` | section 描述表 |
|
||||
| `m_payload` | 原始二进制 payload |
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
- `CreateOwned(...)`
|
||||
- 先验证 section table,再接管 metadata / sections / payload
|
||||
- `FindSection(...)`
|
||||
- 按 `GaussianSplatSectionType` 查找 section 记录
|
||||
- `GetSectionData(...)`
|
||||
- 根据 section 的 `dataOffset` 返回 payload 里的起始地址
|
||||
- `Clear()`
|
||||
- 清空 metadata、section table 和 payload,并把资源标记为 invalid
|
||||
- `Release()`
|
||||
- 当前直接执行 `delete this`
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/GaussianSplat/test_gaussian_splat.cpp`
|
||||
- 覆盖 `CreateOwned(...)` 的 metadata / payload 保存与非法 section layout 拒绝
|
||||
- `engine/src/Resources/GaussianSplat/GaussianSplatArtifactIO.cpp`
|
||||
- 当前把 artifact 读回结果装配成 `GaussianSplat`
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前对象只提供按 section 粗粒度查询,不做更高层语义解码。
|
||||
- `ValidateSections(...)` 会拒绝 `Unknown` section、越界 payload 区间和重复 section type。
|
||||
- payload 生命周期完全由资源对象拥有,不借用外部内存。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [GaussianSplat 子模块](../GaussianSplat.md)
|
||||
- [GaussianSplatArtifactIO](../GaussianSplatArtifactIO/GaussianSplatArtifactIO.md)
|
||||
- [GaussianSplatLoader](../GaussianSplatLoader/GaussianSplatLoader.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetBounds
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Math::Bounds& GetBounds() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Math::Bounds&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetBounds(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetCameraCount
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Core::uint32 GetCameraCount() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Core::uint32` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetCameraCount(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetCameraFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetCameraFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetCameraFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetChunkCount
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Core::uint32 GetChunkCount() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Core::uint32` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetChunkCount(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetChunkFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetChunkFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetChunkFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetColorFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetColorFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetColorFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetContentVersion
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Core::uint32 GetContentVersion() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Core::uint32` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetContentVersion(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetGUID
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceGUID GetGUID() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceGUID` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetGUID(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetMemorySize
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
size_t GetMemorySize() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `size_t` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetMemorySize(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetMetadata
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const GaussianSplatMetadata& GetMetadata() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const GaussianSplatMetadata&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetMetadata(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetName
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::String& GetName() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::String&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetName(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetOtherFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetOtherFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetOtherFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetPath
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::String& GetPath() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::String&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetPath(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetPayloadData
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Core::uint8* GetPayloadData() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Core::uint8*` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetPayloadData(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetPayloadSize
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
size_t GetPayloadSize() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `size_t` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetPayloadSize(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetPositionFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetPositionFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetPositionFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetSHFormat
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatSectionFormat GetSHFormat() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `GaussianSplatSectionFormat` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetSHFormat(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,31 @@
|
||||
# GaussianSplat::GetSectionData
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const void* GetSectionData(GaussianSplatSectionType type) const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `type` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `const void*` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetSectionData(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetSections
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::Array<GaussianSplatSection>& GetSections() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::Array<GaussianSplatSection>&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetSections(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetSplatCount
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Core::uint32 GetSplatCount() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Core::uint32` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetSplatCount(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::GetType
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceType GetType() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceType` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::GetType(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::IsValid
|
||||
|
||||
查询当前状态。
|
||||
|
||||
```cpp
|
||||
bool IsValid() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::IsValid(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplat::Release
|
||||
|
||||
释放引用或底层资源。
|
||||
|
||||
```cpp
|
||||
void Release() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplat.h`,当前页面用于固定 `GaussianSplat` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplat.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplat object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplat::Release(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplat.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,58 @@
|
||||
# GaussianSplatArtifactIO
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `functions`
|
||||
|
||||
**头文件**: `XCEngine/Resources/GaussianSplat/GaussianSplatArtifactIO.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/GaussianSplat/GaussianSplatArtifactIO.cpp`
|
||||
|
||||
**描述**: `.xcgsplat` artifact 的读写入口,负责把 Gaussian Splat payload 序列化到磁盘并恢复成运行时资源。
|
||||
|
||||
## 概述
|
||||
|
||||
`GaussianSplatArtifactIO` 当前公开两个函数:
|
||||
|
||||
- `WriteGaussianSplatArtifactFile(...)`
|
||||
- 把 `GaussianSplat` 的 metadata、section table 和 payload 写成 `.xcgsplat`
|
||||
- `LoadGaussianSplatArtifact(...)`
|
||||
- 读取 `.xcgsplat` 并恢复成 `GaussianSplat`
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
### 写入路径
|
||||
|
||||
- 会先解析 artifact 路径并在需要时创建父目录。
|
||||
- 文件头 magic 当前校验为 `XCGSP01` 协议。
|
||||
- 写入顺序是:
|
||||
- `GaussianSplatArtifactFileHeader`
|
||||
- `GaussianSplatArtifactHeader`
|
||||
- section table
|
||||
- payload 字节块
|
||||
|
||||
### 读取路径
|
||||
|
||||
- 会解析真实路径,必要时回退到 `ResourceManager::Get().GetResourceRoot()`。
|
||||
- header 校验失败会直接返回错误的 `LoadResult`。
|
||||
- 读取 section table 后会还原成 `GaussianSplatSection` 数组,再读 payload。
|
||||
- 成功时通过内部 `CreateOwnedGaussianSplatResource(...)` 构造资源对象。
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/GaussianSplat/test_gaussian_splat_loader.cpp`
|
||||
- 覆盖写 artifact、再由 loader 读回的往返路径
|
||||
- `engine/src/Resources/GaussianSplat/GaussianSplatLoader.cpp`
|
||||
- 当前把实际 `.xcgsplat` 读取委托给 `LoadGaussianSplatArtifact(...)`
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前只处理 `.xcgsplat` artifact,不直接解析外部原始 Gaussian Splat 源格式。
|
||||
- artifact 的 section 语义依赖 header 里的 metadata/format,不在这里做高层解释。
|
||||
- 读取失败时直接返回错误,不做容错修复。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [GaussianSplat 子模块](../GaussianSplat.md)
|
||||
- [GaussianSplat](../GaussianSplat/GaussianSplat.md)
|
||||
- [GaussianSplatLoader](../GaussianSplatLoader/GaussianSplatLoader.md)
|
||||
@@ -0,0 +1,31 @@
|
||||
# GaussianSplatLoader::CanLoad
|
||||
|
||||
判断当前条件下是否可执行。
|
||||
|
||||
```cpp
|
||||
bool CanLoad(const Containers::String& path) const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `path` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplatLoader::CanLoad(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,28 @@
|
||||
# GaussianSplatLoader::GaussianSplatLoader()
|
||||
|
||||
构造对象。
|
||||
|
||||
```cpp
|
||||
GaussianSplatLoader();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,29 @@
|
||||
# GaussianSplatLoader::~GaussianSplatLoader()
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
|
||||
```cpp
|
||||
~GaussianSplatLoader() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,52 @@
|
||||
# GaussianSplatLoader
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/GaussianSplat/GaussianSplatLoader.cpp`
|
||||
|
||||
**描述**: `GaussianSplat` 资源的标准 loader,负责识别 `.xcgsplat` artifact 并通过 `GaussianSplatArtifactIO` 读入运行时资源。
|
||||
|
||||
## 概述
|
||||
|
||||
`GaussianSplatLoader` 继承自 `IResourceLoader`,是 `ResourceManager` 当前注册的 Gaussian Splat 资源入口。实现策略和 `ModelLoader` 类似:
|
||||
|
||||
- 只接受 `.xcgsplat`
|
||||
- 实际反序列化委托给 `LoadGaussianSplatArtifact(...)`
|
||||
- 默认不声明额外导入设置
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
### 扩展名与资源类型
|
||||
|
||||
- `GetResourceType()` 固定返回 `ResourceType::GaussianSplat`
|
||||
- `GetSupportedExtensions()` 当前只返回:
|
||||
- `xcgsplat`
|
||||
- `CanLoad(...)` 当前只接受 `.xcgsplat`
|
||||
|
||||
### 加载路径
|
||||
|
||||
- `Load(...)` 会先检查扩展名
|
||||
- 不支持的扩展名会返回 `Unsupported GaussianSplat format`
|
||||
- 合法输入则直接调用 `LoadGaussianSplatArtifact(path)`
|
||||
|
||||
### 默认设置与注册
|
||||
|
||||
- `GetDefaultSettings()` 当前返回 `nullptr`
|
||||
- 文件末尾通过 `REGISTER_RESOURCE_LOADER(GaussianSplatLoader)` 注册到资源系统
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/GaussianSplat/test_gaussian_splat_loader.cpp`
|
||||
- 覆盖扩展名判断、非法路径、artifact 往返加载与 `ResourceManager` 注册
|
||||
- `engine/src/Core/Asset/ResourceManager.cpp`
|
||||
- 当前持有全局 `GaussianSplatLoader` 并注册到资源系统
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [GaussianSplat 子模块](../GaussianSplat.md)
|
||||
- [GaussianSplat](../GaussianSplat/GaussianSplat.md)
|
||||
- [GaussianSplatArtifactIO](../GaussianSplatArtifactIO/GaussianSplatArtifactIO.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplatLoader::GetDefaultSettings
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ImportSettings* GetDefaultSettings() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ImportSettings*` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplatLoader::GetDefaultSettings(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplatLoader::GetResourceType
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceType GetResourceType() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceType` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplatLoader::GetResourceType(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# GaussianSplatLoader::GetSupportedExtensions
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Containers::Array<Containers::String> GetSupportedExtensions() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Containers::Array<Containers::String>` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplatLoader::GetSupportedExtensions(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
@@ -0,0 +1,32 @@
|
||||
# GaussianSplatLoader::Load
|
||||
|
||||
加载资源或数据。
|
||||
|
||||
```cpp
|
||||
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h`,当前页面用于固定 `GaussianSplatLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `path` - 参数语义详见头文件声明。
|
||||
- `settings` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `LoadResult` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/GaussianSplat/GaussianSplatLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::GaussianSplatLoader object;
|
||||
// 根据上下文补齐参数后调用 GaussianSplatLoader::Load(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](GaussianSplatLoader.md)
|
||||
- [返回模块目录](../GaussianSplat.md)
|
||||
48
docs/api/XCEngine/Resources/Model/Model.md
Normal file
48
docs/api/XCEngine/Resources/Model/Model.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Model
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `submodule`
|
||||
|
||||
**描述**: 模型资源子模块,覆盖运行时 `Model` 资源对象、`.xcmodel` artifact 读写以及对应的标准 loader。
|
||||
|
||||
## 概述
|
||||
|
||||
`Resources::Model` 当前不是通用场景导入层,而是资源系统内部的模型图结构承载层。按当前实现,这条链路是:
|
||||
|
||||
1. `WriteModelArtifactFile(...)`
|
||||
- 把内存中的 `Model` 图结构序列化成 `XCMOD01` / schema v1 的 `.xcmodel`
|
||||
2. `LoadModelArtifact(...)`
|
||||
- 从 `.xcmodel` 反序列化出新的堆分配 `Model`
|
||||
3. `ModelLoader`
|
||||
- 作为 `ResourceManager` 的 `IResourceLoader` 入口,只接受 `.xcmodel`
|
||||
|
||||
当前 `Model` 只保存节点树、mesh local id 与 material local id 绑定,不直接持有解析后的 `Mesh` / `Material` 资源指针。
|
||||
|
||||
## 头文件
|
||||
|
||||
- [Model](Model/Model.md) - `Model.h`
|
||||
- [ModelArtifactIO](ModelArtifactIO/ModelArtifactIO.md) - `ModelArtifactIO.h`
|
||||
- [ModelLoader](ModelLoader/ModelLoader.md) - `ModelLoader.h`
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/Model/test_model.cpp`
|
||||
- 覆盖默认状态、图结构增量写入、`Release()` 后清空状态
|
||||
- `tests/Resources/Model/test_model_loader.cpp`
|
||||
- 覆盖 `.xcmodel` 扩展名识别、artifact 写入/读回、`ResourceManager` 注册
|
||||
- `engine/include/XCEngine/Resources/Resources.h`
|
||||
- 当前 umbrella header 已把三份 public header 统一对外暴露
|
||||
- `engine/src/Core/Asset/ResourceManager.cpp`
|
||||
- 当前通过全局 `ModelLoader` 注册 `ResourceType::Model`
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前只支持 `.xcmodel` artifact,`ModelLoader` 不直接读取 `.fbx` / `.obj` 等源格式。
|
||||
- 当前 artifact 负载只覆盖节点图、mesh binding、material binding 与局部变换,不包含动画、骨骼或材质参数展开数据。
|
||||
- `LoadModelArtifact(...)` 当前返回堆分配资源对象;直接调用方需要遵守 `LoadResult` 的资源释放约定。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Resources](../Resources.md)
|
||||
- [Asset](../../Core/Asset/Asset.md)
|
||||
@@ -0,0 +1,31 @@
|
||||
# Model::AddMaterialBinding
|
||||
|
||||
添加元素或建立关联。
|
||||
|
||||
```cpp
|
||||
void AddMaterialBinding(const ModelMaterialBinding& binding);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `binding` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::AddMaterialBinding(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
31
docs/api/XCEngine/Resources/Model/Model/AddMeshBinding.md
Normal file
31
docs/api/XCEngine/Resources/Model/Model/AddMeshBinding.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Model::AddMeshBinding
|
||||
|
||||
添加元素或建立关联。
|
||||
|
||||
```cpp
|
||||
void AddMeshBinding(const ModelMeshBinding& binding);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `binding` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::AddMeshBinding(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
31
docs/api/XCEngine/Resources/Model/Model/AddNode.md
Normal file
31
docs/api/XCEngine/Resources/Model/Model/AddNode.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Model::AddNode
|
||||
|
||||
添加元素或建立关联。
|
||||
|
||||
```cpp
|
||||
void AddNode(const ModelNode& node);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `node` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::AddNode(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/ClearGraph.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/ClearGraph.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::ClearGraph
|
||||
|
||||
清空内部数据。
|
||||
|
||||
```cpp
|
||||
void ClearGraph();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::ClearGraph(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
28
docs/api/XCEngine/Resources/Model/Model/Constructor.md
Normal file
28
docs/api/XCEngine/Resources/Model/Model/Constructor.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Model::Model()
|
||||
|
||||
构造对象。
|
||||
|
||||
```cpp
|
||||
Model();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
29
docs/api/XCEngine/Resources/Model/Model/Destructor.md
Normal file
29
docs/api/XCEngine/Resources/Model/Model/Destructor.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Model::~Model()
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
|
||||
```cpp
|
||||
~Model() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetGUID.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetGUID.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetGUID
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceGUID GetGUID() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceGUID` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetGUID(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# Model::GetMaterialBindings
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::Array<ModelMaterialBinding>& GetMaterialBindings() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::Array<ModelMaterialBinding>&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetMaterialBindings(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetMemorySize.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetMemorySize.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetMemorySize
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
size_t GetMemorySize() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `size_t` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetMemorySize(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetMeshBindings.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetMeshBindings.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetMeshBindings
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::Array<ModelMeshBinding>& GetMeshBindings() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::Array<ModelMeshBinding>&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetMeshBindings(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetName.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetName.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetName
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::String& GetName() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::String&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetName(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetNodes.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetNodes.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetNodes
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::Array<ModelNode>& GetNodes() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::Array<ModelNode>&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetNodes(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetPath.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetPath.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetPath
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
const Containers::String& GetPath() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `const Containers::String&` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetPath(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetRootNodeIndex.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetRootNodeIndex.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetRootNodeIndex
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Core::uint32 GetRootNodeIndex() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Core::uint32` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetRootNodeIndex(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/GetType.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/GetType.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::GetType
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceType GetType() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceType` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::GetType(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/HasRootNode.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/HasRootNode.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::HasRootNode
|
||||
|
||||
判断是否具备指定状态或能力。
|
||||
|
||||
```cpp
|
||||
bool HasRootNode() const;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::HasRootNode(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/IsValid.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/IsValid.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::IsValid
|
||||
|
||||
查询当前状态。
|
||||
|
||||
```cpp
|
||||
bool IsValid() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::IsValid(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
75
docs/api/XCEngine/Resources/Model/Model/Model.md
Normal file
75
docs/api/XCEngine/Resources/Model/Model/Model.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Model
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/Resources/Model/Model.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/Model/Model.cpp`
|
||||
|
||||
**描述**: 运行时模型资源对象,保存节点树、mesh binding 与 material binding 的轻量图结构。
|
||||
|
||||
## 概述
|
||||
|
||||
`Model` 继承自 `IResource`,但它当前承载的是“资源图描述”而不是 GPU 侧数据。实现里只保存:
|
||||
|
||||
- `ModelNode`
|
||||
- 节点名称、父节点索引、局部位移/旋转/缩放,以及节点对应的 mesh binding 区间
|
||||
- `ModelMeshBinding`
|
||||
- 单个 mesh local id 以及它在 material binding 数组中的区间
|
||||
- `ModelMaterialBinding`
|
||||
- slot 到 material local id 的映射
|
||||
|
||||
这意味着 `Model` 当前更接近导入后场景层次结构的归档结果,后续系统需要再通过 local id 去解析 mesh / material 资源。
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
- 默认构造后:
|
||||
- `GetType()` 返回 `ResourceType::Model`
|
||||
- `HasRootNode()` 为 `false`
|
||||
- 三类数组都为空
|
||||
- `GetMemorySize()` 为 `0`
|
||||
- `SetRootNodeIndex(...)` 只记录根节点索引并刷新 `memorySize`
|
||||
- `AddNode(...)` / `AddMeshBinding(...)` / `AddMaterialBinding(...)`
|
||||
- 追加到对应数组并刷新 `memorySize`
|
||||
- `ClearGraph()`
|
||||
- 清空所有节点与绑定,根索引回到 `kInvalidModelNodeIndex`
|
||||
- `Release()`
|
||||
- 当前只调用 `ClearGraph()` 并 `SetInvalid()`,不会 `delete this`
|
||||
|
||||
## 内存与所有权
|
||||
|
||||
- `UpdateMemorySize()` 通过结构体大小累加,再额外把每个 `ModelNode::name` 的字符串长度计入统计。
|
||||
- `Model` 自身拥有三组数组的生命周期。
|
||||
- 当前测试 `tests/Resources/Model/test_model_loader.cpp` 直接对 `LoadModelArtifact(...)` 返回的 `Model*` 执行 `delete`,说明直接调用路径下对象析构仍由调用方收口。
|
||||
|
||||
## 公开状态模型
|
||||
|
||||
| 字段 | 语义 |
|
||||
|------|------|
|
||||
| `kInvalidModelNodeIndex` | 无根节点或未设置根节点时使用的哨兵值 |
|
||||
| `ModelNode::parentIndex` | 父节点索引;根节点当前使用 `-1` |
|
||||
| `ModelNode::meshBindingStart` / `meshBindingCount` | 节点对应 mesh binding 数组切片 |
|
||||
| `ModelMeshBinding::materialBindingStart` / `materialBindingCount` | 单个 mesh 对应 material binding 数组切片 |
|
||||
| `ModelMaterialBinding::slotIndex` | 子网格材质槽位 |
|
||||
| `ModelMaterialBinding::materialLocalID` | 指向 artifact 内材质表的 local id |
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/Model/test_model.cpp`
|
||||
- 验证节点、mesh binding、material binding 的追加与 `memorySize` 刷新
|
||||
- `engine/src/Resources/Model/ModelArtifactIO.cpp`
|
||||
- 负责把 `Model` 序列化与反序列化为 `.xcmodel`
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前没有面向调用方的随机查询 helper,例如“根据节点名查索引”或“根据节点遍历子树”。
|
||||
- 当前 `Release()` 只清空内部状态,不承担对象销毁职责;这点与部分资源类型的 `delete this` 语义不同。
|
||||
- 当前没有线程同步;读写图结构默认要求调用方自己约束时序。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Model 子模块](../Model.md)
|
||||
- [ModelArtifactIO](../ModelArtifactIO/ModelArtifactIO.md)
|
||||
- [ModelLoader](../ModelLoader/ModelLoader.md)
|
||||
30
docs/api/XCEngine/Resources/Model/Model/Release.md
Normal file
30
docs/api/XCEngine/Resources/Model/Model/Release.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Model::Release
|
||||
|
||||
释放引用或底层资源。
|
||||
|
||||
```cpp
|
||||
void Release() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::Release(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
31
docs/api/XCEngine/Resources/Model/Model/SetRootNodeIndex.md
Normal file
31
docs/api/XCEngine/Resources/Model/Model/SetRootNodeIndex.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Model::SetRootNodeIndex
|
||||
|
||||
设置相关状态或配置。
|
||||
|
||||
```cpp
|
||||
void SetRootNodeIndex(Core::uint32 index);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/Model.h`,当前页面用于固定 `Model` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `index` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/Model.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::Model object;
|
||||
// 根据上下文补齐参数后调用 Model::SetRootNodeIndex(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](Model.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
@@ -0,0 +1,75 @@
|
||||
# ModelArtifactIO
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `header`
|
||||
|
||||
**头文件**: `XCEngine/Resources/Model/ModelArtifactIO.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/Model/ModelArtifactIO.cpp`
|
||||
|
||||
**描述**: `Model` 的 `.xcmodel` artifact 读写入口,负责把运行时图结构编码为 `XCMOD01`,以及从 artifact 还原堆分配 `Model`。
|
||||
|
||||
## 概述
|
||||
|
||||
这份头文件当前只暴露两个函数:
|
||||
|
||||
- `WriteModelArtifactFile(...)`
|
||||
- 序列化 `Model`
|
||||
- `LoadModelArtifact(...)`
|
||||
- 反序列化 `Model`
|
||||
|
||||
实现依赖 `ArtifactFormats.h` 中的 `ModelArtifactFileHeader`、`ModelArtifactHeader`、`ModelNodeArtifactHeader` 等结构,并通过 `ResourceManager::Get().GetResourceRoot()` 补全相对路径。
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
### `WriteModelArtifactFile(...)`
|
||||
|
||||
- 若输出父目录不存在,会先尝试创建目录。
|
||||
- 文件头固定写入:
|
||||
- magic `XCMOD01`
|
||||
- `schemaVersion == kModelArtifactSchemaVersion`
|
||||
- 之后顺序写入:
|
||||
- `ModelArtifactHeader`
|
||||
- 每个节点的字符串名与 `ModelNodeArtifactHeader`
|
||||
- 每个 `ModelMeshBindingArtifact`
|
||||
- 每个 `ModelMaterialBindingArtifact`
|
||||
- 失败时返回 `false`,并在提供 `outErrorMessage` 时写入简短错误文本。
|
||||
|
||||
### `LoadModelArtifact(...)`
|
||||
|
||||
- 支持相对路径;当相对路径在当前目录不存在时,会尝试拼接 `ResourceManager` 的 resource root。
|
||||
- 会严格校验:
|
||||
- 文件头 magic 是否为 `XCMOD01`
|
||||
- schema version 是否匹配
|
||||
- `rootNodeIndex` 是否落在 `nodeCount` 范围内
|
||||
- 成功时通过内部 `CreateOwnedModelResource(...)`:
|
||||
- `new Model()`
|
||||
- 调用 `Initialize(...)`
|
||||
- 逐项追加节点与绑定
|
||||
- 失败时返回带错误信息的 `LoadResult`
|
||||
|
||||
## 所有权与失败路径
|
||||
|
||||
- 当前 `LoadModelArtifact(...)` 返回的资源对象由堆分配创建。
|
||||
- `tests/Resources/Model/test_model_loader.cpp` 直接对结果中的 `resource` 指针执行 `delete`,说明在非 `ResourceManager` 托管路径下,调用方需要负责析构收口。
|
||||
- 任何一步读流失败都会立即返回失败 `LoadResult`,不会返回部分填充的 `Model`。
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/Model/test_model_loader.cpp`
|
||||
- 覆盖 artifact 写入后再加载的回归路径
|
||||
- `engine/src/Resources/Model/ModelLoader.cpp`
|
||||
- `ModelLoader::Load(...)` 最终直接委托给 `LoadModelArtifact(...)`
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前没有向后兼容旧 schema 的分支;header 校验失败就直接返回错误。
|
||||
- 当前文件格式只保存 local id 级别的 mesh / material 绑定,不写入完整子资源 payload。
|
||||
- 当前名称字符串采用长度前缀 + 原始字节写入,不做额外压缩或去重。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Model 子模块](../Model.md)
|
||||
- [Model](../Model/Model.md)
|
||||
- [ModelLoader](../ModelLoader/ModelLoader.md)
|
||||
31
docs/api/XCEngine/Resources/Model/ModelLoader/CanLoad.md
Normal file
31
docs/api/XCEngine/Resources/Model/ModelLoader/CanLoad.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# ModelLoader::CanLoad
|
||||
|
||||
判断当前条件下是否可执行。
|
||||
|
||||
```cpp
|
||||
bool CanLoad(const Containers::String& path) const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `path` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 根据上下文补齐参数后调用 ModelLoader::CanLoad(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
28
docs/api/XCEngine/Resources/Model/ModelLoader/Constructor.md
Normal file
28
docs/api/XCEngine/Resources/Model/ModelLoader/Constructor.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# ModelLoader::ModelLoader()
|
||||
|
||||
构造对象。
|
||||
|
||||
```cpp
|
||||
ModelLoader();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
29
docs/api/XCEngine/Resources/Model/ModelLoader/Destructor.md
Normal file
29
docs/api/XCEngine/Resources/Model/ModelLoader/Destructor.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# ModelLoader::~ModelLoader()
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
|
||||
```cpp
|
||||
~ModelLoader() override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# ModelLoader::GetDefaultSettings
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ImportSettings* GetDefaultSettings() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ImportSettings*` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 根据上下文补齐参数后调用 ModelLoader::GetDefaultSettings(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# ModelLoader::GetResourceType
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
ResourceType GetResourceType() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `ResourceType` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 根据上下文补齐参数后调用 ModelLoader::GetResourceType(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
# ModelLoader::GetSupportedExtensions
|
||||
|
||||
获取相关状态或对象。
|
||||
|
||||
```cpp
|
||||
Containers::Array<Containers::String> GetSupportedExtensions() const override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:** 无。
|
||||
|
||||
**返回:** `Containers::Array<Containers::String>` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 根据上下文补齐参数后调用 ModelLoader::GetSupportedExtensions(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
32
docs/api/XCEngine/Resources/Model/ModelLoader/Load.md
Normal file
32
docs/api/XCEngine/Resources/Model/ModelLoader/Load.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# ModelLoader::Load
|
||||
|
||||
加载资源或数据。
|
||||
|
||||
```cpp
|
||||
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Resources/Model/ModelLoader.h`,当前页面用于固定 `ModelLoader` 类目录下的方法级 canonical 路径。
|
||||
|
||||
**参数:**
|
||||
- `path` - 参数语义详见头文件声明。
|
||||
- `settings` - 参数语义详见头文件声明。
|
||||
|
||||
**返回:** `LoadResult` - 返回值语义详见头文件声明。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Resources/Model/ModelLoader.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Resources::ModelLoader object;
|
||||
// 根据上下文补齐参数后调用 ModelLoader::Load(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](ModelLoader.md)
|
||||
- [返回模块目录](../Model.md)
|
||||
55
docs/api/XCEngine/Resources/Model/ModelLoader/ModelLoader.md
Normal file
55
docs/api/XCEngine/Resources/Model/ModelLoader/ModelLoader.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# ModelLoader
|
||||
|
||||
**命名空间**: `XCEngine::Resources`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/Resources/Model/ModelLoader.h`
|
||||
|
||||
**源文件**: `engine/src/Resources/Model/ModelLoader.cpp`
|
||||
|
||||
**描述**: `Model` 资源的标准 `IResourceLoader`,当前只接受 `.xcmodel` artifact,并把加载工作委托给 `LoadModelArtifact(...)`。
|
||||
|
||||
## 概述
|
||||
|
||||
`ModelLoader` 是 `ResourceManager` 识别 `ResourceType::Model` 的入口。当前它不承担源格式导入,只负责:
|
||||
|
||||
1. 声明资源类型 `ResourceType::Model`
|
||||
2. 声明支持扩展名 `xcmodel`
|
||||
3. 在 `Load(...)` 中做扩展名校验
|
||||
4. 转交给 `LoadModelArtifact(...)`
|
||||
|
||||
文件末尾通过 `REGISTER_RESOURCE_LOADER(ModelLoader)` 完成注册;`engine/src/Core/Asset/ResourceManager.cpp` 也会持有对应全局 loader 实例。
|
||||
|
||||
## 当前实现行为
|
||||
|
||||
- `GetSupportedExtensions()`
|
||||
- 当前只返回一个扩展名:`xcmodel`
|
||||
- `CanLoad(...)`
|
||||
- 把文件扩展名转小写后比较,因此 `test.XCMODEL` 也会被接受
|
||||
- `Load(...)`
|
||||
- 若扩展名不匹配,返回 `"Unsupported model format: <ext>"`
|
||||
- 若扩展名匹配,直接调用 `LoadModelArtifact(...)`
|
||||
- `GetDefaultSettings()`
|
||||
- 当前固定返回 `nullptr`
|
||||
|
||||
## 测试与调用链
|
||||
|
||||
- `tests/Resources/Model/test_model_loader.cpp`
|
||||
- 覆盖 `GetResourceType()`、`CanLoad()`、非法路径失败以及 artifact round-trip
|
||||
- `tests/Resources/Model/test_model_loader.cpp`
|
||||
- 还验证了 `ResourceManager::Get().GetLoader(ResourceType::Model)` 非空
|
||||
- `engine/include/XCEngine/Resources/Resources.h`
|
||||
- 当前 umbrella header 已把 `ModelLoader.h` 对外暴露
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 当前不支持 import settings;`settings` 参数在实现里被显式忽略。
|
||||
- 当前不直接读取源模型格式,所有成功路径都要求先有 `.xcmodel` artifact。
|
||||
- 当前没有多格式回退逻辑或 MIME / 内容探测逻辑,完全依赖扩展名。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Model 子模块](../Model.md)
|
||||
- [ModelArtifactIO](../ModelArtifactIO/ModelArtifactIO.md)
|
||||
- [Resources](../../Resources.md)
|
||||
@@ -20,8 +20,10 @@
|
||||
## 子目录
|
||||
|
||||
- [AudioClip](AudioClip/AudioClip.md)
|
||||
- [GaussianSplat](GaussianSplat/GaussianSplat.md)
|
||||
- [Material](Material/Material.md)
|
||||
- [Mesh](Mesh/Mesh.md)
|
||||
- [Model](Model/Model.md)
|
||||
- [Shader](Shader/Shader.md)
|
||||
- [Texture](Texture/Texture.md)
|
||||
- [Volume](Volume/Volume.md)
|
||||
|
||||
Reference in New Issue
Block a user