# mogl-sdk2
**Repository Path**: mf/mogl-sdk2
## Basic Information
- **Project Name**: mogl-sdk2
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-22
- **Last Updated**: 2026-01-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# W3D SDK v2.0
**新一代 WebGL 3D 渲染引擎**
[](LICENSE)
[](https://nodejs.org)
[](https://threejs.org)
[English](./README.md) | 简体中文
## 📖 项目简介
W3D SDK 是一个基于 Three.js 的新一代 WebGL 3D 渲染引擎,提供了简洁易用的 API 和强大的功能,帮助开发者快速构建高性能的 3D Web 应用。
### ✨ 主要特性
- 🚀 **简洁易用** - 链式调用 API,快速上手,5 分钟即可创建第一个 3D 场景
- 🎨 **组件化架构** - 灵活的组件系统,易于扩展和复用
- 🎯 **事件驱动** - 完善的事件系统,支持丰富的交互操作
- 📦 **资源管理** - 智能的资源加载和缓存机制,优化性能
- 🎬 **动画系统** - 内置动画管理器和补间动画,轻松实现复杂动画效果
- 🔧 **开发友好** - 完整的中文文档,丰富的示例代码
- 📱 **响应式设计** - 自动适配不同屏幕尺寸
### 🎯 适用场景
- 产品展示和 3D 可视化
- 数字孪生和智慧城市
- 在线 3D 编辑器
- 游戏和互动体验
- 建筑和室内设计可视化
- 教育和培训应用
## 📦 项目结构
```
sdk/
├── packages/ # 包目录
│ ├── core/ # 核心渲染引擎
│ │ ├── src/
│ │ │ ├── core/ # 核心模块(Scene, Renderer, Camera 等)
│ │ │ ├── component/ # 组件系统
│ │ │ ├── event/ # 事件系统
│ │ │ ├── resource/ # 资源管理
│ │ │ ├── animation/ # 动画系统
│ │ │ └── config/ # 配置文件
│ │ └── package.json
│ ├── utils/ # 工具函数库
│ │ ├── src/
│ │ │ ├── event/ # 事件工具
│ │ │ ├── math/ # 数学工具
│ │ │ ├── geometry/ # 几何工具
│ │ │ ├── color/ # 颜色工具
│ │ │ ├── loader/ # 加载工具
│ │ │ ├── cache/ # 缓存工具
│ │ │ └── performance/# 性能工具
│ │ └── package.json
│ ├── components/ # 组件库(规划中)
│ └── examples/ # 示例项目
├── document/ # 文档目录
│ └── zh/ # 中文文档
│ ├── sdk-guide.md # SDK 使用指南
│ ├── api-reference.md # API 参考文档
│ └── component-guide.md # 组件开发指南
├── docs/ # 开发文档
├── scripts/ # 构建脚本
├── package.json # 根配置文件
├── pnpm-workspace.yaml # pnpm 工作区配置
└── README.md # 项目说明文件
```
## 🚀 快速开始
### 环境要求
- **Node.js**: >= 16.0.0
- **pnpm**: >= 8.0.0(推荐)或 npm/yarn
### 安装
#### 1. 安装依赖
```bash
# 使用 pnpm(推荐)
pnpm install
# 或使用 npm
npm install
# 或使用 yarn
yarn install
```
#### 2. 在项目中使用
```bash
# 安装 SDK
pnpm add @w3d/core three
# 或
npm install @w3d/core three
```
### 基础示例
创建一个简单的 3D 场景:
```javascript
import { Scene } from '@w3d/core';
// 创建场景
const scene = new Scene('#app', {
renderer: {
antialias: true,
alpha: false
},
camera: {
position: [0, 100, 200],
fov: 45
}
});
// 添加灯光
scene.light.addAmbient({
color: '#ffffff',
intensity: 0.8
});
scene.light.addDirectional({
color: '#ffffff',
intensity: 1.0,
position: [100, 100, 100],
castShadow: true
});
// 初始化场景
scene.init();
```
### 加载 3D 模型
```javascript
import { Scene, ModelLoader } from '@w3d/core';
const scene = new Scene('#app');
// 注册模型加载器组件
scene.registerComponent('ModelLoader', ModelLoader);
// 初始化场景
scene.init();
// 加载模型
const model = await scene.add('ModelLoader', {
name: 'robot',
url: '/models/robot.glb',
scale: 2,
position: [0, 0, 0]
});
// 监听模型点击事件
model.on('click', (event) => {
console.log('模型被点击了', event.object);
});
```
### 添加动画
```javascript
import { Tween } from '@w3d/core';
// 创建补间动画
Tween.to(model.position, { y: 10 }, 2000, {
easing: 'easeInOutQuad',
onComplete: () => {
console.log('动画完成');
}
});
```
## 🛠️ 开发
### 开发模式
```bash
# 启动所有包的开发模式
pnpm dev
# 启动特定包的开发模式
pnpm dev:core # 核心包
pnpm dev:utils # 工具包
pnpm dev:examples # 示例项目
```
### 构建
```bash
# 构建所有包
pnpm build
# 构建特定包
pnpm build:core # 核心包
pnpm build:utils # 工具包
```
### 测试
```bash
# 运行测试
pnpm test
# 监听模式
pnpm test:watch
# 测试覆盖率
pnpm test:coverage
# 测试 UI
pnpm test:ui
```
### 代码规范
```bash
# 代码检查
pnpm lint
# 自动修复
pnpm lint:fix
# 代码格式化
pnpm format
# 检查格式
pnpm format:check
```
## 📚 技术栈
### 核心依赖
- **Three.js** (^0.180.0) - 3D 图形库
- **Vite** (^5.1.4) - 构建工具
- **pnpm** (>=8.0.0) - 包管理器
### 开发工具
- **Vitest** - 单元测试框架
- **ESLint** - 代码检查工具
- **Prettier** - 代码格式化工具
- **Lerna** - Monorepo 管理工具
- **Changesets** - 版本管理和发布工具
### 架构特点
- **Monorepo 架构** - 使用 pnpm workspace 管理多包项目
- **ES Module** - 使用现代 JavaScript 模块系统
- **组件化设计** - 基于组件的可扩展架构
- **事件驱动** - 完善的事件系统支持
## 📖 文档
### 中文文档
- [SDK 使用指南](./document/zh/sdk-guide.md) - 详细的使用说明和示例
- [API 参考文档](./document/zh/api-reference.md) - 完整的 API 文档
- [组件开发指南](./document/zh/component-guide.md) - 如何开发自定义组件
### 开发文档
- [架构设计](./docs/architecture.md) - 系统架构说明
- [API 设计](./docs/api-design.md) - API 设计文档
- [组件系统](./docs/component-system.md) - 组件系统设计
- [事件系统](./docs/event-system.md) - 事件系统设计
- [构建配置](./docs/build-config.md) - 构建配置说明
## 🎯 核心功能
### Scene(场景管理)
- 场景创建和初始化
- 渲染循环控制
- 组件生命周期管理
- 资源管理
### Component(组件系统)
- 组件基类和生命周期
- 组件注册和管理
- 事件系统集成
- 配置管理
### EventSystem(事件系统)
- 鼠标事件(点击、移动、进入、离开等)
- 触摸事件支持
- 射线拾取
- 自定义事件
### ResourceManager(资源管理)
- 资源加载和缓存
- 加载进度跟踪
- 资源释放管理
- 错误处理
### AnimationManager(动画系统)
- GLTF 模型动画支持
- 补间动画
- 动画混合器
- 动画控制
## 🤝 贡献指南
我们欢迎所有形式的贡献!
### 如何贡献
1. Fork 本仓库
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启一个 Pull Request
### 开发规范
- 遵循项目的代码风格
- 编写清晰的提交信息
- 添加必要的测试
- 更新相关文档
## 📄 许可证
本项目采用 [MIT](LICENSE) 许可证。
## 👥 团队
W3D Team
## 🔗 相关链接
- [Three.js 官网](https://threejs.org/)
- [Three.js 文档](https://threejs.org/docs/)
- [WebGL 规范](https://www.khronos.org/webgl/)
## 📮 联系我们
如有问题或建议,请通过以下方式联系我们:
- 提交 [Issue](https://github.com/yourusername/w3d-sdk/issues)
- 发送邮件至:674656681@qq.com
## 🙏 致谢
感谢所有为本项目做出贡献的开发者!
---
**[⬆ 回到顶部](#w3d-sdk-v20)**
Made with ❤️ by W3D Team