持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
前言
说到3D加载,大部分开发人员都能想到Three.js。他是一个基于webgl原生封装的3D引擎库,常用于网页开发各种3D效果展示。
本文在github上发现一个手机端能加载3D效果的库,实际也是根据three.js来改造适配手机端的,目前已适配了多个平台小程序。如今手机上越来越多的3D效果已经出来,掌握手机端加载3D动态效果对我们的开发很有帮助。
three-platformize 介绍
项目地址
适配情况
微信、淘宝、字节 小程序均已支持。
demo使用
先把项目拉到本地,我在这里拉取的是github.com/deepkolos/t… 这个demo
打开微信小程序工具,选择对应的example打开,打开后点击编译一下,运行结果如下图
看到这个界面说明我们的demo已经打开成功了。
从上面可以看到支持很多种格式的加载,但是可能有一些已经失效额,或者模拟器问题,加载不出来。我选择了一个能加载的,点击就能看到。因为没有截取动图,但实际这个图是可以用手拖动的3D效果的,在onLoad方法里就可以进行加载,通过createSelectorQuery 将3d文件加载到某个dom节点。
onLoad: function () {
wx.createSelectorQuery()
.select('#c')
.node()
.exec((res) => {
const canvas = new THREE.global.registerCanvas(res[0].node)
loadObj(canvas, THREE)
})
},
注意事项
经过测试,小程序是不支持2048以上纹理的图片,即图片尺寸超过2048px。因为很多时候3D格式文件都很大,主要是里面加了很多高清贴图,像素都非常高,这就导致加载不了。
所以虽然说3D效果图能加载到手机上,但实际还是有一些限制的,要选择一个好的3D格式,一般建议GLTF、或者OBJ格式,这2种比较合适。
记得把3D文件放到服务器,从服务器加载,如果是小程序则不建议放本地,也不合适。
页面退出记得调用dispose 方法,释放内存。
总结
3D效果还是需要很多功夫去研究,想要深入一点还得学一下webgl,很多东西,下一篇用uni-app引入这个库,加载我们的3d文件,完成一个小demo。