If you’re using homogeneous coordinates, a 2d coordinate is represented with a 1x3 matrix. This enables simpler calculation of functions like translation(movement).
(Homogeneous coordinates are used for calculating translation by matrix multiplication; that is, moving the object/vector with the same math as rotation, scaling, shearing, etc.
@Background Pony #8D59
A 2d vector is a 1x2 or 2x1 matrix, though. Matrix multiplication isn’t defined for a 1x2 matrix multiplied by a 3x3 matrix. Twilight should be a 3d vector, or a 1x3 matrix, for the multiplication to be defined.
Every point in this Twilight can likely be represented by either a 2d vector, or a set of them; therefore, it works.
(2d because we’d need a 4x4 identity matrix to properly handle a 3d Twilight. Homogeneous coordinates, after all, are essential for this kind of transformation.)
Yer darn tootin’.

your current filter.that thar looks like some fancy mathematics to me.
(Homogeneous coordinates are used for calculating translation by matrix multiplication; that is, moving the object/vector with the same math as rotation, scaling, shearing, etc.
Here’s a reference link: https://en.wikipedia.org/wiki/Transformation_matrix
A 2d vector is a 1x2 or 2x1 matrix, though. Matrix multiplication isn’t defined for a 1x2 matrix multiplied by a 3x3 matrix. Twilight should be a 3d vector, or a 1x3 matrix, for the multiplication to be defined.
(2d because we’d need a 4x4 identity matrix to properly handle a 3d Twilight. Homogeneous coordinates, after all, are essential for this kind of transformation.)