Shadow Editor
Supported Languages: 中文 / English / 日本語 / 한국어 / русский / Le français
Click Here to switch to
C#branch.
- Name: Shadow Editor
- Version: v0.5.0 (under development)
- Description: 3D scene editor based on
three.js、golangandmongoDB. - Source Code: [GitHub] (https://github.com/tengge1/ShadowEditor) [Gitee] (https://gitee.com/tengge1/ShadowEditor) | Document: [GitHub] (https://tengge1.github.io/ShadowEditor/) Gitee | Demo: [GitHub] (https://tengge1.github.io/ShadowEditor-examples/) [Gitee] (http://tengge1.gitee.io/shadoweditor-examples/) | Video: Weibo [Bilibili] (https://www.bilibili.com/video/av78428475?from=search&seid=9203731141485399611) | Resources: Baidu Cloud
- Technology Stack:
html,css,javascript,rollup,react.js,webgl,three.js,golang,mongoDB. - If it is helpful to you, please donate to support the development, thank you.
v0.5.0 is coming soon
Compared with asp.net, golang has many advantages:
- Compatible with both
Windows,LinuxandMac. - Compiled language (similar to C language), supporting
goroutine, which can take advantages ofCPUmulti-core and high performance. - Easy to learn. Huge standard libraries and third-party libraries, and high development efficiency.
- Can be compiled into a single executable file, it is essential for users to install
golangnorNodeJs. - No longer need
iis, you can use it by double-clicking, and you can build both desktop and web version. - The returned data is enabled with
gzipcompression, the network data is reduced by more than 10 times, and the speed of displaying and loading scenes is greatly improved. - Development no longer requires the installation of a huge
Visual Studio, no longer requiresWindows, and a simpleVisual Studio Codecan be used to comfortably develop the front and back ends.
Update log:
- Fixed the bug that the
dracomodel could not be loaded due to the upgrade ofthree.js. - Models in
.jsonformat are no longer supported. - Fix the bug that the bottom row of the category list window is blocked by the button.
- Fix the bug that the texture resource cannot be loaded when the texture is attached.
- Fix the bug that the audio resource cannot upload thumbnails.
- Fixed the bug that the thumbnail cannot be replaced in the screenshot.
- Fix the bug that the thumbnail cannot be replaced in the video.
- Fixed the bug that the confirmation dialog could not be cancelled and closed.
- Fixed the bug that the role is deleted and the list is not refreshed.
v0.4.6 Has Updated
- Release date: April 5, 2020
- Update log:
- Fixed the bug that the confirmation dialog of loading auto save scene could not be cancelled, the button of
Cancelwas changed toEmpty. - Fix the error of saving the sample scene report "ID is invalid". Now the sample scene can be saved normally.
- Fix the bug of adding "background music" component as soon as you open the page.
- Fixed the bug that the music file was not exported when the background music component was released.
- Fixed the bug that the video address is incorrect after the scene of
Video Stickeris released. - Fix the bug of obtaining server configuration and unused server address.
- Go language server. (In development)
- Fix the bug that calling
clock.getDeltaandclock.getElapsedTimemultiple times in the script causes abnormal animation. Now these two functions can be called multiple times in the script.
Screenshot
Features
- Based on three.js / WebGL 3D scene online editor, use
MongoDBto save scenes, models, textures, materials, audio, animations, screenshots, video data, and support one-click database backup function. - Built-in objects: group, plane, cube, circle, cylinder, sphere, icosahedron, tire, knot, teapot, wine glass, unscaled text, 3D text, line segment, CatmullRom curve, quadratic Bezier curve, Cubic Bezier curve, elliptic curve, point label, sprite.
- Built-in light sources: ambient light, parallel light, point light source, spotlight, hemispherical light, rectangular light, with point light source helper (halo effect), hemispherical light helper (sky ball), rectangular light helper (screen ).
- Supports importing models and animations in many different 3D formats. Supports
3ds,3mf,amf,assimp(anim),awd,babylon,binary,bvh(anim),collada,ctm,draco,Fbx(anim),gcode,gltf(anim),js(anim),json(anim),kmz,lmesh(anim),md2,mmd(anim),nrrd,obj,pcd,pdb,ply,prwm,sea3d(anim),stl,vrm,vrml,vtk,X31 kinds of 3D file formats, withanimmeans support animation. Multiple 3D files support bothjsonand binary formats. Themmdfile supports bothpmdandpmxformats, and models and camera animations in thevmdformat. It is also the only editor that supportslmesh(lolking website lol model). - Built-in materials: line material, dashed material, basic material, depth material, normal vector material, Lambert material, Feng's material, point cloud material, standard material, physical material, sprite material, shader material, original shader Material.
- Support textures: color texture, transparent texture, bump texture, normal texture, displacement texture, mirror texture, environment texture, lighting texture, occlusion texture, self-illumination texture.
- Support textures: pictures, cube textures, video textures.
- Built-in components: background music, particle emitters, sky, flames, water, smoke, cloth, Berlin terrain components.
- Visually modify the attributes of scenes, cameras and other objects, and provide various components to visually modify the panel.
- Edit js scripts and shader programs online with smart prompts.
- Comes with a player, real-time demo scene dynamic effects, supports full-screen and new window playback, can be directly embedded in the project
iframe. - Support tween animation, skeleton animation, particle animation, mmd animation, lmesh animation (lolking website lol model).
- Support scene, model, texture, material, audio, animation, screenshot, video management, support custom classification, fast search based on Chinese characters and Pinyin.
- Supports 5 controllers: first-angle controller, flight controller, track controller, pointer lock controller, and trackball controller.
- Support lattice effect, color shift effect, afterimage effect, background blur, fast approximate anti-aliasing (FXAA), glitch effect, halftone effect, full-screen anti-aliasing (SSAA), pixel effect, scalable ambient light Occlusion (SAO), multi-sample anti-aliasing (SMAA), screen space ambient occlusion (SSAO), temporal anti-aliasing (TAA).
- Provide history and log functions, support undo and redo.
- Support exporting
gltf,obj,ply,stl,Collada,DRACOscenes and models. - Support
bulletphysics engine. Cubes, circles, cylinders, icosahedrons, wine glasses, planes, spheres, teapots, tires, knots and loaded models all support rigid body components. Support visual setting of collider shape (cube, sphere), mass and inertia. - It has tools for translation, rotation, scaling, drawing points, lines, and decals on the surface of objects, and real-time statistics of the number of objects, vertices, and triangles in the scene.
- Support scene publishing function, which can publish scenes as static resources and deploy to any server.
- Built-in languages of the software:
Chinese,Traditional Chinese,English,日本语,한국어,русский,Le français. - Support hue-rotate, saturation, brightness, Gaussian blur, contrast, grayscale, color invert, sepia filters.
- Support version control, you can open the scene saved at any time.
- Support screenshot tool, video recording tool.
- Built-in authority management: organization management, user management, role management, authority management, system initialization, system reset, registration, login, and password modification.
- Examples: Arkanoids, cameras, particles, table tennis, shaders.
- Comes with font manager and converter tool, which can convert ttf font file to json file, which is convenient for creating 3D text.
- Support setting the selected color and border thickness, mouse highlight color, shadow type, various helper display hidden, filter effect, weather effect.
Development Requirements
These requirements are only required for development and compilation, and the operating environment does not require any software other than MongoDB and browser.
- Windows, Linux, Mac, or any other that supports
golangandnodejs. - Golang 1.14.2+
- NodeJS 14.1+
- gcc 9.3.0+ (you need to install
MinGWon windows and add environment variables to ensure thatgcccan be accessed through the command line). - git 2.25.1+
- MongoDB v3.6.8 +
- VSCode 1.44.2+
- Chrome 81.0+ or Firefox 75.0+
Note: Lower version may also be supported. Please install these development environments before compiling.
Download and compile
- Download the source code.
git clone https://github.com/tengge1/ShadowEditor.git
In China, github is extremely slow, you can use gitee instead.
git clone https://gitee.com/tengge1/ShadowEditor.git
If you need the C# version, you can checkout the C# branch, but it is no longer maintained.
git checkout -b csharp origin / v0.4.6-csharp
- Download and install
VSCodeandGoextension.
It is recommended to install the following extensions, but it is not essential.
Shader languages support for VS Code, C/C++, ESLint, Go, TOML Language Support.
- Chinese users can set
golangandnodejsproxy.
In China, since golang.org is inaccessible, github.com and npmjs.com are extremely slow, it is recommended to set golang and nodejs proxy.
Windows system execute
.\scripts\set_go_proxy.bat
.\scripts\set_npm_proxy.bat
Linux system execute
./scripts/set_go_proxy.sh
./scripts/set_npm_proxy.sh
- Install the development tools for
golang, and helpful for development, such as intelligent.
Windows system execute
.\scripts\install_develop.bat
Linux system execute
./scripts/install_develop.sh
- Install the third-party dependencies.
Windows system execute
.\scripts\install.bat
Linux system execute
./scripts/install.sh
- Compile the source.
Windows system execute
.\scripts\build.bat
Linux system execute
./scripts/build.sh
The distribution is in the build folder. When publishing, just copy this folder.
- Launch the program.
Windows system execute
.\scripts\run.bat
Linux system execute
./scripts/run.sh
Here is the output
2020/05/02 09:57:20 starting shadoweditor server on port: 2020
Then, you can access via browser: http://localhost:2020
Q & A
- Failed when upload models?
You need to compress the model map and other resources into a zip package, and the entry file cannot be nested in a folder. The server will decompress the uploaded zip package and put it in the ./public/Upload/Model file, and add a piece of data in the MongoDB _Mesh collection.
- How to combine multiple models together?
Basic geometry supports multiple levels of nesting. You can add a group (in the geometry menu), and then drag multiple models onto the group on the scene tree.
- How to enable authority system?
Open config.toml and set authority.enabled to true. The default administrator username is admin and the password is 123456.
- The front-end report
asm.js has been disabled because the script debugger is connected. Please disconnect the debugger to enable asm.js.Error.
Complete error: asm.js has been disabled because the script debugger is connected. Please disconnect the debugger to enable asm.js. ammo.js (1,1) SCRIPT1028: SCRIPT1028: Expected identifier, string or number ShadowEditor.js (3948,8) SCRIPT5009: 'Shadow' is not defined.
Solution: Tencent browser does not support ammo.js (WebAssembly) compiled with Emscripten, it is recommended to use Chrome or Firebox instead.
Related Links
- Three.js official website: https://threejs.org/
- LOL model viewer: https://github.com/tengge1/lol-model-viewer
- Model download1: https://sketchfab.com/3d-models?features=downloadable
- Model download2: https://www.3dpunk.com/work/index.html?category=downloadable
