docs: rebuild Rendering API content
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::ClearMaterials
|
||||
|
||||
清空所有材质槽。
|
||||
|
||||
```cpp
|
||||
void ClearMaterials();
|
||||
```
|
||||
|
||||
## 行为说明
|
||||
|
||||
当前实现会同时清空:
|
||||
|
||||
- `m_materials`
|
||||
- `m_materialPaths`
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetMaterial](SetMaterial.md)
|
||||
- [SetMaterials](SetMaterials.md)
|
||||
@@ -0,0 +1,25 @@
|
||||
# MeshRendererComponent::Deserialize
|
||||
|
||||
反序列化材质槽和渲染标志。
|
||||
|
||||
```cpp
|
||||
void Deserialize(std::istream& is) override;
|
||||
```
|
||||
|
||||
## 行为说明
|
||||
|
||||
当前实现会:
|
||||
|
||||
1. 先清空材质并重置默认标志。
|
||||
2. 解析 `materials`、`castShadows`、`receiveShadows` 和 `renderLayer`。
|
||||
3. 对每个非空材质路径调用 `ResourceManager::Get().Load<Resources::Material>()` 尝试重新加载。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 如果某个材质加载失败,对应路径仍会保留,但句柄可能为空。
|
||||
- 默认值是:`castShadows = true`、`receiveShadows = true`、`renderLayer = 0`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [Serialize](Serialize.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::GetCastShadows
|
||||
|
||||
获取投射阴影标志。
|
||||
|
||||
```cpp
|
||||
bool GetCastShadows() const;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前 `m_castShadows` 值。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前渲染路径还没有真正消费这个标志。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetCastShadows](SetCastShadows.md)
|
||||
@@ -0,0 +1,21 @@
|
||||
# MeshRendererComponent::GetMaterial
|
||||
|
||||
获取指定槽位的材质指针。
|
||||
|
||||
```cpp
|
||||
Resources::Material* GetMaterial(size_t index) const;
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
||||
- `index` - 材质槽索引。
|
||||
|
||||
## 返回值
|
||||
|
||||
- 若索引有效则返回对应材质。
|
||||
- 否则返回 `nullptr`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [GetMaterialHandle](GetMaterialHandle.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# MeshRendererComponent::GetMaterialCount
|
||||
|
||||
获取当前材质槽数量。
|
||||
|
||||
```cpp
|
||||
size_t GetMaterialCount() const;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前 `m_materials.size()`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetMaterial](SetMaterial.md)
|
||||
- [SetMaterials](SetMaterials.md)
|
||||
@@ -0,0 +1,25 @@
|
||||
# MeshRendererComponent::GetMaterialHandle
|
||||
|
||||
获取指定槽位的材质句柄。
|
||||
|
||||
```cpp
|
||||
const Resources::ResourceHandle<Resources::Material>& GetMaterialHandle(size_t index) const;
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
||||
- `index` - 材质槽索引。
|
||||
|
||||
## 返回值
|
||||
|
||||
- 若索引有效则返回对应句柄引用。
|
||||
- 否则返回一个静态空句柄引用。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 越界时返回的是共享的静态空句柄,而不是临时对象。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [GetMaterial](GetMaterial.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# MeshRendererComponent::GetMaterialPaths
|
||||
|
||||
获取当前材质路径数组。
|
||||
|
||||
```cpp
|
||||
const std::vector<std::string>& GetMaterialPaths() const;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前缓存的材质路径数组引用。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [Serialize](Serialize.md)
|
||||
- [Deserialize](Deserialize.md)
|
||||
@@ -0,0 +1,15 @@
|
||||
# MeshRendererComponent::GetName
|
||||
|
||||
返回组件名字。
|
||||
|
||||
```cpp
|
||||
std::string GetName() const override;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前固定返回 `"MeshRenderer"`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::GetReceiveShadows
|
||||
|
||||
获取接收阴影标志。
|
||||
|
||||
```cpp
|
||||
bool GetReceiveShadows() const;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前 `m_receiveShadows` 值。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前渲染路径还没有真正消费这个标志。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetReceiveShadows](SetReceiveShadows.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::GetRenderLayer
|
||||
|
||||
获取渲染层。
|
||||
|
||||
```cpp
|
||||
uint32_t GetRenderLayer() const;
|
||||
```
|
||||
|
||||
## 返回值
|
||||
|
||||
- 当前 `m_renderLayer` 值。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前 `RenderSceneExtractor` 不会根据这个值过滤对象。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetRenderLayer](SetRenderLayer.md)
|
||||
@@ -0,0 +1,55 @@
|
||||
# MeshRendererComponent
|
||||
|
||||
**命名空间**: `XCEngine::Components`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/Components/MeshRendererComponent.h`
|
||||
|
||||
**描述**: 保存材质槽、阴影标志和渲染层信息,负责告诉渲染系统“这个 mesh 应该如何被绘制”。
|
||||
|
||||
## 概述
|
||||
|
||||
`MeshRendererComponent` 承担的是“绘制配置”这一半职责:
|
||||
|
||||
- 材质槽数组
|
||||
- 阴影开关
|
||||
- 渲染层
|
||||
|
||||
和 [MeshFilterComponent](../MeshFilterComponent/MeshFilterComponent.md) 配合后,场景提取器就能把几何和材质信息一起整理成 [VisibleRenderObject](../../Rendering/VisibleRenderObject/VisibleRenderObject.md)。
|
||||
|
||||
## 当前实现边界
|
||||
|
||||
- 内部同时维护 `m_materials` 和 `m_materialPaths` 两套数组。
|
||||
- [SetMaterial](SetMaterial.md) 会在需要时自动扩容材质槽。
|
||||
- [SetMaterials](SetMaterials.md) 会整体替换材质数组。
|
||||
- [Deserialize](Deserialize.md) 会尝试通过 `ResourceManager` 重新加载材质。
|
||||
- 当前 `castShadows`、`receiveShadows` 和 `renderLayer` 还没有真正接入 [RenderSceneExtractor](../../Rendering/RenderSceneExtractor/RenderSceneExtractor.md) 或 [BuiltinForwardPipeline](../../Rendering/Pipelines/BuiltinForwardPipeline/BuiltinForwardPipeline.md)。
|
||||
|
||||
## 公开方法
|
||||
|
||||
| 方法 | 说明 |
|
||||
|------|------|
|
||||
| [GetName](GetName.md) | 返回组件名字。 |
|
||||
| [GetMaterialCount](GetMaterialCount.md) | 获取材质槽数量。 |
|
||||
| [GetMaterial](GetMaterial.md) | 获取指定槽位材质。 |
|
||||
| [GetMaterialHandle](GetMaterialHandle.md) | 获取指定槽位材质句柄。 |
|
||||
| [GetMaterialPaths](GetMaterialPaths.md) | 获取序列化路径数组。 |
|
||||
| [SetMaterial](SetMaterial.md) | 设置单个材质槽。 |
|
||||
| [SetMaterials](SetMaterials.md) | 批量设置材质槽。 |
|
||||
| [ClearMaterials](ClearMaterials.md) | 清空所有材质槽。 |
|
||||
| [GetCastShadows](GetCastShadows.md) | 查询投射阴影标志。 |
|
||||
| [SetCastShadows](SetCastShadows.md) | 设置投射阴影标志。 |
|
||||
| [GetReceiveShadows](GetReceiveShadows.md) | 查询接收阴影标志。 |
|
||||
| [SetReceiveShadows](SetReceiveShadows.md) | 设置接收阴影标志。 |
|
||||
| [GetRenderLayer](GetRenderLayer.md) | 获取渲染层。 |
|
||||
| [SetRenderLayer](SetRenderLayer.md) | 设置渲染层。 |
|
||||
| [Serialize](Serialize.md) | 序列化材质路径与标志位。 |
|
||||
| [Deserialize](Deserialize.md) | 反序列化材质路径与标志位。 |
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Components](../Components.md)
|
||||
- [MeshFilterComponent](../MeshFilterComponent/MeshFilterComponent.md)
|
||||
- [RenderSceneExtractor](../../Rendering/RenderSceneExtractor/RenderSceneExtractor.md)
|
||||
- [BuiltinForwardPipeline](../../Rendering/Pipelines/BuiltinForwardPipeline/BuiltinForwardPipeline.md)
|
||||
@@ -0,0 +1,25 @@
|
||||
# MeshRendererComponent::Serialize
|
||||
|
||||
序列化材质槽和渲染标志。
|
||||
|
||||
```cpp
|
||||
void Serialize(std::ostream& os) const override;
|
||||
```
|
||||
|
||||
## 行为说明
|
||||
|
||||
当前实现会输出类似:
|
||||
|
||||
```text
|
||||
materials=Mat0|Mat1;
|
||||
castShadows=1;
|
||||
receiveShadows=0;
|
||||
renderLayer=3;
|
||||
```
|
||||
|
||||
其中材质路径使用 `|` 分隔。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [Deserialize](Deserialize.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::SetCastShadows
|
||||
|
||||
设置投射阴影标志。
|
||||
|
||||
```cpp
|
||||
void SetCastShadows(bool value);
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
||||
- `value` - 是否投射阴影。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前只是存储这个布尔值,还没有接入实际阴影渲染流程。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [GetCastShadows](GetCastShadows.md)
|
||||
@@ -0,0 +1,27 @@
|
||||
# MeshRendererComponent::SetMaterial
|
||||
|
||||
设置单个材质槽。
|
||||
|
||||
```cpp
|
||||
void SetMaterial(size_t index, const Resources::ResourceHandle<Resources::Material>& material);
|
||||
void SetMaterial(size_t index, Resources::Material* material);
|
||||
```
|
||||
|
||||
## 行为说明
|
||||
|
||||
当前实现会:
|
||||
|
||||
1. 通过 `EnsureMaterialSlot()` 保证数组至少扩容到 `index + 1`。
|
||||
2. 写入 `m_materials[index]`。
|
||||
3. 根据句柄中的资源路径同步更新 `m_materialPaths[index]`。
|
||||
|
||||
## 参数
|
||||
|
||||
- `index` - 材质槽索引。
|
||||
- `material` - 要设置的材质句柄或裸指针。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetMaterials](SetMaterials.md)
|
||||
- [ClearMaterials](ClearMaterials.md)
|
||||
@@ -0,0 +1,21 @@
|
||||
# MeshRendererComponent::SetMaterials
|
||||
|
||||
批量设置整组材质槽。
|
||||
|
||||
```cpp
|
||||
void SetMaterials(const std::vector<Resources::ResourceHandle<Resources::Material>>& materials);
|
||||
```
|
||||
|
||||
## 行为说明
|
||||
|
||||
当前实现会整体替换 `m_materials`,并把 `m_materialPaths` 调整为相同大小,然后逐项同步路径。
|
||||
|
||||
## 参数
|
||||
|
||||
- `materials` - 新的材质句柄数组。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [SetMaterial](SetMaterial.md)
|
||||
- [GetMaterialCount](GetMaterialCount.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::SetReceiveShadows
|
||||
|
||||
设置接收阴影标志。
|
||||
|
||||
```cpp
|
||||
void SetReceiveShadows(bool value);
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
||||
- `value` - 是否接收阴影。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前只是存储这个布尔值,还没有接入实际阴影渲染流程。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [GetReceiveShadows](GetReceiveShadows.md)
|
||||
@@ -0,0 +1,20 @@
|
||||
# MeshRendererComponent::SetRenderLayer
|
||||
|
||||
设置渲染层。
|
||||
|
||||
```cpp
|
||||
void SetRenderLayer(uint32_t value);
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
||||
- `value` - 新的渲染层值。
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 当前只是记录数值,还没有接入 culling mask 或 render queue 过滤。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类型总览](MeshRendererComponent.md)
|
||||
- [GetRenderLayer](GetRenderLayer.md)
|
||||
Reference in New Issue
Block a user