• Create Account

## Z Axis Up

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

### #1zacaj  Members

663
Like
0Likes
Like

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

### #2Monkan  Members

1001
Like
0Likes
Like

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.

### #3scgames  Members

2082
Like
0Likes
Like

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.)

### #4zacaj  Members

663
Like
0Likes
Like

Posted 17 May 2011 - 06:33 PM

It cant be done from the projection matrix?

### #5karwosts  Members

840
Like
2Likes
Like

Posted 17 May 2011 - 07:17 PM

It cant be done from the projection matrix?

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).

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

### #6Trienco  Members

2555
Like
0Likes
Like

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

### #7szecs  Members

2822
Like
0Likes
Like

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...

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.