Galacean Logo
English
English
Galacean Engine v1.1 Release

Galacean Engine v1.1 Release

Bo Kou
September 23, 20237 min read

This is an important release. In addition to numerous engine feature updates, the accompanying Web editor is also released. With the accompanying editor, Galacean will greatly enhance the development experience and efficiency of 2D and 3D interactive projects. Welcome to visit our official website homepage (galacean.antgroup.com) to apply for the internal test and experience the convenience brought by the editor! From now on, our milestone releases will also focus on content from an overall product perspective. Of course, if you have existing Pro Code old projects that you want to upgrade to the new version of the engine, we still provide a standalone runtime.

Here are the key updates of this milestone:

  • The scene adds asset files, multi-scene rendering, and ambient light baking functions, enhancing functionality and ease of use.
  • Textures add KTX2 GPU texture compression, significantly reducing video memory usage; add dynamic mode, greatly improving video playback performance.
  • In terms of animation effects, the long-awaited GPU particle renderer has been added, initially filling the gap in animation effects.
  • Shader adds ShaderLab language, making it easier to write custom shaders.
  • The editor adds panel management functions, with local interface positions updated, making it more concise and easy to use.

Scene

New Scene Assets

Like other assets in the editor, users can easily create, delete, and export scene assets. This makes it possible to edit multiple scenes and reuse the same assets in multiple scenes within the same project, helping users effectively improve scene editing efficiency.

2023-09-19 21.34.20.gif

Ambient Light Baking Enhancement

We have redesigned the mode of baking ambient light. Compared with the previous method of baking when uploading HDR maps, the editor now supports baking based on the scene and has built-in atmospheric scattering as the default scene background and ambient light. Through the scene panel, users can choose skybox, atmospheric scattering, solid color, HDR map as the source of baking. At the same time, users can also flexibly generate the required baking effects by setting parameters such as rotation, exposure, baking resolution, greatly enhancing usability and functionality.

2023-09-21 15.35.35.gif

Multi-Scene Simultaneous Rendering

SceneManager adds the ability to render multiple scenes simultaneously. Now you can call the addScene and removeScene methods to manage multiple scenes, and the scenes property is the current scene rendering queue. Additionally, the physics function is also adjusted to be per scene, and each scene can control the global physics function of the scene through the physics property.

Texture

New KTX2 Compressed Texture Format

Supports KTX2 compressed texture format, glTF supports KHR_texture_basisu extension, reducing texture memory usage. On the editor side, you only need to enable the KTX2 option when packaging the project.

image.png

New Dynamic Mode, Improved Video Performance

Textures add dynamic mode, greatly improving performance for scenarios where texture content changes frequently. For example, for video playback needs, it is recommended to enable dynamic mode. The FPS is greatly improved before (left) and after (right) optimization, with some models improving by about 5 times:

最终版.gif

Particles

The particle renderer has been rewritten. As an important component of dynamic effects, particles can significantly enhance the overall rendering atmosphere of a project. The rewritten particle renderer not only supports more initial generation parameters but also adds various lifecycle-related parameters, making it more artist-friendly in terms of both functionality and rendering. For more details, see the documentation.

Currently, particle editing is not supported in the editor. It will be introduced in a minor version update after 1.1. Stay tuned!

37b86c67c39ad08bc82e6a25060b093d.gif

ShaderLab

Galacean introduces a brand new Shader language - ShaderLab. It offers many conveniences for writing Shaders. For example, developers can now specify vertex and fragment shaders in the same Shader file, as well as specify the rendering pipeline, set rendering states, etc. Compared to previous versions, ShaderLab makes writing custom Shaders much more convenient. For more details, see the documentation.

We are actively developing a VSCode plugin specifically designed for ShaderLab, which will provide syntax highlighting and linting services for ShaderLab. Stay tuned!

ShaderLab Syntax Example:

Shader "ShaderName" {
  // 声明 uniform 变量
  mat4 renderer_ModelMat; 
  ...
  
  SubShader "SubShaderName" {
    // 定义 Pass
    Pass "PassName" {
    	// 设置渲染状态
      BlendState blendState {
        SourceColorBlendFactor = BlendFactor.SourceAlpha;
        ...
      }
      BlendState = blendState;
      
      
      // 指定渲染队列
      RenderQueueType = RenderQueueType.Transparent;
      
      // 设置顶点和片元着色器
      VertexShader = vert;
      FragmentShader = frag;
      v2f vert(a2v input) {
        ...
      }
      void frag(v2f input) {
        ...
      }
    }
  }
}

Editor Panel Management

The new panel management provides more flexibility and customization options, allowing you to freely adjust the position and size of windows according to your preferences and workflow. This better adapts to your screen layout and work needs. With simple drag-and-drop operations, you can easily rearrange various panels in the editor ── whether it's the node tree panel, asset panel, or inspector panel.

la.gif

Others

Script Parameter Configuration

Script parameters are another important new feature. This greatly enhances the flexibility and usability of scripts. With this feature, you can expose properties in scripts to the editor interface, allowing you to adjust various properties of the project at runtime. You can directly modify script properties in the interface without delving into the code. This intuitive editing method allows non-professional developers to modify the scene's state without needing to understand the related code. The usage of script parameters is also very simple. First, use the built-in decorator function in the script editor to decorate the corresponding property:

import { Script } from '@galacean/engine';
import { inspectProperty } from "@galacean/editor-decorators";
 
export default class extends Coin {
  // We export this attribute to the Editor
  @inspectProperty('Number', {
    value: 1,
    min: 0,
    max: 10,
    dragStep: 1,
  })
  private rotate = 1;
 
  onUpdate(deltaTime: number) {
    this.entity.transform.rotate(0, this.rotate, 0);
  }
}

Here, a private variable named rotate is configured, and the @inspectProperty decorator is used to define some configurations for this variable in the editor, such as maximum/minimum values, drag step values, etc.; After defining it, save the script, and you can directly see the latest scene state in the preview page:

coin.gif

Return to the editor, click the parse button, and the editor will parse the script and collect the variables defined in the script. Finally, it will generate the corresponding adjustable properties based on the configuration. As shown below, the editor generates the configuration options for the rotate property based on the above script.

image.png

Camera Depth Texture

The camera has a new depth texture feature. After enabling the depth texture, you can access the depth texture in the Shader through the camera_DepthTexture property. Depth textures can be used to implement soft particles and water edge transitions, as well as some simple post-processing effects, enhancing Shader customization capabilities. For more details, see the documentation.

0d67f36a22ffbcd71b4156e3011bb97d.gif

glTF Loading Pipeline Parallel Parsing

The previous serial pipeline had design flaws that prevented simultaneous processing of resources in glTF or glTF plugins. Therefore, the engine has restructured the entire glTF loading pipeline to parallel parsing, significantly reducing loading time. Additionally, the way to extend the glTF pipeline has been adjusted from creating a GLTFPipeline object to using the decorator registerGLTFParse(GLTFParserType.***). See documentation for details.

Sprite Frame Animation

The animation curve editor now supports reference types, allowing keyframe values to be asset types such as (sprites, materials). For example, you can create reference-type animation curves to achieve frame animation functionality.

2023-09-19 15.19.55.gif

Mesh

ModelMesh Supports Creation via Low-Level Data

In addition to the original method of generating ModelMesh through high-level data, ModelMesh has added interfaces such as setVertexElements and setVertexBufferBinding for generating ModelMesh by setting low-level data. Setting data through low-level interfaces allows for more free and efficient manipulation of vertex data, achieving performance improvements and flexible customization. See documentation for details.

SkinnedMeshRenderer Opens Bones

The SkinnedMeshRenderer has opened the Bones property, allowing users to customize and modify the bones of the skinned mesh renderer. Additionally, the issue where the rootBone property of glTF models required one frame to render correctly due to the previous delayed initialization mechanism has been fixed.

Some Minor Updates

  • The asset panel supports batch dragging of resources
  • The view module supports selecting the corresponding entity by clicking the icon, and adds a selection box for 2D elements
  • Supports generating tangents in glTF model meshes
  • Supports removing built-in Punctual Lights in glTF models
  • Adds built-in Camera Shader variables camera_Forward and camera_Up
  • The deep clone decorator deepClone for components supports recursive cloning
  • The math library adds Rand pseudo-random numbers
  • GraphicsResource supports the isContentLost property to determine if the content of rendering resources has been lost
  • ResourceManager supports the findResourcesByType method, which can get a list of all resources by type

Preview

Milestone 1.2 will open for public beta, allowing all developers to use the Galacean editor to enhance the development experience and efficiency of interactive projects. Additionally, Galacean's XR system will also be launched in Milestone 1.2. Stay tuned!

2023-09-22 16.31.37.gif
Galacean Logo
Make fantastic web apps with the prospective
technologies and tools.
Copyright © 2025 Galacean
All rights reserved.