Runtime 接入指南

阅读时间:2分钟更新于 2024-11-11 15:2

使用须知:

  • 暂不提供特效元素的接入

前置条件

请确定引擎中有如下对象:自定义材质缓冲几何体MeshTexture,这四个对象是接入 effects-runtime 中粒子和图层的必要条件。

下面给出在 Three.js 引擎和 Babylon.js 引擎中这些对象的类名作为参考:

  • 自定义材质
    • Three.js: THREE.RawShaderMaterial
    • Babylon.js: Babylon.ShaderMaterial
  • 缓冲几何体
    • Three.js: THREE.BufferGeometry
    • Babylon.js: Babylon.Geometry
  • Mesh
    • Three.js: THREE.Mesh
    • Babylon.js: Babylon.Mesh
  • Texture
    • Three.js: THREE.Texture(包含THREE.DataTextureTHREE.CompressedTextureTHREE.VideoTextureTHREE.FramebufferTexture对象)
    • Babylon.js: Babylon.Texture(包含Babylon.VideoTextureBabylon.DynamicTextureBABYLON.RenderTargetTexture对象)

接入事项

Material 接入注意事项:

不同引擎对于 WebGL 中状态机中状态的定义不同,需要有工具方法来实现 effects-runtime 和接入引擎间 GL 状态的常量映射表。

Geometry 接入注意事项:

在 effects-runtime 中部分 Attribute 在初始化时没有传入数据,如果引擎在做 GPU 数据创建时对于数据长度为0的做不做 GPU buffer 绑定或 GPU 资源创建,请通过 GeometryProps 中的 maxVertex 参数进行 Attribute 的创建。

Mesh 接入注意事项:

effects-runtime 中的 Mesh 都是在 3D 空间中同一位置放置的,在渲染时为了保证正确的渲染顺序需要正确的设置 priority 值,请确定引擎中有相应的概念。

Texture 接入注意事项:

Material 相同,不同的引擎对于过滤器、纹理环绕方式不同,同样需要工具类进行映射,同时 effects-runtime 存在不同类型的图片,请确认接入引擎中是否有相同概念。

可能使用到的类详解

GPUCapability 类

GPUCapability 类是 effects-runtime 中获取 WebGL 的功能支持情况,包括检测浏览器是否支持 WebGL、是否支持特定的 WebGL 扩展、支持的最大纹理大小、支持的最大绘制缓冲区大小等等。这些信息可以让开发者根据用户的设备和浏览器情况,决定是否需要降低渲染质量或者使用其他工具来兼容低端设备。

  • initialize 方法:GPUCapability 静态实例初始化函数,用来创建对象和获取 WebGL 的功能支持情况
  • getInstance 方法:实例化对象,用于获取 GPUCapability 变量
  • detail 对象:WebGL 的功能支持的具体情况,在很多地方都会用到,比如 AssetManager 的创建、Composition 的初始化等

AssetManager 类

AssetManager 在 effects-runtime 中是一个资源管理器,用于加载和动效中所有的资源文件,包括图片、插件、图层粒子数据等。它可以通过异步加载资源文件,确保动效在启动时不会因为资源加载时间过长而卡顿。

  • loadScene 方法:该方法是将 Galacean Effects 的 json 产物,变成 effects-core 用到的场景对象,并通过该场景对象创建出图层、粒子等元素

ThreeComposition 类

ThreeCompositionComposition 的抽象实现,用于在 Three.js 中衔接 Galacean Effects 数据处理与渲染设置,串联起 Galacean Effects 数据结构到 Three.js 中渲染的任务。Composition 抽象类的相关概念详见 effects-core 中的介绍。

  • initialize 方法:通过传入的参数和 AssetManager 类创建出的场景对象来实现 composition 对象
  • shouldRestart 参数:是否需要重新开始播放合成
Preview