Skip to content

工作原理

介绍中提到了本项目由三部分组成,这里一一介绍其作用。

通用兼容层

@minisheep/mini-program-polyfill-core 及其子包。用于补充小程序执行环境缺失的,但又在 three 中使用到的 Web API,例如:EventTarget / XMLHttpRequest / Fetch / TextDecoder / TextEncoder / URL 等。 这个包不仅仅只能用于本项目,你可以用于任何你需要的地方。

平台兼容层

@minisheep/three-platform-adapter 和对应的平台插件如 @minisheep/three-platform-adapter/wechat。主要用于补充小程序执行环境缺失的 window API 和 DOM 对象,及一些小程序实用的工具方法,事件代理等。

自动化插件

@minisheep/three-platform-adapter/plugin, 它主要进行了以下工作:

  • 添加全局变量前缀:在编译时为 three.js 中使用到的全局变量进行了代理,例如 window.xxxURL.createObjectURL 代理成 THREEGlobals.window.xxxTHREEGlobals.URL. createObjectURL, 方便在不污染全局环境的情况下进行 polyfill
  • 收集你用到的 three/examples/jsm 模块:若其使用了 WorkerWASM,将其替换成适合小程序的版本并将用到的 WorkerWASM 复制到产物目录。