Hacker News new | past | comments | ask | show | jobs | submit login

It's not a gigantic deal, but it can bubble up and fuck things in your content pipeline, in shaders, in physics, in other places. It's just an annoying arbitrary thing you have to remember and occasionally you run up against it (especially if you're writing engine code instead of just using something off-the-shelf). It also can screw up math and memory layouts when talking with other libraries.

At least with endian issues, for example, there was once maybe a compelling reason to do it from a hardware standpoint.




If the handedness decision really was "arbitrary" and OpenGL had set a precedent, why select the exact opposite handedness for a brand new system? Given Microsoft's vicious competitiveness in the 1990s, I can't help but think that they wanted to make code portability much more difficult for software developers. Is it really a surprise that "all other graphics authoring tools adopted the right handed coordinate system standard to OpenGL"?


The article says he chose left-handed out of personal preference. Not everything by Microsoft is a sinister conspiracy, sometimes it's a garden variety screwup. They were probably merely insular enough to ignore the rest of the industry, rather than arrogant enough to deliberately subvert it.

There is some logic to left-handedness, which is a bit more intuitive in some ways for computer graphics. Left-handed means the Z coordinate increases with depth into the screen, that the viewer is somewhere near Z = 0 and looking towards positive numbers. And projection space has 0.0 at the near plane of the view frustum and 1.0 at the far end. Right-handed means that either your projection space coordinates go negative or that your projection matrix includes a negation for the Z coordinate.

Left-handed does however have the enormous disadvantage of working against almost all (non-computer screen) representations of 3D space. Draw your X and Y axes on a sheet of paper in their customary orientation. It's much more intuitive to interpret positive Z as altitude above the paper rather than as depth into your desk. That's right-handed, and that's why OpenGL and everyone else chose that.

Answering a different parent, it's more than just one line of code in a library to change coordinate systems. The depth buffer check needs to compare in the opposite direction, for one.

Incidentally, Microsoft has learned from this mistake: XNA uses right-handed coordinates.


XNA is also dead as of Windows 8.

http://en.wikipedia.org/wiki/Microsoft_XNA


According to Microsoft Unity is the way forward, BUILD 2013.

XNA and its former incarnation, Managed DirectX, always suffered from the internal political differences between .NET and native tools development groups.


Now, what if Microsoft purchased Unity Technologies?

Wouldn't that be a thing?


How many versions it would take before it targeted Microsoft systems only?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: