1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ShadowEditor-ShadowEditor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 24 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.03.2025 13:59 cc40216

Shadow Editor

English / 中文    |    Windows Server    |    Linux Server    |    Web Application Example    |    Official Website

Description: The server represents a compiled version with an embedded MongoDB. To start it, run start.bat or start.sh. Accessible via the browser Google Chrome at address http://localhost:2020.

Good news! A new version based on vite4 + vue3 + ts5 + ant-design-vue7 will soon be available, more details here.

star fork image image image image

  • Name: Shadow Editor
  • Version: v0.6.1 (in development)
  • Description: Cross-platform 3D scene editor based on Three.js, Go and MongoDB.
  • Source code: GitHub Gitee | Documentation: Gitee | Examples: GitHub Gitee | Video: Weibo Bilibili | Resources: Baidu Netdisk rfja
  • Technology stack: html, css, javascript, rollup, react.js, webgl, three.js, golang, mongodb, nodejs, electron, protocol buffers.
  • If you find this project helpful, please help its development financially. Thank you very much!

Open version

image

Professional version

image

Update to version v0.6.1

Starting from version v0.6.1, ShadowEditor provides only basic functions and extendable API. All other features will be implemented as extensions similar to VSCode. The transition to an extensible system will take place in the dev branch.

  1. Fixed font issues when working with Go versions.
  2. Hidden model history tab.
  3. Disabled display of sprite borders upon selection.
  4. Fixed dropdown search style errors.

Version v0.6.0 has been released

  • Release date: July 24, 2021
  • Changes:
  1. Fixed issues creating new MongoDB connections during requests.
  2. Activated VR mode by selecting "Virtual Reality" option in status bar.
  3. Configured scene movement settings.
  4. Enabled opening windows on object clicks: https://gitee.com/tengge1/ShadowEditor/issues/I3APGI
  5. Added HTTPS configuration in config.toml.
  6. Added touch events for mobile browsers in scripts: onTouchStart, onTouchEnd, onTouchMove.
  7. Updated three.js to latest version r130.
  8. Added VR event support in scripts: onVRConnected, onVRDisconnected, onVRSelectStart, onVRSelectEnd.
  9. Supported VR controllers such as HTC Vive.
  10. Fixed script deletion issues.
  11. Resolved serialization issues for Geometry after updating three.js.
  12. Added ability to configure material parameters polygonOffset, polygonOffsetFactor, polygonOffsetUnits to resolve depth conflict issues.
  13. Fixed visibility component saving issues within models.
  14. No longer supports .bin type models.
  15. Fixed stereographic texture issues.
  16. All methods prototype were replaced with ES6 class.
  17. Removed visual module representation.
  18. Fixed scene export issues related to incorrect skybox texture copy.
  19. Fixed precipitation creation issues.
  20. Changed background color and light for better visibility of added planes.
  21. Fixed particle issues.
  22. Fixed material issues.
  23. Fixed shadow setup issues.

Feature list- [x] Общие функции

  • Кросс-платформенность
    • Windows, Linux, Mac
    • Десктопная версия, веб-версия
  • Поддержка нескольких языков
    • Английский, китайский, традиционный китайский, японский, корейский, русский, французский
  • Управление ресурсами
    • Сцены, модели, текстуры, материалы, аудио, анимации, скриншоты, видео, шрифты
  • Управление правами
    • Организации, пользователи
    • Роли, права
    • Регистрация, вход, изменение пароля
  • Версионное управление
    • История сцен, журнал действий
    • Отмена, повтор, автоматическое сохранение
  • Проигрыватель
    • Реальное время воспроизведение анимаций в сцене, поддерживает полноэкранный просмотр и новое окно
  • Настройки
    • Отображение, рендеринг, помощники, фильтры, погода, режим управления, режим выбора, режим добавления, язык
  • Редактирование маленьких сцен
    • Добавление моделей
      • 3ds, 3mf, amf, assimp, awd, babylon, bvh, collada, ctm
      • draco, fbx, gcode, gltf, glb, js, kmz, lmesh, md2, pmd, pmx
      • nrrd, obj, pcd, pdb, ply, prwm, sea3d, stl, vrm, vrml, vtk, x
    • Внутренние объекты
      • Группы
      • Плоскость, куб, сфера, цилиндр, сфера, двадцатигранник, тор, чайник, токарь
      • Текст без масштабирования, трёхмерный текст
      • Линии, CatmullRom кривая, параболическая кривая, кубическая кривая, эллиптическая кривая
      • Точки
      • Помощники стрелок, осей
      • Спрайты
    • Внутренние источники света
      • Освещение, параллельный свет, точечный источник света, прожектор, полумесяц, прямоугольный источник света
      • Помощники точечного источника света, полумесяца, прямоугольного источника света
    • Внутренние компоненты
      • Фоновая музыка, генератор частиц
      • Небо, пламя, вода, дым, материал
      • Берлинская топология, сфера неба
    • Редактирование материалов
      • Материал линии, пунктирный материал, базовый материал, материал глубины, материал нормали
      • Материал Lambert, Phong, точки, стандартный материал, физический материал
      • Материал спрайта, материал шейдеров, оригинальный материал шейдеров
    • Послепроизводство
      • Размытие, размытие фона, пикселизация, быстрое приближённое антиалиасинг (FXAA), зазубрина
      • Полутоновое, пикселизация, цветовой сдвиг, расширенное окружное антиалиасинг (SAO)
      • Многослойное антиалиасинг (SMAA), полносистемное антиалиасинг (SSAA)
      • Эффект экранного пространства окружного антиалиасинг (SSAO), временного антиалиасинг (TAA)
    • Редактирование текста
      • Редактирование скриптов JS с автозаполнением
      • Редактирование шейдеров
      • Редактирование JSON файлов
    • Экспорт моделей
      • gltf, obj, ply, stl, Collada, DRACO
    • Публикация сцен
      • Экспорт сцены в статические ресурсы, которые можно встраивать в iframe
    • Примеры
      • Breakout, камера, примеры, PingPong, шейдеры
    • Часто используемые инструменты
      • Выбор, перемещение, поворот, масштабирование
      • Перспективное, проекционное, боковое, верхнее, сеточное
      • Скриншоты, запись видео
      • Рисование точек, линий, поверхностей, наклейка
      • Измерение расстояний
    • Другие функции
      • VR: cardboard, htc vive, chrome, firefox
      • Физический движок Bullet

UI компоненты

  • Канва
  • Форма: Button, CheckBox, Form, FormControls, IconButton, IconMenuButton, ImageButton, Input, Label, LinkButton, Radio, SearchField, Select, TextArea, Toggle
  • Иконки
  • Изображения: Image, ImageList, ImageSelector, ImageUploader
  • Расположение: AbsoluteLayout, AccordionLayout, BorderLayout, HBoxLayout, TableLayout, VBoxLayout
  • Меню: ContextMenu, MenuBar, MenuBarFiller, MenuItem, MenuItemSeparator, MenuTab
  • Панели
  • Прогресс: LoadMask
  • Свойства: ButtonProperty, ButtonsProperty, CheckBoxProperty, ColorProperty, DisplayProperty, IntegerProperty, NumberProperty, PropertyGrid, PropertyGroup, SelectProperty, TextProperty, TextureProperty
  • SVG
  • Таблицы: DataGrid, Table, TableBody, TableCell, TableHead, TableRow
  • Временная шкала
  • Инструменты: Toolbar, ToolbarFiller, ToolbarSeparator
  • Деревья
  • Окна: Alert, Confirm, Message, Photo, Prompt, Toast, Video, Window

Требования

  1. MongoDB v3.6.8+
  2. Chrome 81.0+ или Firefox 75.0+

При сборке из исходного кода потребуются следующие программы:

  1. Golang 1.14.2+
  2. NodeJS 14.1+
  3. gcc 9.3.0+ (На Windows требуется установка tdm-gcc, MinGW-w64 или MinGW. Убедитесь, что gcc доступен через командную строку)
  4. git 2.25.1+

Обратите внимание: номера версий указаны ориентировочно.

Скачивание и сборка

Вы можете использовать git для скачивания исходного кода.

git clone https://github.com/tengge1/ShadowEditor.git

В случае проблем с доступом к GitHub вы можете использовать Gitee.

git clone https://gitee.com/tengge1/ShadowEditor.git

Сборка на Windows и Ubuntu

Веб-версия:

  1. Если вы находитесь в Китае, выполните npm run set-proxy для настройки прокси для Go и NodeJS.
  2. Выполните npm install для установки зависимостей NodeJS.
  3. Выполните npm run build для сборки сервера и веб-приложения.
  4. Редактируйте build/config.toml для изменения параметров хоста и порта MongoDB.
  5. Выполните npm start для запуска сервера. Теперь вы можете получить доступ по адресу http://localhost:2020.
  6. Если HTTPS включен в конфигурационном файле, обращайтесь по адресу https://localhost:2020.

Десктопная версия:

  1. Скачайте и распакуйте MongoDB в папку utils/mongodb.
  2. Соберите веб-версию.
  3. Выполните npm run build-desktop для создания десктопного приложения в папке build/desktop.

Установка как службы Windows

  1. Откройте PowerShell или cmd с правами администратора в папке build.
  2. Выполните .\ShadowEditor install, чтобы установить ShadowEditor как службу.
  3. Выполните .\ShadowEditor start, чтобы запустить службу ShadowEditor.
  4. Теперь вы можете получить доступ к: http://localhost:2020.
  5. Также можно управлять этой службой через Управление службами Windows.

Установка как службы Ubuntu

  1. Измените ./scripts/service_linux/shadoweditor.service, указав правильные пути.
  2. Выполните sudo cp ./scripts/service_linux/shadoweditor.service /etc/systemd/system/.
  3. Выполните sudo systemctl daemon-reload, чтобы перезагрузить демона системных услуг.
  4. Выполните sudo systemctl start shadoweditor, чтобы запустить службу.
  5. Выполните sudo systemctl enable shadoweditor, чтобы настроить автозапуск при старте системы.## Использование командной строки
PS E:\github\ShadowEditor\build\> .\ShadowEditor
ShadowEditor — это редактор сцен 3D, основанный на three.js, golang и mongodb.
Эта программа использует mongodb для хранения данных.

Использование:
  ShadowEditor [команда]

Доступные команды:
  debug       Отладка службы на Windows
  help        Помощь по любой команде
  install     Установка службы на Windows
  serve       Запуск сервера
  start       Запуск службы на Windows
  stop        Остановка службы на Windows
  version     Вывод номера версии

Флаги:
      --config string   Конфигурационный файл (по умолчанию "./config.toml")
  -h, --help            Помощь по ShadowEditor

Используйте "ShadowEditor [команда] --help", чтобы узнать больше информации о команде.

Разработчики

  1. Скачайте и установите NodeJS, Golang, MongoDB и Visual Studio Code.
  2. Рекомендовано установить следующие расширения для VSCode, они полезны для разработки:
ESLint, Go, Поддержка шейдерных языков для VS Code, Поддержка TOML.

npm скрипты:

npm install:            Установка зависимостей nodejs.
npm run build:          Сборка серверной части и web-клиента.
npm run build-server:   Только сборка серверной части. (для разработки)
npm run build-web:      Только сборка web-клиента. (для разработки)
npm run build-desktop:  Сборка версии для рабочего стола.
npm run dev:            Автоматическая сборка web-клиента при изменении файла. (для разработки)
npm run copy:           Копирование ресурсов из папки web в папку build.
npm run start:          Запуск серверной части.
npm run set-proxy:      Настройка прокси для golang и nodejs. (только для использования внутри страны)
npm run unset-proxy:    Отключение прокси для golang и nodejs.
npm run install-dev:    Установка инструментов разработки для golang.
npm run eslint:         Проверка js-файлов, автоматическое исправление ошибок.
npm run clean:          Удаление собранной версии web и рабочего стола.
npm run clear:          Удаление ненужных пакетов nodejs.

Участие в проекте

Развернуть для подробностей

Проект ShadowEditor предназначен для пользователей и разработчиков. Здесь вы можете отправлять свои идеи и предложения. Нет вознаграждения, но есть много удовольствия. Для отправки кода выполните следующие шаги:

  1. Создайте форк этого репозитория.
  2. Создайте новую ветку Feat_xxx.
  3. Отправьте свой код.
  4. Создайте новый pull request.

Обратите внимание: Не отправляйте большие двоичные файлы, так как они могут быть отклонены. Если вам нужно, вы можете добавить файлы или директории, которые следует игнорировать, в файл .gitignore.

Часто задаваемые вопросы

〈summary〉Развернуть для подробностей〈/summary〉
  1. Не удалось загрузить модель.

Необходимо создать архив ZIP всех ресурсов модели, таких как текстуры, и убедиться, что входной файл не имеет вложенных директорий. Сервер будет распаковывать загруженный ZIP-архив в директорию ./build/public/Upload/Model и добавит запись в таблицу MongoDB _Mesh.

  1. Как объединить несколько моделей?

Базовые геометрические объекты поддерживают многократное вложение. Можно создать группу (в меню геометрии) и переместить несколько моделей в эту группу на дереве сцены.

  1. Как включить систему управления доступом?

Отредактируйте файл config.toml, установите значение authority.enabled равным true. По умолчанию имя пользователя администратора — admin, пароль — 123456.

  1. Проблема с сообщением "asm.js был отключен, поскольку соединено сценарное отладочное устройство".

Полностью: asm.js был отключен, поскольку соединено сценарное отладочное устройство. Отсоедините отладочное устройство, чтобы включить asm.js. ammo.js (1,1) SCRIPT1028: SCRIPT1028: Ожидается идентификатор, строка или число ShadowEditor.js (3948,8) SCRIPT5009: 'Shadow' не определён. Решение: Браузер Tencent не поддерживает использование Emscripten для компиляции ammo.js (WebAssembly). Рекомендуется использовать Google Chrome или Firefox.

  1. Как обновиться с версии C# до версии Golang?

Структура данных и клиентская часть остались без изменений. Вам потребуется скопировать папку ./ShadowEditor.Web/Upload/ в build/public/Upload/.

  1. Версия для рабочего стола не открывается.

Описание: Windows требует Visual C++ Redistributable for Visual Studio 2015. Вы можете скачать его здесь: https://www.microsoft.com/en-us/download/details.aspx?id=48145 Описание: Если версия для рабочего стола не открывается, проверьте файл logs.txt; если порты заняты, измените порты MongoDB и сайта в файле resources/app/config.toml.

  1. Как создать сертификат HTTPS?

Установите openssl, который уже входит в git-клиент. Откройте командную строку, PowerShell или shell и выполните следующие команды:

openssl genrsa -out privatekey.pem 1024
openssl req -new -key privatekey.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

В результате будут созданы два файла: certificate.pem — сертификат, privatekey.pem — ключ.

Открытые проекты

Развернуть для подробностей

Спасибо за использование следующих открытых проектов.

https://github.com/golang/go
https://github.com/BurntSushi/toml
https://github.com/dgrijalva/jwt-go
https://github.com/dimfeld/httptreemux
https://github.com/inconshreveable/mousetrap
https://github.com/json-iterator/go
https://github.com/mozillazg/go-pinyin
https://github.com/otiai10/copy
https://github.com/sirupsen/logrus
https://github.com/spf13/cobra
https://github.com/spf13/viper
https://github.com/urfave/negroni
https://go.mongodb.org/mongo-driver

https://github.com/facebook/react
https://github.com/mrdoob/three.js
https://github.com/rollup/rollup
https://github.com/babel/babel
https://github.com/eslint/eslint
https://github.com/rollup/rollup-plugin-babel
https://github.com/rollup/rollup-plugin-commonjs
https://github.com/rollup/rollup-plugin-json
https://github.com/rollup/rollup-plugin-node-resolve
https://github.com/egoist/rollup-plugin-postcss
https://github.com/rollup/rollup-plugin-replace
https://github.com/mjeanroy/rollup-plugin-strip-banner
https://github.com/andyearnshaw/rollup-plugin-bundle-worker

https://github.com/tweenjs/tween.js
https://github.com/JedWatson/classnames
https://github.com/d3/d3-dispatch
https://github.com/i18next/i18next
https://github.com/js-cookie/js-cookie
https://github.com/facebook/prop-types
https://github.com/codemirror/CodeMirror
https://github.com/jquery/esprima
https://github.com/tschw/glslprep.js
https://github.com/zaach/jsonlint
https://github.com/acornjs/acorn
https://github.com/kripken/ammo.js
https://github.com/dataarts/dat.gui
https://github.com/toji/gl-matrix
https://github.com/squarefeet/ShaderParticleEngine
https://github.com/mrdoob/stats.js
https://github.com/mrdoob/texgen.js
https://github.com/yomotsu/VolumetricFire
https://github.com/jonbretman/amd-to-as6
https://github.com/chandlerprall/ThreeCSG

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ShadowEditor-ShadowEditor.git
git@api.gitlife.ru:oschina-mirror/ShadowEditor-ShadowEditor.git
oschina-mirror
ShadowEditor-ShadowEditor
ShadowEditor-ShadowEditor
master