Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 11 Mar 2012
Offline Last Active Apr 19 2012 04:08 AM

#4922105 The evolution of Direct3D?

Posted by on 14 March 2012 - 06:06 PM

Well i don't know much about the history of DirectX... And despite some rumblings about the accuracy of Wikipedia it's at least a good start to get a brief overview of DX history.
There are two articles of interest, one covering DirectX and the other covering Direct3D.

Instead of me linking them just google "DirectX" and "Direct3D" and you will find them in the top 3 results.
Beyond that you might have to google each and every version of DirectX and Direct3D separately and build a history from there.

Unless of course you can find a game developer that has been around since 1992 and is willing to share his knowledge with you.

To answer your question "why it was necessary to" it's simply because demand exceeded the capabilities of the latest version and hardware grew ever faster and more capable. OpenGL played a big part in speeding up the development of DirectX and when OpenGL slowed down (version 1.3) so did DirectX (Version 9.0 a, b, c) and furthermore, the Xbox and PS3 can only use hardware compatible with DirectX 9 and OpenGL | ES 1.0 (OpenGL 1.3) with some features of OGL | ES 2.0 (OpenGL 2.0) respectively.
Only 'recently' (with the arrival of Vista, DirectX 10) an enormous demand has arrived for MORE. As gamers and developers demand ever higher fidelity in rendering (graphics) both hardware and drivers need to match the expecations.

So, simply put... It needed to evolve because we wanted more!
And there are many many more techniques to come as hardware grows, not necessarily in speed but in width.

#4921242 [SOLVED] I am supposed to use Transpose but when i do...

Posted by on 11 March 2012 - 10:25 PM

I have been trying many different languages revolving around DirectX and even had a stab at OpenGL but i finally settled on C# + SlimDX because it's been the most comfortable solution for me.

So, i am making a custom engine for a game i intend to make. It's not going to be a fully fledged engine but more like a support framework.


Anyways, the question / problem i am facing right now is that i am (supposedly?) running DirectX 11 and made a simple triangle to play with so i could continue making a camera class. I set up my world, view and projection matrices and a basic color shader.
I started getting very strange issues however as i went along. First i got the RH vs LH wrong but that got sorted (I think) and then things got really wonky.

If i Matrix.Transpose my world, view and projection matrices before sending them to the shader my screen turns completely <color of triangle>!
That is, whatever color of the triangle i assign my view is filled with it. Having tried to "solve" any matrix issues i might have had in my camera class etc for about 4 hours straight i re-built a lot of the cbuffer updating procedures thinking something went wrong there.
Out of a "fluke" i commented out the Matrix.Transpose lines and VOILA. Everything worked as it should!

So... I know i am supposed to use Matrix.Transpose with DX11 but when i do it breaks.
When i don't it works as intended.
How can this be?

Thanks in advance for any clues or information on the subject.