完善项目文档和SDK功能
- 更新 README 文档和许可证文件 - 完善编辑器使用手册,包括BIM浏览、CAD查看等功能说明 - 更新文档配置和首页内容 - 优化编辑器环境配置 - 完善 WebSocket 通信和 API 接口 - 增强 glTF 处理器和点云重建功能 - 优化 SDK 核心模块: - 更新 App 和 Config 配置 - 添加 Billboard、HtmlPanel 等对象支持 - 完善粒子系统和天气效果 - 优化相机管理和漫游工具 - 改进材质着色器效果 - 更新服务层 README 文档 Made-with: Cursor
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
- 暗示与官方项目的关联性
|
||||
|
||||
## ©️ 版权声明
|
||||
2019-2025 © ErSan<mlt131220@163.com>. All rights reserved.
|
||||
Copyright © 2026 . All rights reserved.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2024 ErSan
|
||||
Copyright 2026
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
@@ -2,43 +2,68 @@
|
||||
|
||||
[简体中文](README.md) | English
|
||||
|
||||
## Overview
|
||||
|
||||
NeonVision 3D Editor (Art Museum Digital Cockpit) is a professional Web-based 3D scene editor built on WebGL/Three.js technology. It supports multi-format 3D model import, scene editing, animation production, BIM/CAD parsing and other professional features.
|
||||
|
||||
## Core Features
|
||||
|
||||
- Multi-format support: 30+ model formats (GLTF/OBJ/FBX/GLB/RVT/IFC, etc.)
|
||||
- BIM Model Lightweight Display (RVT/IFC)
|
||||
- CAD Drawing Analysis (DWG/DXF)
|
||||
- Scene Subpackage Storage and Loading
|
||||
- Animation Editor
|
||||
- **Multi-format Support**: Supports 30+ 3D model formats including GLTF, GLB, OBJ, FBX, RVT, IFC
|
||||
- **BIM Model Lightweight**: Lightweight display of Revit (RVT) and IFC format models
|
||||
- **CAD Drawing Analysis**: DWG/DXF format 2D drawing parsing with 3D linkage
|
||||
- **Scene Subpackage Storage**: Scene subpackage packaging and incremental loading for large-scale scenes
|
||||
- **Animation Editor**: Keyframe animation, timeline editing, skeletal animation support
|
||||
- **Real-time Preview**: Instant rendering preview, WYSIWYG
|
||||
|
||||
## Extended Capabilities
|
||||
|
||||
- Plugin System
|
||||
- Script Runtime
|
||||
- Particle System
|
||||
- Weather System
|
||||
- Cloud Storage Integration
|
||||
- Resource Center
|
||||
- **Plugin System**: Plugin extension support for customization
|
||||
- **Script Runtime**: JavaScript script injection for business logic
|
||||
- **Particle System**: Rich particle effect editor
|
||||
- **Weather System**: Fog, rain, snow and other weather effects
|
||||
- **Cloud Storage Integration**: Local storage and UpYun object storage support
|
||||
- **Asset Center**: Unified asset management for models, materials, textures, etc.
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- Vue 3.5+
|
||||
- Three.js r176+
|
||||
- Cesium 1.107+
|
||||
- Naive UI 2.43+
|
||||
- UnoCSS 0.46+
|
||||
| Category | Technology |
|
||||
|----------|------------|
|
||||
| Frontend Framework | Vue 3.5+ / Vue Router / Pinia |
|
||||
| 3D Engine | Three.js r176+ |
|
||||
| GIS Engine | Cesium 1.107+ |
|
||||
| UI Components | Naive UI |
|
||||
| CSS Framework | UnoCSS / Tailwind CSS |
|
||||
| Build Tool | Vite |
|
||||
| Editor | Monaco Editor |
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
Astral3D/
|
||||
├── packages/
|
||||
│ ├── editor/ # Web editor
|
||||
│ ├── sdk/ # 3D engine SDK
|
||||
│ ├── examples/ # Example projects
|
||||
│ └── docs/ # Documentation site
|
||||
├── common/ # Shared build config
|
||||
└── astral-service/ # Backend service (Java/SpringBoot)
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js ≥ 20.x
|
||||
- PNPM
|
||||
- Node.js ≥ 23.0.0
|
||||
- PNPM ≥ 10.8.1
|
||||
- Java 8+ (for backend)
|
||||
- MySQL 5.7+ (for backend)
|
||||
|
||||
### Local Development
|
||||
|
||||
```bash
|
||||
# Clone the project
|
||||
git clone <your-repo-url>
|
||||
git clone http://code-server:3000/lyf/Astral3D.git
|
||||
cd Astral3D
|
||||
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
@@ -50,16 +75,31 @@ pnpm run sdk:build
|
||||
pnpm run editor:dev
|
||||
```
|
||||
|
||||
Visit http://localhost:5173
|
||||
|
||||
### Production Build
|
||||
|
||||
```bash
|
||||
pnpm run editor:build
|
||||
```
|
||||
|
||||
### Backend Service (Optional)
|
||||
|
||||
```bash
|
||||
# Enter backend directory
|
||||
cd ../astral-service
|
||||
|
||||
# Configure database
|
||||
# Edit astral-web/src/main/resources/application-dev.yml
|
||||
|
||||
# Start service
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Open source under Apache 2.0 License.
|
||||
|
||||
---
|
||||
## Contributing
|
||||
|
||||
*More content to be added*
|
||||
Issues and Pull Requests are welcome.
|
||||
|
||||
@@ -2,43 +2,68 @@
|
||||
|
||||
简体中文 | [English](README.en.md)
|
||||
|
||||
## 概述
|
||||
|
||||
NeonVision 3D Editor(美术馆数字驾驶舱)是一款专业的 Web 端三维场景编辑器,基于 WebGL/Three.js 技术构建,支持多格式三维模型导入、场景编辑、动画制作、BIM/CAD 解析等专业功能。
|
||||
|
||||
## 核心功能
|
||||
|
||||
- 多格式支持:30+ 模型格式(GLTF/OBJ/FBX/GLB/RVT/IFC等)
|
||||
- BIM模型轻量化展示(RVT/IFC)
|
||||
- CAD图纸解析(DWG/DXF)
|
||||
- 场景分包存储与加载
|
||||
- 动画编辑器
|
||||
- **多格式支持**:支持 GLTF、GLB、OBJ、FBX、RVT、IFC 等 30+ 三维模型格式
|
||||
- **BIM 模型轻量化**:支持 Revit(RVT) 和 IFC 格式的轻量化展示
|
||||
- **CAD 图纸解析**:支持 DWG/DXF 格式的二维图纸解析与三维联动
|
||||
- **场景分包存储**:支持场景分包打包、增量加载,提升大规模场景性能
|
||||
- **动画编辑器**:支持关键帧动画、时间轴编辑、骨骼动画
|
||||
- **实时预览**:即时渲染预览,所见即所得
|
||||
|
||||
## 扩展能力
|
||||
|
||||
- 插件系统
|
||||
- 脚本运行时
|
||||
- 粒子系统
|
||||
- 天气系统
|
||||
- 云存储集成
|
||||
- 资源中心
|
||||
- **插件系统**:支持插件扩展,满足定制化需求
|
||||
- **脚本运行时**:支持 JavaScript 脚本注入,实现业务逻辑
|
||||
- **粒子系统**:丰富的粒子效果编辑器
|
||||
- **天气系统**:雾、雨、雪等天气效果模拟
|
||||
- **云存储集成**:支持本地存储和又拍云对象存储
|
||||
- **资源中心**:统一资产管理,支持模型、材质、纹理等
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Vue 3.5+
|
||||
- Three.js r176+
|
||||
- Cesium 1.107+
|
||||
- Naive UI 2.43+
|
||||
- UnoCSS 0.46+
|
||||
| 类别 | 技术 |
|
||||
|------|------|
|
||||
| 前端框架 | Vue 3.5+ / Vue Router / Pinia |
|
||||
| 3D 引擎 | Three.js r176+ |
|
||||
| GIS 引擎 | Cesium 1.107+ |
|
||||
| UI 组件库 | Naive UI |
|
||||
| CSS 框架 | UnoCSS / Tailwind CSS |
|
||||
| 构建工具 | Vite |
|
||||
| 编辑器 | Monaco Editor |
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
Astral3D/
|
||||
├── packages/
|
||||
│ ├── editor/ # Web 编辑器
|
||||
│ ├── sdk/ # 3D 引擎 SDK
|
||||
│ ├── examples/ # 示例项目
|
||||
│ └── docs/ # 文档站点
|
||||
├── common/ # 公共构建配置
|
||||
└── astral-service/ # 后端服务 (Java/SpringBoot)
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 前置需求
|
||||
|
||||
- Node.js ≥ 20.x
|
||||
- PNPM
|
||||
- Node.js ≥ 23.0.0
|
||||
- PNPM ≥ 10.8.1
|
||||
- Java 8+ (后端服务)
|
||||
- MySQL 5.7+ (后端服务)
|
||||
|
||||
### 本地运行
|
||||
|
||||
```bash
|
||||
# 克隆项目
|
||||
git clone <your-repo-url>
|
||||
git clone http://code-server:3000/lyf/Astral3D.git
|
||||
cd Astral3D
|
||||
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
@@ -50,16 +75,31 @@ pnpm run sdk:build
|
||||
pnpm run editor:dev
|
||||
```
|
||||
|
||||
访问 http://localhost:5173
|
||||
|
||||
### 生产构建
|
||||
|
||||
```bash
|
||||
pnpm run editor:build
|
||||
```
|
||||
|
||||
### 后端服务(可选)
|
||||
|
||||
```bash
|
||||
# 进入后端目录
|
||||
cd ../astral-service
|
||||
|
||||
# 配置数据库
|
||||
# 修改 astral-web/src/main/resources/application-dev.yml
|
||||
|
||||
# 启动服务
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
## 许可协议
|
||||
|
||||
基于 Apache 2.0 许可证开源。
|
||||
|
||||
---
|
||||
## 贡献指南
|
||||
|
||||
*更多内容待补充*
|
||||
欢迎提交 Issue 和 Pull Request。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@astral3d/build-vite-plugins",
|
||||
"author": "ErSan<mlt131220@163.com>",
|
||||
"author": "",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "astral3d",
|
||||
"version": "1.0.0",
|
||||
"description": "Astral3D Engine",
|
||||
"author": "ErSan <mlt131220@163.com>",
|
||||
"author": "",
|
||||
"scripts": {
|
||||
"docs:dev": "pnpm run -C packages/docs docs:dev",
|
||||
"docs:dev-clean": "pnpm run -C packages/docs docs:dev-clean",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.0",
|
||||
"description": "Astral3D 文档",
|
||||
"packageManager": "pnpm@10.8.1",
|
||||
"author": "ErSan <mlt131220@163.com>",
|
||||
"author": "",
|
||||
"scripts": {
|
||||
"docs:dev": "vuepress dev src",
|
||||
"docs:dev-clean": "vuepress dev src --clean-cache --clean-temp",
|
||||
|
||||
@@ -9,7 +9,7 @@ permalink: /astral/ib77r5fd/
|
||||
|
||||
{width="618" height="616" style="width: 200px"}
|
||||
|
||||
您在使用过程中遇到任何问题,欢迎通过 [issue](https://github.com/mlt131220/Astral3D/issues/new) 反馈。也欢迎加入我们的 QQ 交流群一起讨论。
|
||||
您在使用过程中遇到任何问题,欢迎通过项目仓库反馈。也欢迎加入我们的 QQ 交流群一起讨论。
|
||||
|
||||
> :fire: 4核8G 200兆服务器,仅需49元/月,[点击这里购买](https://www.rainyun.com/Astral3D_)
|
||||
> 专属优惠码:Astral3D
|
||||
|
||||
@@ -176,7 +176,7 @@ export default defineUserConfig({
|
||||
comment: {
|
||||
provider: 'Giscus', // "Artalk" | "Giscus" | "Twikoo" | "Waline"
|
||||
comment: true,
|
||||
repo: 'mlt131220/Astral3D-Docs',
|
||||
repo: 'Astral3D/Docs',
|
||||
repoId: 'R_kgDOLuBMGg',
|
||||
category: 'Announcements',
|
||||
categoryId: 'DIC_kwDOLuBMGs4Cero3',
|
||||
|
||||
@@ -11,7 +11,7 @@ export default defineThemeConfig({
|
||||
appearance: true, // 配置 深色模式
|
||||
|
||||
social: [
|
||||
{ icon: 'github', link: 'https://github.com/mlt131220/Astral3D' },
|
||||
{ icon: 'github', link: 'http://code-server:3000/lyf/Astral3D.git' },
|
||||
],
|
||||
// navbarSocialInclude: ['github'], // 允许显示在导航栏的 social 社交链接
|
||||
// aside: true, // 页内侧边栏, 默认显示在右侧
|
||||
@@ -30,7 +30,7 @@ export default defineThemeConfig({
|
||||
/* 站点页脚 */
|
||||
footer: {
|
||||
message: '',
|
||||
copyright: 'Copyright © 2023-present <a target="_blank" href="https://github.com/mlt131220">ErSan <mlt131220@163.com></a>',
|
||||
copyright: 'Copyright © 2026',
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,11 +18,11 @@ config:
|
||||
-
|
||||
theme: alt
|
||||
text: Demo
|
||||
link: https://editor.astraljs.com/#/
|
||||
link:
|
||||
-
|
||||
theme: alt
|
||||
text: Github
|
||||
link: https://github.com/mlt131220/Astral3D
|
||||
link:
|
||||
-
|
||||
type: features
|
||||
features:
|
||||
|
||||
@@ -8,7 +8,7 @@ permalink: /guide/dju4ekca/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/extras/resource.png"
|
||||
title="资源中心"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/17"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -10,7 +10,7 @@ permalink: /guide/rf1xgf4z/
|
||||
title="BIM"
|
||||
description="通过将BIM工程文件(.rvt)转换为glTF文件,在保留BIM构件属性的同时压缩优化模型,以达到web端解析BIM并且轻量化的目的。"
|
||||
width="300"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
</div>
|
||||
@@ -41,7 +41,7 @@ permalink: /guide/rf1xgf4z/
|
||||
image="/images/manual/editor/leftSidebar/bimUpload.png"
|
||||
title="上传模型"
|
||||
width="400"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
</div>
|
||||
@@ -62,7 +62,7 @@ permalink: /guide/rf1xgf4z/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/leftSidebar/bimHistory.png"
|
||||
title="历史记录"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -10,7 +10,7 @@ permalink: /guide/u1631nwk/
|
||||
title="CAD"
|
||||
description="编辑器支持用户上传CAD图纸(.dwg、.dxf)进行解析预览"
|
||||
width="300"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
</div>
|
||||
@@ -43,7 +43,7 @@ permalink: /guide/u1631nwk/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/leftSidebar/cadUpload.png"
|
||||
title="上传图纸"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
:::
|
||||
@@ -59,7 +59,7 @@ permalink: /guide/u1631nwk/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/leftSidebar/cadHistory.png"
|
||||
title="历史记录"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/15"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -9,14 +9,14 @@ permalink: /guide/rzqb0h0l/
|
||||
image="/images/manual/editor/leftSidebar/sceneTree.png"
|
||||
title="场景树"
|
||||
description="场景树是 Astral3D 编辑器中用于管理场景中所有对象的工具。它以树状结构展示场景中的层级关系,便于用户快速定位和操作对象"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
<ImageCard
|
||||
image="/images/manual/editor/leftSidebar/sceneTreeContextMenu.png"
|
||||
title="场景节点右键菜单"
|
||||
description="聚焦、删除、拷贝"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
</CardGrid>
|
||||
|
||||
@@ -278,4 +278,4 @@ function beforeDestroy() {
|
||||
|
||||
:::
|
||||
|
||||
<iframe height=500 width=100% src="https://editor.astraljs.com/#/preview/a18eb710-c1f8-4cff-b8ab-c3a2056ccf57" frameborder=0 allowfullscreen></iframe>
|
||||
<iframe height=500 width=100% src="#/preview/a18eb710-c1f8-4cff-b8ab-c3a2056ccf57" frameborder=0 allowfullscreen></iframe>
|
||||
@@ -9,7 +9,7 @@ permalink: /guide/7eo51kfy/
|
||||
image="/images/manual/editor/viewport/drawing.png"
|
||||
title="2D图纸"
|
||||
description="拖入(双击)添加至场景中的图纸会自动占据中心视口一半的位置,其与3D视图中间的垂直分割线可以左右拖动以改变占据视口的大小"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
:::
|
||||
@@ -53,7 +53,7 @@ permalink: /guide/7eo51kfy/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/viewport/drawingLayer.png"
|
||||
title="CAD图层"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -9,7 +9,7 @@ permalink: /guide/jkg3yahd/
|
||||
image="/images/manual/editor/viewport/viewer.png"
|
||||
title="3D场景"
|
||||
description="编辑器的核心视口,展示用户所编辑的场景内容。"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
:::
|
||||
@@ -38,7 +38,7 @@ permalink: /guide/jkg3yahd/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/viewport/viewerCamera.png"
|
||||
title="场景相机/六视图"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
:::
|
||||
@@ -49,7 +49,7 @@ permalink: /guide/jkg3yahd/
|
||||
image="/images/manual/editor/viewport/viewerRenderMode.png"
|
||||
title="渲染模式"
|
||||
width="400"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
</div>
|
||||
@@ -66,7 +66,7 @@ permalink: /guide/jkg3yahd/
|
||||
image="/images/manual/editor/viewport/viewerTransform.png"
|
||||
title="变换控制"
|
||||
width="400"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/16"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@ permalink: /guide/swepocsg/
|
||||
image="/images/manual/editor/page.png"
|
||||
title="编辑器"
|
||||
description="整个编辑界面分为 `顶栏`,`左侧边栏`,`场景视口`,`扩展栏`,`右侧边栏` 五个区域"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -42,13 +42,13 @@ permalink: /guide/f7smai4w/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/header/exportObject.png"
|
||||
title="导出选中对象"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
<ImageCard
|
||||
image="/images/manual/editor/header/exportScene.png"
|
||||
title="导出场景"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
</CardGrid>
|
||||
@@ -121,7 +121,7 @@ permalink: /guide/f7smai4w/
|
||||
image="/images/manual/editor/header/mainColor.png"
|
||||
title="主色调"
|
||||
description="调整编辑器的主色,系统会自动生成相应的浅色、深色色阶,用于鼠标经过以及选中等效果"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
|
||||
@@ -132,7 +132,7 @@ permalink: /guide/f7smai4w/
|
||||
<ImageCard
|
||||
image="/images/manual/editor/header/setting.png"
|
||||
title="系统设置"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/04/14"
|
||||
/>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ permalink: /guide/4tirtbsc/
|
||||
image="/images/manual/home/assets/assets-page.jpg"
|
||||
title="资源中心"
|
||||
description="多级分类,精细控制"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
@@ -20,7 +20,7 @@ date="2025/08/01"
|
||||
image="/images/manual/home/assets/asset-upload.png"
|
||||
title="上传资源"
|
||||
description="多级分类,精细控制"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
@@ -37,7 +37,7 @@ date="2025/08/01"
|
||||
image="/images/manual/home/assets/asset-preview-screenshot.png"
|
||||
title="通过预览截图"
|
||||
description="点击截图按钮,将自动截取当前画布填充至表单缩略图字段,并关闭此预览弹窗"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
@@ -123,7 +123,7 @@ date="2025/08/01"
|
||||
image="/images/manual/home/assets/asset-preview.png"
|
||||
title="预览资源"
|
||||
description="点击资源卡片/资源卡片操作栏的预览按钮进行资源预览。 预览弹窗左侧为可操作画布,右侧为资源详情及操作。"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
@@ -134,7 +134,7 @@ date="2025/08/01"
|
||||
image="/images/manual/home/assets/asset-edit.png"
|
||||
title="编辑资源"
|
||||
description="点击资源卡片操作栏的编辑选项进行资源编辑。 编辑时无法修改资源类型和资源文件。"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -9,7 +9,7 @@ permalink: /guide/dbd366ps/
|
||||
image="/images/manual/home/project/project-page.png"
|
||||
title="项目"
|
||||
description=""
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
@@ -23,7 +23,7 @@ date="2025/08/01"
|
||||
image="/images/manual/home/project/new-project.png"
|
||||
title="新建项目"
|
||||
description="可以选择新建一个空项目或者依据内置模板创建"
|
||||
author="ErSan"
|
||||
author=""
|
||||
date="2025/08/01"
|
||||
/>
|
||||
:::
|
||||
|
||||
@@ -5,10 +5,10 @@ VITE_PORT=8090
|
||||
VITE_GLOB_APP_TITLE='Astral3D Editor'
|
||||
|
||||
# 作者
|
||||
VITE_GLOB_AUTHOR='ErSan'
|
||||
VITE_GLOB_AUTHOR=''
|
||||
|
||||
# 当前版本
|
||||
VITE_GLOB_VERSION='1.0.0'
|
||||
|
||||
# 备案号
|
||||
VITE_GLOB_BEIAN='滇ICP备XXXXXX号'
|
||||
VITE_GLOB_BEIAN=''
|
||||
@@ -16,7 +16,7 @@ VITE_ENABLE_ANALYZE=true
|
||||
VITE_ENABLE_CONFIG_GENERATE=true
|
||||
|
||||
# 当前站点URL
|
||||
VITE_GLOB_ORIGIN=https://editor.astraljs.com/
|
||||
VITE_GLOB_ORIGIN=
|
||||
|
||||
#ws接口
|
||||
VITE_GLOB_SOCKET_URL=wss://editor.astraljs.com/socket
|
||||
VITE_GLOB_SOCKET_URL=
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@astral3d/editor",
|
||||
"author": "ErSan<mlt131220@163.com>",
|
||||
"author": "",
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* @author MaHaiBing
|
||||
* @email mlt131220@163.com
|
||||
* @date 2023/11/29 10:10
|
||||
* @author
|
||||
* @date 2026/3/13
|
||||
* @description websocket hook;使用store管理websocket保证全局唯一性
|
||||
*/
|
||||
import {unref} from 'vue';
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* @author MaHaiBing
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/7/28 14:54
|
||||
* @author
|
||||
* @date 2026/3/13
|
||||
* @description 示例场景
|
||||
*/
|
||||
import {request} from "@/http/request";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/9/18 22:24
|
||||
* @date 2026/3/13
|
||||
* @description
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/9/16 23:19
|
||||
* @date 2026/3/13
|
||||
* @description glTF处理器插件
|
||||
*/
|
||||
import {h, ref} from "vue";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2025/07/03 14:20
|
||||
* @date 2026/3/13
|
||||
* @description 语义化点云重建
|
||||
*/
|
||||
import { h, ref } from "vue";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/9/16 0:36
|
||||
* @date 2026/3/13
|
||||
* @description
|
||||
*/
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/3/26 9:57
|
||||
* @date 2026/3/13
|
||||
* @description 全局常量
|
||||
*/
|
||||
// 支持的模型格式
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/8/22
|
||||
* @date 2026/3/13
|
||||
* @description 预览菜单操作
|
||||
*/
|
||||
import { useFullscreen } from '@vueuse/core'
|
||||
|
||||
@@ -343,7 +343,7 @@ const allList = {
|
||||
image: "/static/resource/billboard/icon/no-entry.svg",
|
||||
name: cpt("extra.resource.billboard.No entry")
|
||||
},
|
||||
{key: "clown", image: "/static/resource/billboard/icon/clown.svg", name: cpt("ErSan")},
|
||||
{key: "clown", image: "/static/resource/billboard/icon/clown.svg", name: cpt("")},
|
||||
],
|
||||
"text": [
|
||||
{
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
VITE_PORT=8091
|
||||
|
||||
# 作者
|
||||
VITE_GLOB_AUTHOR='ErSan'
|
||||
VITE_GLOB_AUTHOR=''
|
||||
@@ -16,4 +16,4 @@ VITE_ENABLE_ANALYZE=false
|
||||
VITE_ENABLE_CONFIG_GENERATE=false
|
||||
|
||||
# 当前站点URL
|
||||
VITE_GLOB_ORIGIN=https://editor.astraljs.com/
|
||||
VITE_GLOB_ORIGIN=
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2025/4/22 10:16
|
||||
* @date 2026/3/13
|
||||
* @description 静态类,全局场景管理
|
||||
*/
|
||||
import * as THREE from 'three';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/4/26 13:59
|
||||
* @description 应用的全局配置,会存储在本地缓存
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2025/4/26 13:59
|
||||
* @date 2026/3/13
|
||||
* @description 当前项目相关信息
|
||||
*/
|
||||
import * as THREE from 'three';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/01/08
|
||||
* @description 从原型链扩充原threejs对象方法
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/3/11 10:18
|
||||
* @description 茶壶几何,修改于 three/examples/jsm/geometries/TeapotGeometry.js
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* THREE JSON 解析器
|
||||
* @author ErSan
|
||||
* @date 2026/3/13
|
||||
* @version 2.0.0
|
||||
* @description 来自于THREE.ObjectLoader,修改了部分代码,添加了部分功能
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author MaHaiBing
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/8/3 22:49
|
||||
* @date 2026/3/13
|
||||
* @description 包 骨骼处理
|
||||
*/
|
||||
import {Skeleton, Bone, Object3D } from "three";
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/4/6 12:02
|
||||
* @description 广告牌对象
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/4/10 0:29
|
||||
* @description html面板
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/21 22:08
|
||||
* @description 带线框子模型的Mesh对象
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* 用于代理粒子发射器的空对象,以便于进行场景树显示及控制操作
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025-02-14 16:00:00
|
||||
*/
|
||||
import * as THREE from 'three';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/4/6 13:07
|
||||
* @description 广告牌map
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/01/07
|
||||
* @description 贴相机的下雨效果
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/01/08
|
||||
* @description 贴相机的下雪效果
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/9/16 23:18
|
||||
* @description 在此处注册内置插件
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/9/16 2:57
|
||||
* @description 插件加载
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/07/03 19:38
|
||||
* @description 点云语义重建
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2025/7/30 18:49
|
||||
* @description 资源预览类
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/4/24 10:39
|
||||
* @description 迁移App.ts中的一些方法(也有新增)提供脚本使用,因为脚本在运行态时执行,应该与原环境隔离
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/18 13:49
|
||||
* @description 圆网格着色器材质
|
||||
* @from https://www.shadertoy.com/view/7dG3zy
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/18 13:49
|
||||
* @description 动态棋盘着色器材质
|
||||
* @from https://glslsandbox.com/e#109552.0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/18 13:49
|
||||
* @description 闪烁着色器材质
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/18 13:49
|
||||
* @description 动态烟着色器材质
|
||||
* @from https://glslsandbox.com/e#109550.0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @description 下雪特效着色器
|
||||
*/
|
||||
import { ShaderChunk, ShaderMaterial, Vector2, Vector4, TextureLoader, RepeatWrapping, DoubleSide } from "three";
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/5/18 13:49
|
||||
* @description 流光墙着色器材质
|
||||
* @from http://t.csdnimg.cn/zSxq0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/08/28
|
||||
* @description 漫游类,使用BVH检测碰撞,人物模型必须包含动画:Enter,Idle, Walking, WalkingBackward,Jumping
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/8/29 22:10
|
||||
* @description 漫游的人物动画状态机
|
||||
*/
|
||||
|
||||
@@ -3,8 +3,7 @@ import CameraControls from "camera-controls";
|
||||
import Viewer from "../Viewer"
|
||||
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/10/21 21:16
|
||||
* @description 场景相机管理器。 TODO: 后续应把viewport.camera也管理进来
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2026/3/13
|
||||
* @date 2024/10/26 18:27
|
||||
* @description 后处理
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2025/9/23 21:31
|
||||
* @date 2026/3/13
|
||||
* @description 3d tiles加载管理
|
||||
*/
|
||||
import {TilesRenderer} from "3d-tiles-renderer";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/*
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2024/12/23 19:27
|
||||
* @date 2026/3/13
|
||||
* @description 天气系统
|
||||
*/
|
||||
import * as THREE from "three";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
/**
|
||||
* @author ErSan
|
||||
* @email mlt131220@163.com
|
||||
* @date 2025/2/24 下午2:21
|
||||
* @date 2026/3/13
|
||||
* @description 日志记录器
|
||||
*/
|
||||
import {useAddSignal, useDispatchSignal,useRemoveSignal} from '@/hooks';
|
||||
|
||||
13
README.md
13
README.md
@@ -145,7 +145,11 @@ java -jar astral-web-exec.jar
|
||||
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| [GIT_TUTORIAL.md](../GIT_TUTORIAL.md) | Git 操作教程 |
|
||||
| [二开改造方案.md](docs/二开改造方案.md) | 二次开发视觉改造方案(新品牌 Logo、配色、UI 风格) |
|
||||
| [digital-atelier-philosophy.md](docs/digital-atelier-philosophy.md) | 设计哲学:Digital Atelier 理念 |
|
||||
| [ui-migration-todo.md](docs/ui-migration-todo.md) | UI 迁移待办:NaiveUI → Shadcn UI |
|
||||
| [css-migration-spec.md](docs/css-migration-spec.md) | CSS 样式迁移规范 |
|
||||
| [GIT_TUTORIAL.md](docs/GIT_TUTORIAL.md) | Git 操作教程 |
|
||||
|
||||
---
|
||||
|
||||
@@ -159,12 +163,7 @@ java -jar astral-web-exec.jar
|
||||
|
||||
- [在线演示](https://editor.astraljs.com)
|
||||
- [文档中心](http://editor-doc.astraljs.com/)
|
||||
- [后端仓库](https://github.com/yx8663/astral-service)
|
||||
- [前端仓库](https://github.com/mlt131220/Astral3D)
|
||||
- [代码仓库](http://code-server:3000/lyf/Astral3D.git)
|
||||
|
||||
---
|
||||
|
||||
## 交流社区
|
||||
|
||||
- QQ 交流群:1040320579
|
||||
- 微信:联系开发者(仅限商务)
|
||||
|
||||
@@ -1,50 +1,77 @@
|
||||
# AstralService
|
||||
|
||||
🌍
|
||||
*[简体中文](README.md)*
|
||||
🌍 *[简体中文](README.md)* | English
|
||||
|
||||
基于`Java:8`和`SpringBoot:2.7.18`的 [Astral3D](https://github.com/mlt131220/Astral3D) 项目后端代码.
|
||||
Backend service for NeonVision 3D Editor.
|
||||
|
||||
Based on `Java 8` and `SpringBoot 2.7.18`.
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
## 快速开始
|
||||
## Prerequisites
|
||||
|
||||
- Java 8+
|
||||
- Maven 3.6+
|
||||
- MySQL 5.7+
|
||||
|
||||
## Quick Start
|
||||
|
||||
```shell
|
||||
git clone https://github.com/yx8663/astral-service.git
|
||||
git clone http://code-server:3000/lyf/Astral3D.git
|
||||
cd astral-service
|
||||
```
|
||||
### 配置
|
||||
* 数据库使用 MySQL,表结构数据文件位于: `static/sql/astral_3d.sql`;
|
||||
* 配置文件路径: `astral-web/src/main/resources/application-dev.yml`;
|
||||
* 修改配置文件下 `spring.datasource` 项为自己的数据库连接;
|
||||
* 修改配置文件下 `astral.uploadType` 项为自己使用的文件存储方式:`本地-local 又拍云-upyun`;
|
||||
* 修改配置文件下 `astral.uploadDir` 项为自己使用的文件存储方式对应的存储目录:
|
||||
* `本地-local`存储推荐修改为此项目下的`static`文件夹;
|
||||
* `又拍云-upyun`存储按需配置存储路径;
|
||||
* 如果使用`又拍云-upyun`存储,还需修改配置文件下 `upyun`项配置:
|
||||
* `bucket` 为对应存储桶名;
|
||||
* `operator` 为在又拍云为该桶配置的操作员账号;
|
||||
* `password` 为对应操作员密码;
|
||||
* `domain` 为该存储使用的加速域名(为保证又拍云信息不在前端泄露,故不使用在`HTTP Header`/`HTTP Body`签名认证的方式鉴权,而是配置对应存储的加速域名,将前端请求重定向来通过该加速域名获取资源);
|
||||
* 修改配置文件下 `dev` 项配置:
|
||||
* `currentAbPath` 为本项目绝对路径地址;
|
||||
* `cadDwgConverterAbPath` 为本地CAD Dwg转换器执行程序文件夹绝对路径,转换程序使用 libreDWG(已包含在项目static/lib/libredwg文件夹);
|
||||
* `temporaryFolder` 为临时文件夹地址,推荐配置为本项目地址下的`static/tmp`文件夹;
|
||||
|
||||
## 运行
|
||||
### Database Setup
|
||||
|
||||
### 方式一
|
||||
> IDEA中直接运行@SpringBootApplication注解的类的main方法: <br />
|
||||
> `astral-web/src/main/java/com.astral.web/AstralWebApplication/AstralWebApplication`
|
||||
1. Create database and import schema:
|
||||
```sql
|
||||
mysql -u root -p < static/sql/astral_3d.sql
|
||||
```
|
||||
|
||||
### 方式二
|
||||
> cmd中执行命令 `mvn spring-boot:run`
|
||||
2. Configure database connection in:
|
||||
```
|
||||
astral-web/src/main/resources/application-dev.yml
|
||||
```
|
||||
|
||||
### 方式三(打包)
|
||||
> cmd中执行命令:
|
||||
> * 生成jar包: mvn clean package
|
||||
> * 进入生成的jar包目录:cd astral-web/target
|
||||
> * 运行项目:java -jar astral-web-exec.jar
|
||||
### Configuration
|
||||
|
||||
## Star History
|
||||
[](https://star-history.com/#yx8663/astral-service&Date)
|
||||
Edit `astral-web/src/main/resources/application-dev.yml`:
|
||||
|
||||
| Property | Description |
|
||||
|----------|-------------|
|
||||
| `spring.datasource` | Your MySQL connection settings |
|
||||
| `astral.uploadType` | Storage type: `local` or `upyun` |
|
||||
| `astral.uploadDir` | Storage directory path |
|
||||
| `upyun.bucket` | UpYun bucket name (if using UpYun) |
|
||||
| `upyun.operator` | UpYun operator account |
|
||||
| `upyun.password` | UpYun operator password |
|
||||
| `upyun.domain` | UpYun CDN domain |
|
||||
| `dev.currentAbPath` | Project absolute path |
|
||||
| `dev.cadDwgConverterAbPath` | CAD DWG converter path (libreDWG) |
|
||||
| `dev.temporaryFolder` | Temporary folder path |
|
||||
|
||||
### Running
|
||||
|
||||
**Option 1: IDEA**
|
||||
Run the main class:
|
||||
```
|
||||
astral-web/src/main/java/com.astral.web/AstralWebApplication/AstralWebApplication
|
||||
```
|
||||
|
||||
**Option 2: Maven**
|
||||
```bash
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
**Option 3: JAR Package**
|
||||
```bash
|
||||
mvn clean package
|
||||
cd astral-web/target
|
||||
java -jar astral-web-exec.jar
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Open source under MIT License.
|
||||
|
||||
Reference in New Issue
Block a user