From 8f16702e641aa085886290cf7d0b2874377ea7d9 Mon Sep 17 00:00:00 2001 From: ulteq Date: Fri, 25 Nov 2016 19:25:03 +0100 Subject: [PATCH] Advanced Ballistics - Performance improvement (#4708) * Up to 16% faster frame times with 200 simultaneously flying projectiles --- ace_advanced_ballistics.dll | Bin 265728 -> 265216 bytes .../AdvancedBallistics.cpp | 47 ++++++------------ 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/ace_advanced_ballistics.dll b/ace_advanced_ballistics.dll index 8b538191eb088ec4fb41f4371cac48ed845d8910..1af3d8ca3ce545c9e92cb5f4f722b76cabe0c4f7 100644 GIT binary patch delta 59452 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 H*C+lz1O4HL delta 60231 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%0Db^c~ojJ0`}IrA0TuHoef5ATl9 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 Vvuohw%ZkQ8U)0R)7JFyR{{hy>pX>kt diff --git a/extensions/advanced_ballistics/AdvancedBallistics.cpp b/extensions/advanced_ballistics/AdvancedBallistics.cpp index c2875bb448..7e4a537678 100644 --- a/extensions/advanced_ballistics/AdvancedBallistics.cpp +++ b/extensions/advanced_ballistics/AdvancedBallistics.cpp @@ -14,6 +14,7 @@ #define ABSOLUTE_ZERO_IN_CELSIUS -273.15f #define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS) #define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS) +#define EARTH_ANGULAR_SPEED 0.00007292f #define UNIVERSAL_GAS_CONSTANT 8.314f #define WATER_VAPOR_MOLAR_MASS 0.018016f #define DRY_AIR_MOLAR_MASS 0.028964f @@ -43,11 +44,7 @@ struct Bullet { double humidity; double overcast; double startTime; - double speed; - double frames; double lastFrame; - double hDeflection; - double spinDrift; double bcDegradation; unsigned randSeed; std::default_random_engine randGenerator; @@ -480,11 +477,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) bulletDatabase[index].overcast = overcast; bulletDatabase[index].startTime = tickTime; bulletDatabase[index].lastFrame = tickTime; - bulletDatabase[index].hDeflection = 0.0; - bulletDatabase[index].spinDrift = 0.0; bulletDatabase[index].bcDegradation = 1.0; - bulletDatabase[index].speed = 0.0; - bulletDatabase[index].frames = 0.0; bulletDatabase[index].randSeed = 0; strncpy_s(output, outputSize, "", _TRUNCATE); @@ -548,8 +541,6 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) double TOF = 0.0; double deltaT = 0.0; double bulletSpeed; - double bulletDir; - double bulletSpeedAvg = 0.0; double trueVelocity[3] = { 0.0, 0.0, 0.0 }; double trueSpeed = 0.0; double temperature = 0.0; @@ -557,7 +548,6 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) double windSpeed = 0.0; double windAttenuation = 1.0; double velocityOffset[3] = { 0.0, 0.0, 0.0 }; - double positionOffset[3] = { 0.0, 0.0, 0.0 }; TOF = tickTime - bulletDatabase[index].startTime; @@ -565,11 +555,6 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) bulletDatabase[index].lastFrame = tickTime; bulletSpeed = sqrt(pow(velocity[0], 2) + pow(velocity[1], 2) + pow(velocity[2], 2)); - bulletDir = atan2(velocity[0], velocity[1]); - - bulletDatabase[index].speed += bulletSpeed; - bulletDatabase[index].frames += 1; - bulletSpeedAvg = (bulletDatabase[index].speed / bulletDatabase[index].frames); windSpeed = sqrt(pow(wind[0], 2) + pow(wind[1], 2) + pow(wind[2], 2)); if (windSpeed > 0.1) { @@ -694,27 +679,23 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) } } - if (bulletSpeedAvg > 0) { - double distanceSqr = pow(bulletDatabase[index].origin[0] - position[0], 2) + pow(bulletDatabase[index].origin[1] - position[1], 2) + pow(bulletDatabase[index].origin[2] - position[2], 2); - double horizontalDeflection = 0.0000729 * distanceSqr * sin(bulletDatabase[index].latitude) / bulletSpeedAvg; - double horizontalDeflectionPartial = horizontalDeflection - bulletDatabase[index].hDeflection; - bulletDatabase[index].hDeflection = horizontalDeflection; - - positionOffset[0] += sin(bulletDir + M_PI / 2) * horizontalDeflectionPartial; - positionOffset[1] += cos(bulletDir + M_PI / 2) * horizontalDeflectionPartial; + if (TOF > 0) { + double bulletDir = atan2(velocity[0], velocity[1]); + double spinAccel = bulletDatabase[index].twistDirection * (0.0482251 * (bulletDatabase[index].stabilityFactor + 1.2)) / pow(TOF, 0.17); + velocityOffset[0] += sin(bulletDir + M_PI / 2) * spinAccel * deltaT; + velocityOffset[1] += cos(bulletDir + M_PI / 2) * spinAccel * deltaT; } - double centripetalAccel = 2 * 0.0000729 * (bulletDatabase[index].muzzleVelocity) * cos(bulletDatabase[index].latitude) * sin(bulletDir); - velocityOffset[2] += centripetalAccel * deltaT; + double lat = bulletDatabase[index].latitude; + accel[0] = 2 * EARTH_ANGULAR_SPEED * +(velocity[1] * sin(lat) - velocity[2] * cos(lat)); + accel[1] = 2 * EARTH_ANGULAR_SPEED * -(velocity[0] * sin(lat)); + accel[2] = 2 * EARTH_ANGULAR_SPEED * +(velocity[0] * cos(lat)); - double spinDrift = bulletDatabase[index].twistDirection * 0.0254 * 1.25 * (bulletDatabase[index].stabilityFactor + 1.2) * pow(TOF, 1.83); - double spinDriftPartial = spinDrift - bulletDatabase[index].spinDrift; - bulletDatabase[index].spinDrift = spinDrift; + velocityOffset[0] += accel[0] * deltaT; + velocityOffset[1] += accel[1] * deltaT; + velocityOffset[2] += accel[2] * deltaT; - positionOffset[0] += sin(bulletDir + M_PI / 2) * spinDriftPartial; - positionOffset[1] += cos(bulletDir + M_PI / 2) * spinDriftPartial; - - outputStr << "_bullet setVelocity (_bulletVelocity vectorAdd [" << velocityOffset[0] << "," << velocityOffset[1] << "," << velocityOffset[2] << "]); _bullet setPosASL (_bulletPosition vectorAdd [" << positionOffset[0] << "," << positionOffset[1] << "," << positionOffset[2] << "]);"; + outputStr << "_bullet setVelocity (_bulletVelocity vectorAdd [" << velocityOffset[0] << "," << velocityOffset[1] << "," << velocityOffset[2] << "]);"; strncpy_s(output, outputSize, outputStr.str().c_str(), _TRUNCATE); EXTENSION_RETURN(); } else if (!strcmp(mode, "set")) {