···226 public static SRGBColour ValueAt(double time, SRGBColour startColour, SRGBColour endColour, double startTime, double endTime, in TEasing easing)
227 => ValueAt(time, (Color4)startColour, (Color4)endColour, startTime, endTime, easing);
228000000229 public static Color4 ValueAt(double time, Color4 startColour, Color4 endColour, double startTime, double endTime, in TEasing easing)
230 {
231 if (startColour == endColour)
···226 public static SRGBColour ValueAt(double time, SRGBColour startColour, SRGBColour endColour, double startTime, double endTime, in TEasing easing)
227 => ValueAt(time, (Color4)startColour, (Color4)endColour, startTime, endTime, easing);
228229+ /// <summary>
230+ /// Interpolates between two sRGB <see cref="Color4"/>s in a linear (gamma-correct) RGB space.
231+ /// </summary>
232+ /// <remarks>
233+ /// For more information regarding linear interpolation, see https://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/#gradients.
234+ /// </remarks>
235 public static Color4 ValueAt(double time, Color4 startColour, Color4 endColour, double startTime, double endTime, in TEasing easing)
236 {
237 if (startColour == endColour)