由于技术选择qt的跨平台应用,为了能够快速实现,选择了入门门槛低的qml,使用webkit内核去实现相应的功能,并借助对threejs的支持去完成三维场景构建,结果走进了一个无尽的坑。
threejs在h5的领域能够支持非常多的效果,比如点云,鼠标控制等等,尤其是example中有大量的扩展与应用,是非常值得推荐的三维引擎。然而,集成到qml中就是无尽的伤悲。
- threejs在qml中是被阉割版本的
- 针对渲染器进行大量的调整,保留的renderer仅针对qt进行一对一匹配,不能支持多种特效,例如多相机,多视角,场景分割等等
- 针对模型加载进行了大刀阔斧的修改,目前仅良好的支持json格式
- qml对资源加载进行了严格控制,threejs中有包含了数万行的代码量,加载显得缓慢,如果对支持多个文件加载,那么加载就更慢了。这样资源的加载限制了threejs的example效果的支持变得很鸡肋。
分享一个qml+threejs 的git地址https://github.com/tronlec/three.js/