Started by May 17 2011 04:31 PM

,
6 replies to this topic

Posted 17 May 2011 - 04:31 PM

I want to make the Z Axis up instead of the Y axis, but I havent been able to figure out how. My best guess would be something different in the GL_PROJECTION matrix, and Ive played around with the generation of that for a while, but all I get is black screens if I change anything, and I cant seem to figure out what it IS doing, or how. It could also be in the MODELVIEW matrix, but then that would just be a rotation, and that doesnt seem right

Posted 17 May 2011 - 04:54 PM

I'm not sure but I know you can do it if your using the function gluLookAt then you have to specify the up vector as one of the parameters.

"To know the road ahead, ask those coming back."

Posted 17 May 2011 - 05:50 PM

It's the view transform that will be affected by the choice of world 'up' axis, not the projection matrix. (An easy way to adjust for different up axes is to use a 'look-at' function, as Monkan suggested.)

Posted 17 May 2011 - 07:17 PM

It cant be done from the projection matrix?

Technically, there's no such thing as

But if you consider the concept of a projection matrix, then it makes no sense for it to be there. Projection is only for doing perspective transforms, i.e. transforming what is in front of your face into an image. It doesn't care much about what direction you consider to be 'up', that's for the view matrix to determine.

You can probably stuff a 90 degree rotation into what you're calling your projection matrix, but it doesn't make much sense for you to do so.

My Projects:

Portfolio Map for Android - Free Visual Portfolio Tracker

Electron Flux for Android - Free Puzzle/Logic Game

Portfolio Map for Android - Free Visual Portfolio Tracker

Electron Flux for Android - Free Puzzle/Logic Game

Posted 17 May 2011 - 11:27 PM

Technically, there's no such thing as

"the projection matrix". All you really have down at the hardware level is one matrix that transforms a vec4 (object space) to another vec4 (screen space). The idea of a projection matrix is just a nice abstraction for developers to help them assemble this final matrix (by compounding the projection, view, and object space matrices).

If we replace "projection matrix" with "camera" I could even agree. A matrix is a bunch of numbers. It exists on the stack as its own matrix, in the shader as its own uniform and doesn't retroactively "not exist" because OpenGL premultiplies modelview and projection for performance reasons. That's like saying "there is no PI", because at the lowest level it's just a bunch of digits and PI is only "a nice abstraction for mathematicians".

Plus, today you have to handle it all yourself and there is not even that "one matrix at the hardware level". There is a shader which does exactly what you tell it to. I'm also pretty sure that there is no such thing as a "matrix" on the hardware level. Just a whole lot of silicon.

Also, why does the OP think that z isn't "up" already? It's just that his prefered point of view doesn't seem to be top down, where it even makes sense that positive z is coming out of the screen. And that's why the right place for this is the (model)view matrix. It's the one that represents the concept of "point of view".

f@dzhttp://festini.device-zero.de

Posted 17 May 2011 - 11:57 PM

Well, I think there is projection matrix in a way. I mean it is handled somewhat different, because it doesn't affect the length of the normals. So it's handled a bit differently than the modelview matrix. I can be wrong though...