大家好,本文介绍了Wonder的高层需求和本系列对应的具体功能点。

确定Wonder高层需求

业务目标

Wonder是web端3D开发的解决方案,包括引擎、编辑器,致力于打造开放、分享、互助的生态。

范围

  • 引擎Wonder.js WebGL 3D引擎
  • 编辑器Wonder-Editor
  • 工具提供给用户使用的各种工具,如gltf转wdb数据在线转换器等。
  • 增值服务增强用户在Wonder中发布的3D应用的能力,如提供数据统计、支付等。
  • 平台构建3D生态,提供如托管平台、开发资源商城等,用户可上传/下载相关资源。

上下文

  • 开发者开发者是Wonder的直接用户,可以划分为这几类:

    1)美术、策划同学

    2)完全没有编程基础,想快速开发Web 3D应用和游戏的同学(可以从Wonder的商城中下载资源;可以上传资源和3D项目到托管平台)3)程序员同学(可以写脚本、自定义shader、扩展编辑器和引擎之类的)
  • Wonder
  • 分发服务商开发者可在Wonder中发布Web 3D应用/游戏到各个分发平台,如微信小游戏等。
  • 终端用户终端用户直接在浏览器上消费开发者在Wonder中发布的Web 3D应用/游戏。

确定本系列对应的Wonder v1.0版本的功能点

引擎v1.0版本功能点

  • GameObject和Component引擎是ECS架构,场景是由多个GameObject组成,而每个GameObject又由各种Component组成。组件包括Transform、Geometry、Material等。
  • 纹理

    基本的纹理。

  • 光照支持方向光、点光源。
  • 多线程渲染通过浏览器的Shared ArrayBuffer和OffscreenCanvas,引擎支持开两个线程:主线程+渲染线程。
  • Scene Graph使用自定义的.wdb格式保存场景数据支持导入/导出.wdb
  • 流载入支持使用流载入来载入.wdb,让用户首次载入更顺滑。具体是指:用户会看到边载入边显示场景的效果。
  • IMGUI可以用代码调用API,来绘制UI。
  • 事件绑定和封装了事件,统一了pc端和移动端的事件。

编辑器v1.0版本功能点

  • GameObject和Component可直接操作GameObject和Component,如添加、删除、修改等。
  • 场景管理可通过场景树的形式看到该场景的所有GameObject可进行添加、删除、修改等操作
  • 撤销/重做
  • 输出可在控制台输出日志、错误等信息
  • 运行/停止可直接运行/停止场景
  • 快捷键可使用快捷键
  • 资产Asset可操作Material、纹理、模型等资产
  • Gizmo

    可通过Transform Gizmo,设置GameObject->Transform组件的位移、旋转、缩放等属性

    在编辑视图scene view中显示相机、光等小图标
  • 导入/导出可导入/导出场景、模型
  • 发布本地包可将做好的场景,发布为本地压缩包,然后自己部署到伺服器上,供终端用户使用
  • PWA使用了Chrome的PWA技术,支持离线访问编辑器等

欢迎浏览上一篇博文:用函数式编程,从0开发3D引擎和编辑器(二):函数式编程准备


推荐阅读:
相关文章