Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

tobymurray

besides D3DX what have we got?

This topic is 6074 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

After spending the last month or so getting aquanted with D3D 8 I thought I'd spend a few minutes (literally 10) over at NeHe and check out the first few OGL tutes. After doing this I thought to myself: "Hey those OGL nuts are half-right, this gear does seem easier at first glance." (NOTE: the "AT FIRST GLANCE, cos I've only had a glance at the first 5 tutes) OGL seems to use less code, and its version of the state system can be manipulated in 3 lines rather than a whole bunch. Also the way OGL will use Hardware acceleration if it exists but otherwise use software seems good. this is pretty much the same except for D3D where we have to test for hardware first and can use it if it exists - same result, just a little more work.. Therefore (besides D3DX) why did, and I probably still do, have a feeling that D3D is the right choice for me? My first real reason was playing Max Payne on my (yes) 500Mhz Diomand Viper v770 machine and actually having it run ok - I thought here "jeez if D3D can run this OK on my slow-arse machine it must be the one for me." Can people help me out with reasons why I oughta stay in the D3D camp and not bail (or have a foot in each camp..) TO AVOID A FLAME WAR AND STUPID DISCUSSION I WOULD REALLY APPRECIATE ONLY **ONE** REASON PER PERSON PER POST. Edited by - tobymurray on February 4, 2002 7:29:36 AM

Share this post


Link to post
Share on other sites
Advertisement
There is no real SPEED difference between the 2. It depends mostly on your drivers. OpenGL is easy to learn and get into. Direct3D is MY preference as it allows me to access vertex buffers in a standard manner across cards. OpenGL doesn''t - look at how different your code would be if you wrote a VB on an ATI or NVIDIA card. I learnt 3D in OpenGL - and i can heartilty recommend it.

It''s your choice. Look at NEHE. Look at NEXE. Then decide which you like the most. Like I said speed is roughly equivalent. And if your learning getting the speed on either will be the least of your worries.

Neil

WHATCHA GONNA DO WHEN THE LARGEST ARMS IN THE WORLD RUN WILD ON YOU?!?!

Share this post


Link to post
Share on other sites
*** I HAVE HEARD ***

That one good reason to stay may be that DirectX is very oftenly upgraded when compared to OGL, and judging by that it seems to me that if the argument over the *best* API is coming to a standstill now, then DX should become a more useful tool to use in the following few years ahead. I could be wrong though as I know little about OGL.

I might also say that sometimes more lines may be a bit of a blessing. It offers you the ability to do other nessesary things between the steps. Although I will willingly admit that from time to time DX is a pain in the rear.


*** I KNOW ***

DirectPlay is a very useful tool even if you decide not to use D3D, as well as is DirectInput. Many people do use both of these tools in combination with OGL in order to create a finished project.

~Vendayan

Share this post


Link to post
Share on other sites
Excuse the invading OpenGL nut here who happened to see this topic...
quote:
Original post by thedo
There is no real SPEED difference between the 2. It depends mostly on your drivers. OpenGL is easy to learn and get into. Direct3D is MY preference as it allows me to access vertex buffers in a standard manner across cards. OpenGL doesn''t - look at how different your code would be if you wrote a VB on an ATI or NVIDIA card.

That''s not true. OpenGL handles vertex buffers (called vertex arrays in OpenGL) the same way on every card. However, OpenGL allows you to use card specific methods that DirectX doesn''t directly allow you to use through extensions (which are card specific).
quote:
Original post by Vendayan
I could be wrong though as I know little about OGL.

Yes, you could be. Read the ARB notes, get caught up a little .
quote:
Original post by Vendayan
DirectPlay is a very useful tool even if you decide not to use D3D, as well as is DirectInput. Many people do use both of these tools in combination with OGL in order to create a finished project.

DirectPlay is the one and only portion of DirectX that I think no one should use. Why? It completely destroys opportunities to port your software to any other platform. Your server must be on Windows. Your client must be on Windows. You''re stuck. Using a WinSock wrapper for UDP (there are lots out there) you can at least maintain compatiblity in your network protocol.

Share this post


Link to post
Share on other sites
quote:

That's not true. OpenGL handles vertex buffers (called vertex arrays in OpenGL) the same way on every card. However, OpenGL allows you to use card specific methods that DirectX doesn't directly allow you to use through extensions (which are card specific).



You really have to use those extensions though to get performance - ie to put VB's into sysmem/vidmem/agpmem. Because D3D is more (sorry but there is no better word for this) standardised (sorry) D3D does the same but with the same code for each card rather than

if (Nvidia)
:
else
if (ATI)
:
else
everyone else;

Neil

WHATCHA GONNA DO WHEN THE LARGEST ARMS IN THE WORLD RUN WILD ON YOU?!?!

Edited by - thedo on February 4, 2002 8:51:04 AM

Edited by - thedo on February 4, 2002 8:51:32 AM

Edited by - thedo on February 4, 2002 8:52:15 AM

Share this post


Link to post
Share on other sites
I realize you said only 1 reason per post but...

I like DirectX because it gives you the low down and dirty stuff. I like to have control over every aspect of my program. If you don''t like having control over everything, then go ahead and use OpenGL. There is nothing wrong with using either or both APIs.

Someone here mentioned OpenGL extensions. DirectX does not have specific extentions, but you can query the hardware to see what it supports. You can see if the card supports specific blending modes, full hardware accleration, the max number of textures per poly, etc. You don''t search for a specific extension, you search for a specific device capability.

Moe''s Site

Share this post


Link to post
Share on other sites
quote:
Original post by thedo
You really have to use those extensions though to get performance - ie to put VB''s into sysmem/vidmem/agpmem.

OpenGL was designed with the intention that the drivers or hardware would be able to decide in which memory to place the arrays. However, in practice this proves difficult to implement. The greatest control is offered only though extensions as "types of memory" is an abstract concept that can''t always be applied reliably to all platforms (that''s why OpenGL often has settings for "fastest", "nicest", et cetera). OpenGL 2.0 should solve the rest of the problems that extensions raise with those issues though.

Something to think about: With OpenGL''s memory placement extensions you still can get better performance out of an NVidia card than with DirectX''s somewhat automated methods according to NVidia. I don''t know about ATI''s stance on the matter. You can believe what you want though.

Share this post


Link to post
Share on other sites
quote:
DirectPlay is the one and only portion of DirectX that I think no one should use. Why? It completely destroys opportunities to port your software to any other platform. Your server must be on Windows. Your client must be on Windows. You're stuck. Using a WinSock wrapper for UDP (there are lots out there) you can at least maintain compatiblity in your network protocol.


well duh if I was writing directx graphics, then of course the network play for it would be for windows too. (but then of course you don't get the stablitity of unix, like those unix notes profess



-pac

Edited by - Pactuul on February 4, 2002 4:35:24 PM

Share this post


Link to post
Share on other sites
quote:
Original post by Pactuul
well duh if I was writing directx graphics, then of course the network play for it would be for windows too. (but then of course you don''t get the stablitity of unix, like those unix notes profess

You completely missed the point. Let''s say I want to sell a Mac version of my game. So, I port all of the DirectX stuff to native Mac API''s. Now I port the DirectPlay to some network API for Mac''s. Wait! Now the Mac people can''t play the game with the Windows people. They can only play it amongst themselves. Oops.

Share this post


Link to post
Share on other sites
Null and Void has a point... The only big disadvantage of using DirectX is it''s cross-platform compatability... afaik, OpenGL is available on Linux/unix/windows/mac...

Jack;

Share this post


Link to post
Share on other sites

This topic is 6074 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Guest
This topic is now closed to further replies.

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!