5 hours ago, Gnollrunner said:
I'm guessing it has little to do with right handed vs left handed corroborate systems. in both cases Z can still be in/out of the monitor. I'm guessing it's more to do with basic graph drawing conventions. In school you typically draw graphs as +X to the right and +Y up. If you then add the Z coordinate it's naturally in and out of the page. This is just my take on it though. I have no idea if that was the thought process when the system was designed. However for me, it does feels natural that way.
Yes this is fairly classic. At the end of the pipeline, GL/D3D are addressing pixels of a screen. Using graphics x and y coordinates for pixels makes perfect sense for 2D and 3D graphics. In 3D you have depth as well, so we extend it with z.
IIRC both GL and D3D address the screen with right handed coordinate systems, but one uses y=up and one uses y=down. Because they're both right-handed, this means one ends up with z=in and the other z=out.
That's all just how they address pixels though. You're in 100% control of the world->camera->screen mapping via the matrices that you choose to use. Your projection matrix is the one that goes from a 3D world to a 2D screen, so that it already performs that mapping. If, in your game, x=East, y=North and z=away from earth, its because you've set up that convention yourself in your matrix arrangements. You can swap around a few columns / rotate your matrices to use other conventions. I personally use x=West, y=away from earth, z=North ![:) :)](https://uploads.gamedev.net/emoticons/smile.png)