体验地址
(点进去之后刷新一下,有点小bug,模拟调api)
介绍
一个简单的3D渲染编辑器,主要为了学习threejs用法,但是threejs使用比较麻烦,于是用了react-three-fiber插件
1、重新手写递归树
为什么要重新写?
希望 点击 树结构 节点 的时候,能够 直接 选中 模型引用对象,于是 直接 使用了 模型的object,但是这个object的key不太好改,没法直接套用ant组件,只能重写组件。
一个模型由很多部分组成,树结构 展示 模型嵌套结构,但是 不希望 选择细节部分,于是重写了树结构组件,使用deep字段控制层数,限制点击只能选中第一层
树结构,第1层,deep为1
树结构,开始递归,deep+1
点击事件,判断deep是否为1
2、编辑器界面
经典左中右结构,左边是 模型结构 和 资源
资源
内置模型:提前写好的
用户上传模型:支持2种方式,1、本地渲染,2、上传到服务器后,拉取服务器资源,目前没有写接口
灯光模型:提前写好的
右侧属性
场景
操作面板,场景属性,相机属性
模型
模型属性:位置,缩放,旋转这些
模型动画:内置动画
3、hook写法
主要分为,模型操作方法和模型组件
模型操作hook
模型组件
帧操作使用 useFrame,这个hook是react-three-fiber内置的,用来执行动画函数