Skip to main content

概况

Meta3D提供了多种UI Control来可视化地搭建Web3D编辑器

整个编辑器的逻辑封装在一个名为editor-whole的Package(包)中,您可以在逻辑代码中调用该Package的API。
这个Package包括编辑器的逻辑和3D的逻辑,其中3D的逻辑主要包括场景和渲染两部分,下面分别介绍:

  • 场景
    场景由多个GameObject组成。一个GameObject即是一个物体,对应threejs中的Mesh的概念。不同之处是使用了组件架构,即GameObject由多个组件组成,其中组件包括Transform、Geometry、PBRMaterial等
  • 渲染
    渲染是通过封装three.js引擎的渲染模块来实现。具体的封装主要是实现了场景数据和three.js的数据之间的转换

Package是可以任意定制的,这意味着可以使用任何引擎(或者自定义引擎)来实现渲染。这个定制功能未来会开放。

另外,编辑器使用了事件溯源的架构,每一个操作都发送一个对应的事件,每个事件附带了对应的数据。使用该架构的好处包括:

  • 容易实现Redo-Undo
  • 容易调试
    编辑器运行出错时将会下载一个事件文件;在编辑器中导入它后可复现出错的情景
  • 容易实现多人协作