three.js 杂记

在Three.js中,Object3D是所有3D对象的基类,而GroupObject3D的一个子类。Group的目的是为了简化处理多个对象的集合。当你将对象添加到Group中时,它们会以一个单元格的形式被处理,参与Group的某些操作,例如位置更新、旋转或缩放。

Object3DGroup之间的主要区别在于:

  1. Object3D是所有3D对象的基类,而Group是从Object3D派生的类,因此Group具有Object3D的所有功能。

  2. Group特别添加了一些便利的功能,如在其子对象上迭代执行某些操作。

____________________________________________________

Bone

Bone是three.js中的一个类,用于模拟人或动物的骨骼关节,控制身体表面变形,生成骨骼动画。Bone的父类是Object3D,因此它继承了Object3D的相关属性或方法,如位置属性position、旋转方法rotateX()、添加方法add()等。Bone通常用于构建一个层级树结构,模拟人或动物的骨骼结构,通过控制关节的运动来实现复杂的动画效果‌12。

Group

Group是three.js中用于组织和管理多个对象的集合。它将多个3D对象组合在一起,以便在场景中进行统一的操作和管理。Group本身不是一个动画对象,但它可以包含多个对象,包括Bone和其他网格模型。通过Group,开发者可以方便地对多个对象进行位置、旋转等操作,而不需要单独对每个对象进行操作‌。

___________________________________________________

Skeleton‌:在Three.js中,Skeleton是一个用于管理骨骼动画的类。它包含一个骨骼数组,每个元素都是一个Bone实例。Skeleton的主要功能是定义和管理一组骨骼,这些骨骼用于驱动模型的动画。它提供了计算绑定矩阵、更新骨骼状态、将骨骼恢复到初始绑定姿势以及将骨骼应用到网格对象上的方法‌1。

Bone‌:Bone是Skeleton的一部分,代表一个具体的骨骼关节。在Three.js中,Bone是一个对象,通常用于连接其他Bone对象,形成骨骼结构。Bone对象可以通过位置、旋转和缩放属性来控制其在三维空间中的行为‌。

________________________________

对象关系:

Bone交叉group>Object3D

skeleton 管理 Bone

onWindowResize() {
  camera.aspect = window.innerWidth / window.innerHeight;
  camera.updateProjectionMatrix();
  renderer.setSize( window.innerWidth, window.innerHeight );
}

向量:

比例缩放...

multiplyScalar 将该向量与所传入的标量s进行相乘。

//变换中心

.lerp ( v : Vector3, alpha : Float )  v - 朝着进行插值的Vector3
alpha - 插值因数,其范围通常在[0, 1]闭区间。

.fromBufferAttribute ( attribute : BufferAttribute, index : Integer ) : this

attribute - 来源的attribute。
index - 在attribute中的索引。

attribute中设置向量的x值、y值和z值。

position.fromBufferAttribute( positionAtoms, i );

//相减

.subVectors ( a : Vector3, b : Vector3 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值