three platformize
1.0.22 (2021-05-16)
一個讓THREE 平台化的項目
後續維護將會在platformize繼續
雲圖三維-線上三維CAD設計軟體 | 奧本未來-AR/VR領域先驅 |
微信 | 淘寶 | 位元組 | |
---|---|---|---|
小程式真機 | ✔️ | ✔️ | ✔️ |
小程式模擬器 | ✔️ | ✔️ | |
小遊戲真機 | ✔️ | ||
小遊戲模擬器 | ✔️ |
奧本未來招募前端、WebGL、圖形學演算法,歡迎投履歷
註:運行DEMO 時記得開啟偵錯模式,取消網域驗證,使用最新版本微信開發工具開啟
具體Loader 使用方法的Demo 在這個倉庫下three-platformize-demo
微信小程式DEMO 微信小程式基礎版DEMO 微信小遊戲DEMO | 淘寶小程式DEMO | 位元組小程式DEMO |
---|---|---|
import * as THREE from 'three-platformize' ;
import WechatPlatform from 'three-platformize/src/WechatPlatform' ;
const platform = new WechatPlatform ( canvas ) ; // webgl canvas
platform . enableDeviceOrientation ( 'game' ) ; // 开启DeviceOrientation
THREE . PLATFORM . set ( platform ) ;
// 使用完毕后释放资源
THREE . PLATFORM . dispose ( ) ;
// 正常使用three即可
// DEMO 代码示例见 https://github.com/deepkolos/three-platformize-demo
// 基础的使用DEMO见 https://github.com/deepkolos/three-platformize-demo-wechat-simple
// 生产环境时rollup.config.js里请开启teser压缩, 即plugins末尾增加 terser({ output: { comments: false } })
建置時取代平台相關的api 調用,轉發到PLATFORM 的引用,透過PLATFORM.set 更新
# 拉取源码
> git clone https://github.com/deepkolos/three-platformize
# 安装依赖
> npm i
# 更新到最新的three版本
> npm i -S three@latest
# 或者指定three版本
> npm i -S [email protected]
# 需要把目标three的构建`utils/build/rollup.config.js`同步到本项目的构建`config/rollup.config.three-origin.js`
# 建立软链接
> npm run link
# 构建
> npm run build
# 使用
> npm link
# 到使用的项目目录,并链接
> cd your-project
> npm link three-platformize
# 或者自行发NPM包
# 把自定义Three link 到./three
> npx symlink-dir yourthree ./three
# 不使用软链接直接复制或者git submodule也可以
> cp yourthree ./three
# 复制对应版本three构建配置替换到rollup.config.three-origin.js
> cp yourthree/utils/build/rollup.config.js ./config/rollup.config.three-origin.js
# 构建
> npm run build
可參考src/WechatPlatform
或src/TaobaoPlatform
class CustomPlatform {
getGlobals ( ) {
// 自定义的polyfill
return {
atob ,
Blob ,
window ,
document ,
XMLHttpRequest ,
OffscreenCanvas ,
HTMLCanvasElement ,
createImageBitmap ,
} ;
}
setWebGLExtensions ( ) {
return {
// 可覆盖gl返回值,比如淘宝小程序IOS返回值不为null,但是扩展不可用的bug
EXT_blend_minmax : null ,
} ;
}
dispose ( ) {
// 释放资源
}
}
可透過群組DeepKolos 聯絡我
如果專案對您有幫助或有適配需求,歡迎打賞
感謝各位支持~~
時間 | 大佬 |
---|---|
2021/11/10 | 神神 |
2021/09/27 | 阿不 |
2021/08/10 | 奧本未來 |
2021/07/28 | Noth1ng |
2021/07/09 | 匿名 |
2021/07/07 | 雲圖CAD-劉鑫 |
2021/06/23 | Fong |
2021/06/23 | 劉子棄 |
2021/06/23 | Joson |
2021/06/03 | 仿生伏爾泰 |
2021/04/28 | Noth1ng |