几何体(模型) Geometry
用来表示物体的形状, 可以定义物体的大小, 可以被缩放、旋转和平移等
Geometry属性主要可以分为两类:
- 表示几何体的坐标、颜色、面等基础信息
- 存储变形(morph)与皮肤(skin)的相关数据,用于动画等操作
1. 内置几何体
- 二维几何体
- 三维几何体
- 路径合成几何体
- 线性几何体
2. 创建几何体
Demo3-0 简单的平面几何体
报名课程后可查看完整文档
创建立方体
Demo3-1
报名课程后可查看完整文档
BufferGeometry
Demo3-3
报名课程后可查看完整文档
BufferGeometry 是内置几何体的基类, 所有继承自该类的几何体都具有 translate(), rotateX(), scaleX(), normalize() 等方法
合并多个几何体
使用 examples/jsm/utils/BuffyGeometryUtils.mergeBuffyGeometries
报名课程后可查看完整文档
group.add(...); 向这个组对象中添加对象, 对这个组对象应用变换会同时操作到里面的子对象
创建球体
Demo3-5
报名课程后可查看完整文档
注意: 在Geometry实例化之后,对该属性的任何修改都不会改变这个几何体。只能重新生成再替换
sphere.geometry.dispose(); 销毁内存对象, 释放内存占用
透明度设置
Demo3-6
报名课程后可查看完整文档
注意: 开启 transparent 为 true后 opacity 才会生效
3. 动画库
以gsap为例
Demo3-7
报名课程后可查看完整文档
换成立方体
Demo3-8
报名课程后可查看完整文档
注意: 旋转单位是弧度
缩放
Demo3-9
报名课程后可查看完整文档
注意: 这里改变的是 Mesh 对象的属性, 不是直接修改 Geometry, 与## Demo3-5有本质区别
移动
Demo3-10
报名课程后可查看完整文档
两种移动方式也有本质区别, mesh.position 是整体移动, mesh.geometry.translate 是进行相对移动, 而且是"累加", 但整个过程物体位置不会发生变化, 通常建议使用 mesh.position
4. 合并几何体
方案1:
报名课程后可查看完整文档
方案2:
报名课程后可查看完整文档
报名课程后可查看完整文档