总结2
1… 项目技术选型要准确,避免很麻烦的坑,评估的时候最好弄个评估报告之类的,来数据分析,不要仅凭经验。
2…给策划用的editor,至少要功能准确,易用,不然很容易返工 耗时间
评估报告
基本公式: s=vt,v=at,s=a*a*t
………….
如果加速度是2的话 那么1米将会插入2000个点
4公里的赛道将会 8百万个点 340 MB 内存 如果加速度是5的话 1米将会插入 780个点
4KM赛道 3百万个点 消耗 155MB 内存
如果加速度是5的话 1米将会插入 780个点
4KM赛道 3百万个点 消耗 155MB 内存
——以下是优化方案
如果起点速度是36 km/h的话 最小单位是1米7个点,
内存消耗1.35 MB ,2.8万个点
问题1:如果插入的点数不够多,那么会导致速度变化所带来的位置变化不够准确。速度变化不是平滑曲线,会变成阶梯形状的二次方程, 严重的情况下会抖动得厉害。
问题1的量化分析:最小变化速度 加入是1km/h,一次变化量是0.2777 m/s
每个帧数是0.0044米, 原速度是0.16米没帧数 0.16/0.0044 是原来的36倍,因此插入的点数至少要是36倍 变为 252*4000 100万个点 内存消耗 由1.35变为46MB
结论,优化方案是在起步的时候 速度加到36km/h 才使用bezier ,并且速度变化是1km/h 为单位
4km的路程,每条赛道内存消耗46mb,该方案未考虑计算耗时,因为这个可以在加载场景时初始化
百万级的插值点,float精度带来的误差可能会很大
针对问题1的优化方案2
不对采样点做计算 而是每个采样点中vector线性插值计算 这种情况损失 曲线采样点的精度 采用线性插值,这种优化是针对上面速度变化量的计算 每个采样点之间不用原来的曲线插值,而用线性插值,再次损失 采样的 精度 来换取性能,内存消耗大大减少
具体在下面