【C#/GLSL】ワンライナーでQuadraticEaseInOutを実装してみた

概要

こんな感じのゆっくり動き始めてゆっくり動く止まる関数がQuadraticEaseInOutです。

f:id:notargs:20181219121705g:plain
QuadraticEaseInOut

何を作るにしてもめちゃくちゃよく使うので、お手軽に使い回せるようにワンライナーで書いてみました。

コード

C

float QuadInOut(float t) => (1 - Mathf.Pow(1 - Mathf.Abs(t * 2 - 1), 2)) * Mathf.Sign(t - 0.5f) / 2 + 0.5f;

glsl

float quadInOut(float t) { return 1.0 - pow(1.0 - abs(t * 2.0 - 1.0), 2.0)) * sign(t - 0.5) / 2.0 + 0.5f; }