# Assimp.New **Repository Path**: bitzhuwei/Assimp.New ## Basic Information - **Project Name**: Assimp.New - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-31 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Assimp.New ## 项目介绍 Assimp.New 是一个用于3D模型导入导出的C#封装库,基于[Open Asset Import Library (Assimp)](https://github.com/assimp/assimp)的本地C库。它支持多种三维模型格式的导入(如FBX、OBJ、DAE等)以及导出功能。该项目主要面向.NET开发者,适用于游戏开发、3D可视化、模型处理等场景。 ## 功能特性 - 支持多种3D模型格式的导入与导出 - 提供丰富的后处理选项(PostProcessSteps)用于模型优化 - 支持骨骼动画、网格动画和材质属性的解析 - 提供日志系统用于调试和错误追踪 - 支持自定义IO系统,便于从流或文件系统加载模型 - 提供详尽的结构化数据访问,如Mesh、Node、Material等 ## 安装说明 1. **依赖库**:确保已安装Assimp本地库(如`assimp.dll`或对应平台的动态库)。 2. **构建方式**:打开`Assimp.New.sln`解决方案,选择对应平台(x86/x64)进行编译。 3. **NuGet包**:推荐通过NuGet安装预编译版本(如果可用)。 4. **运行环境**:.NET 5.0及以上版本支持,兼容Windows、Linux和macOS平台。 ## 使用示例 ### 导入模型 ```csharp using (var context = new AssimpContext()) { Scene scene = context.ImportFile("model.obj", PostProcessPreset.TargetRealTimeFast); } ``` ### 导出模型 ```csharp using (var context = new AssimpContext()) { Scene scene = context.ImportFile("model.obj", PostProcessPreset.TargetRealTimeFast); context.ExportFile(scene, "output.dae", "collada", PostProcessSteps.None); } ``` ### 从流导入 ```csharp using (var context = new AssimpContext()) using (var stream = File.OpenRead("model.fbx")) { Scene scene = context.ImportFileFromStream(stream, "fbx"); } ``` ### 后处理配置 ```csharp using (var context = new AssimpContext()) { context.SetConfig(new GlobalScaleConfig(1.0f)); // 设置全局缩放 context.SetConfig(new MeasureTimeConfig(true)); // 启用时间测量 Scene scene = context.ImportFile("model.fbx", PostProcessSteps.Triangulate); } ``` ### 日志系统 ```csharp LogStream.Attach(); // 启用全局日志 LogStream.EnableVerboseLogging(true); // 使用自定义日志流 var logStream = new TestContextLogStream(); logStream.Attach(); ``` ## 项目结构说明 - **Assimp.New**:核心实现,包含模型导入导出逻辑、数据结构封装。 - **Assimp.NewTestConsole**:包含单元测试和功能验证代码,用于验证导入/导出、材质解析、矩阵运算等功能的正确性。 ## 支持的格式 支持的导入格式包括但不限于: - FBX(Binary & ASCII) - OBJ - DAE (Collada) - BLEND (Blender) - MD5系列格式 - SMD - STL - 以及其他常见3D模型格式 支持的导出格式可通过`GetSupportedExportFormats()`获取,常用格式包括Collada (.dae)、STL、OBJ等。 ## 贡献指南 - 请参考项目文档添加清晰注释 - 测试代码需包含在`Assimp.NewTestConsole` - 格式规范遵循.NET标准命名和代码风格 - 本地库加载逻辑需保持跨平台兼容性 ## 许可证 本项目遵循MIT许可证,详情请查看[LICENSE.md](LICENSE.md)。