Galacean Logo
English
English
Galacean Engine v0.9 Release

Galacean Engine v0.9 Release

Bo Kou
November 08, 20226 min read

Galacean Engine v0.9 officially released.

Engine in terms of rendering, shadow supports CSSM, which can support medium and large scene rendering, bringing better performance and rendering effects. Text has added custom font loading. Shader supports multi-pass, making it easier to write multi-pass effects. In terms of animation, Animator supports arbitrary target property animation, further enhancing animation management and driving capabilities. Input supports multi-pointer event callbacks, making it easier to write multi-touch logic. Additionally, features such as sky, mesh, and asset loading have been strengthened to varying degrees.

Engine Toolkit **adds Navigation Gizmo to efficiently control camera movement, Infinity Grid material to draw infinitely large grid planes, Sketch Geometry to draw model wireframes, normals, tangents, and bitangents. Auxiliary Lines supports rendering bounding box auxiliary line drawing, and the original Gizmo and Control components have been refactored.

Engine

Shadow Update

The original shadow system of the engine has been completely redesigned and adjusted to Cascaded Stable Shadow Map (CSSM) stable cascaded shadows, greatly improving the shadow rendering quality and performance of medium and large scenes, and providing multiple quality configurations for developers to make targeted downgrades. At the same time, this shadow system will automatically select the best system implementation based on WebGL2 or WebGL1.

Left: Four-level cascaded shadow, Right: Non-cascaded shadow

For scenes pursuing physical realism, combining PBR materials and physical simulation can achieve very realistic interactive effects:

Nov-04-2022 08-36-07.gif

However, in the above scenes, if the material is transparent, it cannot receive any shadows. Sometimes you may want to add a transparent shadow receiver, such as embedding a real-time rendered model in an AR scene. In this case, you can reuse the refactored shadow shader module to achieve custom shadow rendering. As shown in the figure below, the background image is obtained by offline rendering, and a transparent plane is added to receive shadows, making the real-time rendered object better integrated into the scene:

Oct-31-2022 13-47-49.gif

Text Update

The Font font has added support for custom font formats such as ttf, otf, and woff. By using custom fonts, you can smooth out the display differences of system fonts on different platforms and provide cooler and richer text styles for the project.

image.png

Shader Update

Shader now supports multiple passes, allowing a single Shader to contain multiple shading passes. This makes it easier for developers to write multi-pass shader effects without needing to add extra Renderer, focusing more on the creation of the Shader itself. More capabilities will be added in the future to help developers improve their Shader creation efficiency.

Mesh Update

ModelMesh has added the calculateTangents method. For models without tangent data, this method can be used to calculate tangent information, thus supporting the use of the TBN matrix to calculate normal directions in shaders. All built-in PrimitiveMesh in the engine now include tangent data. Additionally, the issue of losing w data when uploading line data has been fixed, allowing shaders to correctly calculate the value of the binormal.

Sky Update

The rendering logic related to the sky has been reorganized, fixing the issue of skybox rendering under orthographic cameras. It also avoids the problem of the skybox being culled on some devices due to calculation precision. Additionally, users can now write sky shaders more naturally without needing any special handling in the shader.

Animation Update

Animator now supports custom AnimationClip target properties. Previously, only built-in animations in glTF models, such as skinning animations and blend shape animations, could be used. Now, you can customize the animation of any component property through AnimationClip, such as the position of lights, material colors, camera positions, and angles. The management and driving capabilities of Animator have also been generalized from being customized.

customAnimationClip.gif

SkinnedMeshRenderer has added localBounds and rootBone properties, providing developers with a more precise mechanism for updating the bounding box of skinned models. When the default bounding box is not sufficient, the local bounding box and its following root bone can be manually adjusted.

198267094-5431deee-5e3d-4f55-990c-16477b498523.gif
198264197-f06817d3-287a-4199-9586-5bb292500d52.gif

Physics Update

The Collidershape in physics now supports setting rotation properties, allowing for more flexible combinations of basic geometric colliders to construct composite collision boxes. For example, the following case of a ring collider composed of capsules:

利用胶囊体复合环状碰撞器

Interaction Update

After the update, each Pointer maintains independent logic and handles its own touch events separately. Additionally, the Pointer that triggered the action can be directly obtained in the callback function of the Pointer, allowing for simpler logic to achieve multi-touch capabilities.

merge.gif

Other Updates

  • Loader loading Texture supports format and mipmap configuration parameters.
  • Loader loading glTF supports the keepMeshData configuration parameter, which can retain CPU model data.
  • Entity has added the siblingIndex property, allowing for quick adjustment and retrieval of its position in the parent entity's child queue.
  • Texture has added the depthCompareFunction property, which can set its sampling comparison mode when the texture is a depth texture, typically used for shadow effects like ShadowMap.
  • ShaderData has added getProperties and getPropertyValue methods, allowing developers to obtain all set shader properties and values.
  • glTF parsing has added sub-asset mode.
  • glTF parsing has added texture filtering mode.
  • Animator has added default animation configuration.

Toolkit

Transform Gizmo

Gizmo has been completely refactored, and the API for developers has been optimized for more responsive operations. The overall style has been adjusted for easier selection. New anchor point options (center/pivot) and coordinate system options (world/local) have been added, supporting the selection of multiple entities simultaneously. Additionally, a composite mode has been added, integrating translation, rotation, and dragging.

gizmoooo.gif

Unlike Gizmo, the new Navigation gizmo allows for more convenient camera dispatching in visual, keyboard-free operation scenarios. It provides a function to switch between three views, allowing the scene camera to move around a specific point with a simple drag. It also synchronizes the scene camera's orientation in space in real-time, making it easier for users to observe.

navigationGizmo.gif

Infinite Grid Material

This material renders an infinitely large grid directly in screen space and supports grids in both 2D space (x-y plane) and 3D space (x-z plane). It allows switching between the two types of grids.

Oct-31-2022 14-13-14.gif

Wireframe Rendering Mode and Normal, Tangent, Bitangent Rendering

Since WebGL does not have a geometry shader, rendering auxiliary views such as mesh wireframes, normals, tangents, and bitangents is challenging. Users often need to visualize this model data to check the accuracy of model assets and shaders. Version 0.9 of the Toolkit adds rendering of this data and supports GPU skinning animation and GPU vertex animation in the engine. The implementation is based on converting the entire Mesh into a texture, allowing the shader to easily obtain the global data of the model, thus converting the vertex shader into a general GPGPU computing unit.

Oct-31-2022 14-23-48.gif

How to Contact Us

Galacean Engine Open Source Community Group (DingTalk):

JPG.png

Galacean Engine Open Source Community Group (WeChat):

image.png

If the WeChat QR code is invalid, you can add the group admin on WeChat: zengxinxin2010

Galacean Logo
Make fantastic web apps with the prospective
technologies and tools.
Copyright © 2025 Galacean
All rights reserved.