This milestone pM-OASIS team – Child fish

This milestone focused on the animation system redesign, providing new Animator components and support for BlendShape animation, which greatly improved animation capabilities. The PBR material interface has been redesigned for rendering, the diffuse part of ambient light provides spherical harmonic mode, and the PBR workflow has been improved. On the 2D side, Sprite atlas features are added, Spine has enhanced skin changing capabilities, and Lottie animations are integrated into the editor. The official website supports both Chinese and English, and 20+ examples are added.

1, animation,

1.1 Animtor animations are essential to the engine’s core system, which can bring otherwise static scenes to life. With the increasing demand for animation related functions, and considering the healthy development of the future engine animation system, we redesigned the animation system, which has brought varying degrees of improvement in functions, ease of use and performance, and laid a foundation for the expansion of the animation system in the future. The main upgrade points are as follows (see the documentation) :

  • Animation transition: animation transition can be carried out without the strict bone matching between the target animation and the original animation, which can greatly reduce the workload of designers.
  • Animation overlay: Changed to overlay according to the blend mode and weight of the animation layer and support multi-layer animation overlay, you can easily overlay multiple actions instead of just two.
  • Animation state machine ability: You can use the animation state machine to manage the animation of your project. The state to state switching will automatically add transitions for you.
  • Animation state cropping: You can crop an existing animation slice to reuse without requiring the designer to redo it.
  • Animation events: changed to scripted driver mode, more flexible and simple to use.

The new animation system has improved performance by about 30% :

The old animation system

The new animation system test environment: models: Mi 11 Pro | browser: Chrome 92.0.4515.131 | system version: Android11 besides engine function, the editor has increased the animation editing skills. Using the Animator editor, you can easily add transitions and superpositions to animations.

1.2, BlendShape

BlendShape (MorphTarget) animation is a common animation expression form, especially widely used in fine animation, such as character facial expression animation. We provideModelMeshA newBlendShapeAbility. In addition we also support glTF model BlendShape animation parsing import, and with the new versionAnimatorThe system is deeply integrated, just like skin animation, developers load glTF with BlendShape animation and just callAnimatorAnimated componentplay()The interface can be played and used without any additional operations. As shown in theThe document.

2, apply colours to a drawing

2.1 IBL ball harmonic

In the PBR workflow, we can set diffuse and specular reflection of ambient light to achieve IBL (image-based lighting). Unlike specular reflection, diffuse reflection results in a low-frequency signal that looks like a Gaussian blur because of the large reflected lobe. In the previous version, we switched diffuseMode to solid color mode or texture mode by setting diffuseMode of ambient light. That is to say, we needed to upload a cube texture (6 stickers) to achieve diffuse low frequency signal, and occupied a valuable texture unit of shader. This time we used the 3rd order spherical harmonic function, namely 9 color values in different directions, 27 numbers (9*3 RGB) instead of the cube texture mode, which not only frees up a shader texture unit, but also brings better results. See documentation for details. (See below for baking tools)

2.2. PBR Interface Reconstruction

In the previous PBR material interface design, we compromised too many business-derived interfaces, such as transparency maps, which could have been incorporated into the transparent channel of the base texture instead of implementation. The unpure interface would not only confuse developers, but also reduce performance. Therefore, after full consideration of rationality and future expansibility, we made a reasonable BreakingChange adjustment for PBR material interface. See PR discussion for interface changes. 2.3 background texture mode

The background of the scene supports the setting of texture mode. You can use a picture as the background of the scene. See documentation for details.

3, 2 d

3.1, SpriteAtlas

SpriteAtlas is a common optimization tool for 2D projects. It can greatly improve rendering performance with fewer draws, fewer video memory usage, and fewer resource requests. In Oasis we have introduced the SpriteAtlas class to increase this capability. All you need to do is load an atlas resource to get an instance of SpriteAtlas, and then get the Sprite based on the Sprite name. See documentation for details. In order to help developers use SpriteAtlas more conveniently, Oasis provides the Atlas packaging Tool-Atlas Tool for developers, which can quickly export the.atlas files required by SpriteAtlas locally. In addition, tool-atals has been integrated into the editor, and the developer can automatically complete the packaging by selecting the Sprite to be packaged, as follows:

4. Physical systems

In roadmap for this year, Oasis prioritizes the development of physics-related features. This milestone improves the way physical trigger events are used, scripting them to use Script callbacks like other logical events, and adding corresponding interfaces in Script (see documentation) :

The Raycast () interface has also been redesigned. PhysicsManager is added to adjust the Raycast () interface from the scenario to PhysicsManager, which facilitates access to more physical functions in the future. See the Raycast documentation, collision-Detection documentation. After weighing performance and functions, Oasis will choose PhysX as the core part of the underlying physics in the future. This milestone is the release of emscripten-compiled physx.js repository, which provides very convenient compilation scripts and the corresponding NVIDIA PhysX Visual Debugger configuration. The repository is separate from the Oasis engine, and interested friends and peers are welcome to contribute and submit issues.

5, ecological

5.1 The Spine component

Oasis Spine optimized the processing of buffer data at the 0.5 milestone, on the one hand optimizing memory, and on the other hand solving the rendering problem caused by the expansion of the total number of vertices. See documentation for details. After optimization, the new runtime supports spine with the following reload capabilities:

1. Full set of skin replacement:

2. Replace single accessories

3. Skin mixing

Added addSeparateSlot and hackSeparateSlotTexture apis. The ability to split the named slot from the animation and replace its material to achieve a skin mash-up effect.

5.2 Lottie Components

The Lottie Runtime was completely refactored to take into account the integration with the engine’s underlying 2D capabilities such as Atlas and masks. The command line tool tool-atlas-Lottie is provided to help users convert native Lottie JSON documents into files that conform to the Oasis Atlas standard. See documentation for details. In addition, Lottie assets and components can be added to the editor, and file format transformations can be implemented through cloud-based transformation capabilities instead of command-line tools. See documentation for details.

6. Other functions

  • Engine: BlinnPhong material supports vertex color;
  • Engine: Color increase common methods;
  • Editor: new texture one key generation Sprite resources, and custom binding texture;
  • Editor: Integrated Atlas packaging tool Atlas;
  • Editor: added project upgrade engine version function;
  • Editor: Style revision and interaction optimization.

7. Other updates

7.1 The document has been comprehensively integrated and optimized:

  • Added the first game, Sprite atlas and other engine documents;
  • 29 new editor documents;
  • Optimized 33 documents;
  • The website supports both Chinese and English.

7.2 24 New Examples:

7.3 overall single-test coverage increased from 45% of version 0.4 to 49% :

  • Perfect mathematical library single test.
  • Add material single test.

7.4 details of R&D:

  • Milestone 0.5: github.com/oasis-engin…
  • Change Log:github.com/oasis-engin…

8. 0.6 Milestone notice

8.1 IBL baking

IBL baking (specular reflection maps and diffuse spherical harmonics at various MIPMAP levels) is now done by developers using industry tools such as IBL Baker. Due to complex concepts and fragmented workflow, many developers do not take full advantage of IBL technology. Making Oasis’s PBR effect not so advantageous. So in the next 0.6 milestone, Oasis will launch its own IBL offline baking tool, integrated into the editor and official website, enabling developers to quickly access PBR workflows. 8.2, physical

Oasis will integrate PhysX and redesign physics-related functions. In addition to refactoring existing Colliders, Oasis will add CapsuleCollider, provide raycast methods based on PhysX optimization, and add RigidBody components. \

9. Write at the end

Welcome to star our Github warehouse. You can also pay attention to our subsequent V0.6 planning at any time, and give us your needs and questions in issues. Developers can join our Group to make fun of us and discuss some of the issues, search 31360432

You are also welcome to follow our wechat official account to get relevant information about Oasis as soon as possible:

Whether you’re in rendering, TA, Web front-end or gaming, if you’re looking for an oasis like us, please send your resume to [email protected]. Job description: www.yuque.com/oasis-engin… .