我有一个粒子生命周期的属性(我正在模拟粒子系统),它是一个浮点值,因为我也将它用于透明度(alpha 是浮点数)。我已经阅读了有关将 float 转换为 double 的问题,并意识到这是一个很大的问题,所以我可能无法将 float 转换为 double。问题是我想尝试从生命变量计算粒子的路径,例如:
particle.x += particle.xi;
particle.xi = Math.Sin(life);
注意:生命值在开始时为 1.0f 并减少到 0(如果它 <0.0f 我重新初始化粒子并将生命设置为 1.0f)。
但是Sin想要双倍的价值……我们又回到了起点。因此,一种解决方案可以将 life 属性的类型更改为 double ,当我将其用于透明度时,我只会将此 double 转换为 float,这应该不是什么大问题(我猜)。
但我的问题是是否有任何其他方法可以做到这一点,导致双倍也消耗更多内存(我不知道在这种情况下更多意味着什么 - 我想更多倍,假设我将有 500 个粒子,每个粒子都会有这个属性)。我只需要以某种方式从这个浮点属性计算 sin 值。
那么有可能吗?我对记忆的担忧重要吗?