**3**

# Z Axis Up

Started by zacaj, May 17 2011 04:31 PM

6 replies to this topic

###
#1
Members - Reputation: **655**

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

###
#5
Members - Reputation: **840**

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

Portfolio Map for Android - Free Visual Portfolio Tracker

Electron Flux for Android - Free Puzzle/Logic Game

###
#6
Crossbones+ - Reputation: **2551**

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