# Aura3D
**Repository Path**: langsisi_admin/Aura3D
## Basic Information
- **Project Name**: Aura3D
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-16
- **Last Updated**: 2026-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

**Demo 项目:** [TowerDefense3D](https://github.com/CeSun/TowerDefense3D) — 基于 Aura3D 开发的塔防游戏,展示了引擎的实际应用。
> [!IMPORTANT]
> 项目正在积极开发中,欢迎通过 [Issue](https://github.com/CeSun/Aura3d/issues) 提交建议和反馈。
## 简介
Aura3D 是一个基于 Avalonia 的 3D 渲染控件,底层使用 OpenGL ES 3.0。它提供了从模型加载、场景管理、光照阴影到自定义渲染管线的完整能力,适合在 .NET 桌面应用中集成 3D 内容展示。
## 特性
### 场景与模型
- **多格式模型加载** — 原生支持 glTF/GLB,通过 Assimp 扩展支持 FBX、OBJ、3DS 等 50+ 格式
- **内置基础几何体** — 盒子、球体、圆柱体、平面
- **场景图** — 层次化的节点树,支持父子变换继承
### 光照与阴影
- **方向光 / 点光 / 聚光灯** — 三种光源类型,支持颜色、衰减半径、阴影投射
- **CSM 级联阴影** — 主方向光自动使用级联阴影贴图,可配置级联数量和分割方案
- **Blinn-Phong 光照模型** — 默认前向渲染管线
- **HDR 环境贴图** — 天空盒 / 环境光背景
### 动画系统
- **骨骼动画** — 支持 glTF 蒙皮动画和 Assimp 导入的外部动画
- **动画混合空间** — 2D 混合空间,在多个动画间平滑过渡
- **动画状态图** — 基于条件的状态机,支持状态间的混合过渡
### 渲染管线
- **可替换渲染管线** — 内置 BlinnPhong(写实)、NoLight(无光照)
- **PBR 延迟管线** — 基于物理的渲染,支持 Metallic-Roughness 工作流
- **卡通渲染管线** — Cel Shading 风格
- **自定义管线** — 自由组合 RenderPass,无需处理 VAO/VBO
### 高级渲染
- **GPU 实例化** — `InstancedMesh`,万级实例高性能渲染
- **层次化实例化** — `InstancedMeshGroup`(类似 UE 的 HISM),支持增量更新与自动分组
- **视锥体剔除** — 可开关,大幅减少不可见物体的绘制
- **八叉树空间索引** — 自动扩张的八叉树,高效空间查询与剔除
- **点云渲染** — 内置 `PointCloudPipeline`,基于实例化的高性能点云渲染
- **图元渲染** — Triangles、Lines、LineStrip、LineLoop、Points、TriangleStrip、TriangleFan
- **点击拾取** — `Scene.Pick` / `Scene.PickClosest`,支持三角形级别的 Mesh 和 InstancedMesh 拾取
- **调试可视化** — 内置调试绘制,支持包围盒、光源、骨骼、摄像机视锥体等可视化
### 平台
- **Avalonia** — 支持 Windows、Linux、macOS、Android、iOS
- **.NET 8+** — 支持 .NET 8.0 和 .NET 10.0
## 快速开始
### 1. 安装
```shell
dotnet add package Aura3D.Avalonia
dotnet add package Aura3D.Model.GltfLoader
```
> 至少需要安装一个模型加载库。`Aura3D.Model.GltfLoader` 用于加载 glTF/GLB 格式。
> 如需加载 FBX、OBJ、3DS 等 50+ 格式,请额外安装 `Aura3D.Model.AssimpLoader`。
### 2. 在 XAML 中使用
```xaml
```
### 3. 加载一个模型
```csharp
public void OnSceneInitialized(object sender, InitializedRoutedEventArgs args)
{
var view = (Aura3DView)sender;
var camera = view.MainCamera;
// 设置背景色
view.Scene.Background = Texture.CreateFromColor(Color.Gray);
// 加载 glTF/GLB 模型
var model = ModelLoader.LoadGlbModel("model.glb");
model.Position = camera.Forward * 3;
view.AddNode(model);
// 添加方向光(默认管线需要光源才能看到模型)
var dl = new DirectionalLight();
dl.RotationDegrees = new Vector3(-30, 0, 0);
dl.LightColor = Color.White;
view.AddNode(dl);
}
```
> 更多特性的使用方法请参阅 [文档目录](doc/cn/home.md)。
## NuGet 包
| 包名 | 说明 |
|---|---|
| [Aura3D.Avalonia](https://www.nuget.org/packages/Aura3D.Avalonia) | Avalonia 3D 渲染控件(依赖 Aura3D.Core) |
| [Aura3D.Core](https://www.nuget.org/packages/Aura3D.Core) | 核心引擎:场景图、节点、资源、默认管线 |
| [Aura3D.Model.GltfLoader](https://www.nuget.org/packages/Aura3D.Model.GltfLoader) | glTF/GLB 模型加载器 |
| [Aura3D.Model.AssimpLoader](https://www.nuget.org/packages/Aura3D.Model.AssimpLoader) | Assimp 模型加载器(支持 50+ 格式) |
| [Aura3D.Pipeline.PBR](https://www.nuget.org/packages/Aura3D.Pipeline.PBR) | PBR 延迟渲染管线 |
| Aura3D.Pipeline.PBR.Common | PBR 渲染管线共享资源 |
| Aura3D.Pipeline.PBRForward | PBR 前向渲染管线 |
| [Aura3D.Pipeline.CelShading](https://www.nuget.org/packages/Aura3D.Pipeline.CelShading) | 卡通渲染管线 |
## 许可证
[MIT](LICENSE)