path3D可以实现需求
1 .path3d是从曲线上点的一系列位置向量创建的数学对象。一旦确定,path3d可以用于确定每个点的曲线的切线,发现和副法线相含量的三元组
创建
获取变量
API
properties
1 .path:Vector3数组,Path3D的曲线轴
methods
1 .getBinormalAt:返回沿此路径指定位置处的插值Path3D曲线点的副法线向量。与插值的Path3D曲线点对应的副法线向量,如果未插值,则从预计算副法线数组中获取副法线。
2 .getBinormals:返回在每个Path3D曲线点上填充有副法线向量的数组。
3 .getClosestPositionTo:将此路径上最近的虚拟点的位置返回到任意Vector3,从0.0到1.0
4 .getCurve:返回设计其曲线的连续Vector3的Path3D数组。
5 .getDistanceAt:返回沿此路径在指定位置处插值Path3D曲线点的距离(浮点).这个api有点垃圾好吧
6 .getDistances:返回用第i个点与第一个曲线点之间的距离(浮点)填充的数组。
7 .getNormalAt:返回沿此路径在指定位置处的插值Path3D曲线点的切线向量。
8 .getNormals
9 .getPointAt():返回沿此路径的插值点:0.1就是距离取0.1的在线上的点
10 .getPoints:返回设计其曲线的连续Vector3的Path3D数组。
11 .getPreviousPointIndexAt:返回沿此图形的插值点的上一个点的数组索引
12 .getSubPositionAt:返回插值点相对于其所在的两个路径点的位置,从0.0(点A)到1.0(点B)
13 .getTangentAt:返回沿此路径在指定位置处的插值Path3D曲线点的切线向量。
14 .getTangents:
15 .length:路径的计算长度(浮点)。
16 .slice():返回此路径的子路径(切片)
17 .update:强制Path3D切线、法线、副法线和距离重新计算。
path3d这个确实给力
1 .sin曲线,粒子沿着这个曲线运动
Babylon Template
2 .过山车曲线,三次贝塞尔构成的曲线,并且照相机沿着运动
1 .从这里面可以发现他的动画不是scene那一套,而是构建出动画帧,然后调用动画函数播放的,这样可能性能会比较高,不会掉帧
2 .或者说这样可以方便调整速率
emitter压根就没有position属性.所以动画上去没效果,还是需要在单独给emitter.x,y,z赋值.甚至尝试了transformNode都不行
Babylon Template
进阶版,火车版本尝试
1 .我们要做的是自定义发射器,每一秒都是要重新定义发射器发射粒子的位置
2 .一种就是每一帧用新算出来的粒子位置来重新生成粒子,一种就是每一帧只改位置。
3 .或者更无脑的就是多加几个粒子,都沿着那条线运动,只是我们要差时让他开始。这个想想感觉效果就不怎么样
4 .