Skip to content

几何体(模型) Geometry

用来表示物体的形状, 可以定义物体的大小, 可以被缩放、旋转和平移等

Geometry属性主要可以分为两类:

  1. 表示几何体的坐标、颜色、面等基础信息
  2. 存储变形(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:

报名课程后可查看完整文档

报名课程后可查看完整文档

Released under the CC BY-SA License.