开发历程
开源地址 https://github.com/z2586300277/three-editor
预览查看 https://z2586300277.github.io/three-editor/dist/#/editor
Three.js 案例学习 https://threehub.cn/
保留three.js 原生态, 只是将three.js 内部案例功能做了一个集成,并不对底层库改变,只撰写你业务通用的逻辑。
组件化:类似于二维低代码的组件化,three.js 也可以,例如你通过繁琐操作创建了一个三维物体,你将此方法封装起来,下次使用就不用从头写,只需要一些传参就能生成这个物体,一个组件只需要耗费经历写一次,而这个组件代码并不会与其他代码有过多的交集。
高扩展性 你只是做了项目所需要的业务逻辑封装,内部场景的生命周期流程搭建一定要保留three.js 的相关扩展元素, 如 后期处理系列, 着色器系列等,或者使用者自身去扩展系列。
创造理念, 一定不是直接就从树苗长成参天大树,而是搭建了一个健康的生长体系,让使用者去搭建成一个家园。
易用性 低代码的创造一定是减少开发者的学习成本,如果让开发者 用了之后发现学习成本更高了,那这个低代码不开发也罢,封装成一个npm 包 对于这来说是一个最好的选择, 开发者使用的时候只需要知道传什么参数,然后能生成什么结果就好,完全不需要去了解内部逻辑。
通用性 一定要和以外的斩断联系,例如 vue react, 把思想放到js 上 , 这样你创造的 才会是 轻量,通用, 高效的也会避免一些问题,可以多去看看 node_modules 的每一个依赖都是如何创造的,去获取这种理念。
低代码的开发是非常曲折的,尤其是早期根本没有任何参考作品或者 相关的一些知识博客去引领我们去做,会经历多次的推到再到重头再来,又需要开发者有很高的知识储备,举步维艰。
以下是我的一些的功能分布,希望能对你有一些启发,让你少走一些弯路。
1.组件化, 例如目前比较火的3dMap ,可视为一个功能组件
2. 自带动画 和 环境等功能集成。
3. 用户自定义配置变换动画。
4…用户自定义的各种着色器混合扩展。
5. 天空和环境等通用要素。
6. 自由绘制创建等功能
7. 后期处理等功能 集成和 扩展。