mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 19:59:28 +02:00
try a different easing function
This commit is contained in:
parent
0b5c7909b8
commit
74f11eb70b
1 changed files with 7 additions and 3 deletions
|
@ -353,9 +353,13 @@ void ModelMeshPartPayload::initCache() {
|
||||||
}
|
}
|
||||||
|
|
||||||
float ModelMeshPartPayload::calculateFadeRatio() const {
|
float ModelMeshPartPayload::calculateFadeRatio() const {
|
||||||
const float FADE_TIME = 0.5f;
|
const float FADE_TIME = 1.0f;
|
||||||
float t = std::min(((float)(usecTimestampNow() - _fadeStartTime)) / ((float)(FADE_TIME * USECS_PER_SECOND)), 1.0f);
|
float t = 2.0f * std::min(((float)(usecTimestampNow() - _fadeStartTime)) / ((float)(FADE_TIME * USECS_PER_SECOND)), 1.0f);
|
||||||
return -(cosf((float)M_PI_2 * t) - 1.0f);
|
float fadeRatio = (t < 1.0f) ? 0.5f * powf(2.0f, 10.0f * (t - 1.0f)) : 0.5f * (-pow(2.0f, -10.0f * (t - 1.0f)) + 2.0f);
|
||||||
|
|
||||||
|
// The easing function isn't exactly 1 at t = 2, so we need to scale the whole function up slightly
|
||||||
|
const float EASING_SCALE = 1.001f;
|
||||||
|
return std::min(EASING_SCALE * fadeRatio, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelMeshPartPayload::notifyLocationChanged() {
|
void ModelMeshPartPayload::notifyLocationChanged() {
|
||||||
|
|
Loading…
Reference in a new issue