Do the pros use D3DX

Started by
61 comments, last by Etnu 19 years, 7 months ago
Quote:Original post by acw83
D3DX isn't the same as Direct3D.
daerid@gmail.com
Advertisement
Who cares?

Does D3DX work for you? If you want to act like a pro, make kickass games like [some] pro's. D3DX will help you greatly to do that.
Moved.

yes the pros use directX. all the command & conquer games use it, for instance. i'm sure there are a bizillion others. actually, AFAIK directx is the majority of the market share with openGL in the 2nd place spot. the id engines are the only big ones i know of that use openGL.

-me
I don't think he's talking about DirectX, I think he's talking about the extension library (i.e. ID3DXSprite and ID3DXFont).
Quote:Original post by PaulCesar
D3DX is optimized for generic use, you could of course optimize further by making assumptions based on your engine of course.


Unless you are as experienced with pure ASM as the Intel programmers are, I seriously doubt that this is true. The math D3DX functions have been extensivly optimized by Intel, Microsoft, and the IHV's. This includes all the matrix, quaternion, and vector operations.

As far as "what do the pro's use", it varies. Usually, it depends on the platform(s) they are developing for. If a developer house is making an engine for PC and XBOX, then they probably use some of D3DX, such as the math functions and file loading functions (such as D3DXCreateTextureFromFile).

However, if they develop for non-Microsoft platforms, such as PS2 and Gamecube, the engine has to be as portable as possible. This probably means not using D3DX at all.
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )
Whooever thinks Doom3 (John Carmack) is OpenGL is a god damn idiot.

D3DX are some extensions to the CORE library of DirectX, like Glut is to OpenGL.

D3DX may involve many bugs in some highly sensible functions, like convert to INDEXED blended mesh, some sprite functions and so on.

D3DX serves the purpose, that it uses core DirectX functions (as if you could do the same) and summarises the most common.

For example, if you would like to create a box or a sphere, you would have to create a vertex buffer and fill it. That what D3DX does for you. So they think many people would like to have a BOX or SPHERE on the fly and so there is just one function that does it for you.

D3DXMESH for example, is a set of VERTEX BUFFERS. It just helps you to load a mesh from file. But how the function is written, nobody knows, and if they forgot a bug inthere, you can not fix it, unless you recreate the whole function, which you do not have the source for. That is the problem, why the "PROS" do not use D3DX. You can not tell if it works correct. If DirectX changes, it is not neccessary that D3DX will change too, since it will inherit all functions from DirectX like any other program would.
Quote:Original post by Samurai Jack
Whooever thinks Doom3 (John Carmack) is OpenGL is a god damn idiot.

D3DX are some extensions to the CORE library of DirectX, like Glut is to OpenGL.

D3DX may involve many bugs in some highly sensible functions, like convert to INDEXED blended mesh, some sprite functions and so on.

D3DX serves the purpose, that it uses core DirectX functions (as if you could do the same) and summarises the most common.

For example, if you would like to create a box or a sphere, you would have to create a vertex buffer and fill it. That what D3DX does for you. So they think many people would like to have a BOX or SPHERE on the fly and so there is just one function that does it for you.

D3DXMESH for example, is a set of VERTEX BUFFERS. It just helps you to load a mesh from file. But how the function is written, nobody knows, and if they forgot a bug inthere, you can not fix it, unless you recreate the whole function, which you do not have the source for. That is the problem, why the "PROS" do not use D3DX. You can not tell if it works correct. If DirectX changes, it is not neccessary that D3DX will change too, since it will inherit all functions from DirectX like any other program would.


???

I don't understand why anyone would thing D3DX is bug-ridden. It was written (and rewritten) by highly trained Pros employed by Microsoft, Intel, and various other experts. It is designed to take out alot of the grunt work in doing it yourself, while also making the functions even faster. If you prefer to write 1000s of lines of code that D3DX lets you do in 3, AND have that code run slower than using the library, go ahead. If there is a bug in D3DX, I would hope that MS would have gotten rid of it by now. Despite what everyone says, MS isn't THAT bad.
Sean Henley [C++ Tutor]Rensselaer Polytechnic Institute
Yes, I can tell you for a fact that many pros use D3DX but they selectively choose which parts to use. It's not an all-or-nothing proposition.

For instance they may have their own skinning code. Or they may want to pack all their static geometry into large vertex buffers, which means D3DX Meshes are out. But they might still use D3DXMATRIX and D3DXVECTOR, which are very handy, and as has been mentioned the texture loading functions are great when you're using DDS files.

Donavon KeithleyNo, Inky Death Vole!
Quote:Original post by Samurai Jack
Whooever thinks Doom3 (John Carmack) is OpenGL is a god damn idiot.


Oh?

Quote:
D3DX may involve many bugs in some highly sensible functions, like convert to INDEXED blended mesh, some sprite functions and so on.


Or it may be tested and tried over several releases and already done for you. Anyone who thinks they can write a 'more bug-free' version of any library is asking to be proven wrong.

Quote:
For example, if you would like to create a box or a sphere, you would have to create a vertex buffer and fill it. That what D3DX does for you. So they think many people would like to have a BOX or SPHERE on the fly and so there is just one function that does it for you.


Most of D3DX is far more useful than creating boxes and spheres. The HLSL compiler is a D3DX component, for one.

Quote:
D3DXMESH for example, is a set of VERTEX BUFFERS. It just helps you to load a mesh from file. But how the function is written, nobody knows, and if they forgot a bug inthere, you can not fix it, unless you recreate the whole function, which you do not have the source for. That is the problem, why the "PROS" do not use D3DX. You can not tell if it works correct. If DirectX changes, it is not neccessary that D3DX will change too, since it will inherit all functions from DirectX like any other program would.


So game developers don't use libraries because there might be bugs? That's a little misguided. I suppose we could all go back to writing our own video drivers. You know, in case ATI's has a bug.

D3DX uses the Direct3D runtime for some things like VB/IB creation in meshes, but comes as a static library. Changes to Direct3D don't affect it, since it always uses the same version of the runtime--even if 9.0c is installed, if the game was built with 9.0b, it will continue to use 9.0b behavior. MS is very good at the whole backwards-compatibility thing, and is aware of such issues.

Professional houses do use some components of D3DX such as the math libraray and HLSL compiler (Valve). Some probably use the mesh things on the tools side to help optimize meshes. A lot of them use the Effects framework in-engine (NCSoft).
[sub]My spoon is too big.[/sub]

This topic is closed to new replies.

Advertisement