forum

Affine transformations for SB objects

posted
Total Posts
15
This is a feature request. Feature requests can be voted up by supporters.
Current Priority: +0
Topic Starter
anonymous_old
I would really love to perform arbitrary affine (matrix) transformations on SB objects.

Matrix looks like this:
       = [ xdx xdy ]
Affine = [ ydx ydy ]
And the math:
[ xdx xdy ] * ([ x ] - [ offsetx ]) + [ offsetx ] = [ newy ]
[ ydx ydy ] * ([ y ] - [ offsetx ]) + [ offsety ] = [ newx ]

In OpenGL at least, applying the affine matrix is as easy as multiplying by the expanded matrix:

            ([ xdx xdy 0 0 ])
([ ydx ydy 0 0 ])
([ 0 0 1 0 ])
glMultMatrix([ 0 0 0 1 ])
// i.e.
glMultMatrix({ xdx, xdy, 0, 0,
ydx, ydy, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1 });

I'm sure something similar can be done using DirectX.

How is this useful? One can shear, pinch, scale, and rotate at once with one command. Paired with flux interpolation some very interesting effects can be created (read: primitive 3D!). If more convincing is needed I can provide mockups (though they may take a while to create).

The storyboard script should accept four parameters in this order: xdx, xdy, ydx, ydy.
FurukawaPan
woo, I like the graphical possibilities here. (I've done a lot of this in OpenGL, dunno about DirectX)

+Support
Topic Starter
anonymous_old
Thanks for the support. =]
Derekku
It's funny because we were JUST learning about applications of matrices in my linear algebra class the other day. Applying them to osu! makes me more interested in the subject :3
peppy
Personally I don't see this being useful in 99.99999% of cases, and will take some effort to get correctly implemented into osu!. And even then it will be used by 10 people.
Derekku

peppy wrote:

And even then it will be used by 10 people.
That's more than I guessed. :? It really IS a shame that more people don't storyboard... I think I'll make it a goal to SB at least one map by the end of this year :) </offtopic>
Topic Starter
anonymous_old
This map has been deleted on the request of its creator. It is no longer available.
peppy
The osu! engine is highly optimised for simple 2D operations. This doesn't include matrix transformations currently.
Topic Starter
anonymous_old

peppy wrote:

The osu! engine is highly optimised for simple 2D operations. This doesn't include matrix transformations currently.
Okay, that's understandable and reasonable.
mm201
Bouncy squishy objects could have lots of uses. :)

Support.
TheVileOne
BUMP - someone may understand and find use in this?
jemhuntr
cool, but might not get implemented.
benguin
Idk, the number of people satisfying these conditons:
1) They are a storyboard maker
2) They are a math major that has taken a linear algebra class and knows how to represent a homomorphism from one vector space to another as a transformation matrix
3) They are willing to take the time to learn how apply matrix transformations in osu storyboarding

...is probably...two people, three if I ever gain interest in storyboarding
theowest
not many people make SBs these days.
69653863
So, you guys are suggesting about 3D storyboard transformation?

I guess no... I mean, this is not really necessary. Even if this is implemented, not many peoples gonna use this often, you know.
We can still combine and make nice effects from current transformations.

Thus, implementating 3D on storyboard should result in a high CPU use or high SB load (maybe)
Please sign in to reply.

New reply