Sign in to follow this  
Darklighter

Direct3D vs OpenGL Interview

Recommended Posts

Darklighter    301
I'm not sure where this thread should belong, so please move it if need be. I'm currently in the process of designing a website about Direct3D and OpenGL for a school project, but I need a short interview from someone with experience in that domain, so I decided to ask you guys. Here's the question: "Are you using Direct3D or OpenGL (or both)? Which one do you prefer and why?" Also, I would need your real name (or first name and first letter of last name if you prefer, e.g. John S.), and your level of programming experience and job title if applicable. Also, feel free to comment on my site. Hoping to hear from you soon, Darklighter

Share this post


Link to post
Share on other sites
Evil Steve    2017
I'm using Direct3D, mainly because I'm more experienced with it than I am OpenGL (I have next to no experience with OpenGL). I still prefer the layout of Direct3D because it's more C++ orientated (OOPy) than OpenGL is, and I don't need to faff about with extensions.
D3D also has the D3DX library for loading various file formats and includes an optimised vector-matrix math library, which OpenGL doesn't (Although there are ones available).

Steve Macpherson,
Junior Programmer (Firebrand Games Ltd)

Share this post


Link to post
Share on other sites
acadestuff    149
I'm using OpenGL. The main reason is that at the moment, Direct3D only seems to be supported on Microsoft platforms. I have only tried Direct3D a couple of times on small projects but I prefer to use OpenGL anyway.

I'd just like to state now that I'm not anti-Microsoft and I'm not anti-Direct3D. It is true that I prefer OpenGL. At the end of the day it comes down to practicalities.

In my day job I am a software engineer working on embedded systems, mainly information display systems and broadcast equipment (Teletext etc) so I am slightly biased towards making my code as portable as possible. Also, we use Linux a lot due to the fact that we may install several thousand systems on site and when you get to those numbers you start to worry about software licensing costs. I know this is slightly different to the whole game development area but I thought I'd discuss my reasons for putting such a high emphasis on the whole cross platform thing and I'm sure there are gamers out there playing games on non-Microsoft platforms.

In my game engine (my hobby project) I have tried to design it so that it can use either API. I hate painting myself into corners even if I am very good at it. At the moment it is only using OpenGL but I tried to make it a modular design and plan, at some point, to add a D3D module or at least be able to add a D3D module.

Adrian Purser
Software Engineer

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
OpenGL, also mainly for portability reasons, but certainly also because it isn't as proprietary and is pretty well-documented and there are lots of excellent free resources (tutorials, resources, courses)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
I have experience with both and I prefer DirectX. I prefer DirectX because I develop for Windows, and having functions like D3DXCreateTextureFromFile, D3DXCreateMeshFromFile, etc is much easier than writing my own classes to open a file, read the header, and get the data out. Also, I love DirectX's effect files, they are very easy and powerful to use. It's object oriented style is also a preference.

Overall they are very similar, and its just the little things like creating objects from files that make me pick one over the other.

Steve Lombardi
Computer Science Student

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
I use both, yet I prefer neither. As far as features go, that comes from the quality of your video card. Triangles are drawn and shaded by the graphics card, not the API. So no matter what API you use, if you're currently using a GeForceMX 400, the things you can do are going to be limited.

The only thing about OpenGL that bugs me is that it needs restructuring. OpenGL is kind of hard to work with in modern editors, mainly because any autofill or intellisense won't help you remember all the names of those GL_THIS_IS_ONE_OF_ABOUT_FOUR_HUNDRED_OR_SO_OPENGL_MACROS. For example consider the state queries...

glGetDoublev(GL_CURRENT_SECONDARY_COLOR, color);
glGetFloatv(GL_CURRENT_SECONDARY_COLOR, color);
glGetIntegerv(GL_CURRENT_SECONDARY_COLOR, color);
glGetVertexAttrib(GL_VERTEX_ATTRIB_ARRAY_SIZE, name, size);
glGetVertexAttrib(GL_VERTEX_ATTRIB_ARRAY_TYPE, name, type);
glGetVertexAttrib(GL_VERTEX_ATTRIB_ARRAY_STRIDE, name, stride);
glGetIntegerv(GL_VERTEX_ARRAY_BUFFER_BINDING, value);

Kinda silly to have to type in VertexAttrib twice (once in caps and once for the function call) for each query. Another thing that frosts me about OpenGL is that Khronos said there was going to be an ARB supported 2.1 SDK out in 2006. Well where is it? Many people are still using GLEE and what not or writing their own extension libraries.


Share this post


Link to post
Share on other sites
MaulingMonkey    1728
For non interview style information on the subject, feel free to search gamedev.net for existing threads and articles on the subject.

I use OpenGL exclusively - both due to not having learned DirectX, and due to DirectX not being portable to all the platforms I use daily (the later contributes to the former).

Michael Rickert
Minor Hobbyist Programmer

Share this post


Link to post
Share on other sites
Trienco    2555
OpenGL -> D3D8 -> D3D9 -> OpenGL... not going to change anytime soon because I really don't have any use for an API that changes and redesigns half it's function parameters or worse with every new version.

Of course the lesson to learn was to always encapsulate stuff that's using specific APIs or libraries not under your control to limit the rewriting. Anyway, OpenGL won't nail you down to one or two platforms, while the same thing allows D3D to take advantage of only having to support very few platforms (Windows PC and their very own consoles).

Sure, D3DX is tempting, because it takes away all the annoying low level work you can waste so much time with. You can't blame companies where "time is money" for using D3D, at the same time you only have to write your own equivalent ONCE. If you complain that you don't want to write your own file loading function "all the time" the real question should be "why the hell are you doing it more than once anyway?". Many games are using their own proprietary file formats anyways.

Still, I continue to believe that some at least "semi-official" equivalent to D3DX would give OpenGL a little boost, simply because too many people don't trust "free hobbyist patch work libraries" no matter how good they might be. Or they simply prefer a standard library you can actually get support for.

Bottom line, if I would have to create something under pressure and time constraints (knowing that it will NEVER be for anything but Windows and XBox) I'd probably try to get back into D3D. Given a decent existing toolset and the need to avoid fits of aggressive cursing when "upgrading" in the middle of development I'd use OpenGL and could rely on the API being EXTENDED rather than turned inside out.

Alexander Festini
CS student, hobbyist patch work creator

Share this post


Link to post
Share on other sites
Elevens    122
About the actual website:
It's very well done however...

The dotted borders you use around your active links and the "tooltips" in your DirectX section are not necessary. Especially for the tooltips. They bring too much unneeded attention to the words. Just having them as a different colour is fine.

How will you change the borders to fit more content? Right now the content fits fine but I don't think just stretching the layout would look right.

Also using the Microsoft DirectX banner makes it look awkward but that's just my personal preference.

Share this post


Link to post
Share on other sites
Darklighter    301
Quote:
Original post by Elevens
The dotted borders you use around your active links and the "tooltips" in your DirectX section are not necessary. Especially for the tooltips. They bring too much unneeded attention to the words. Just having them as a different colour is fine.

Also using the Microsoft DirectX banner makes it look awkward but that's just my personal preference.


I agree. Here's the updated site, with the interviews. I had to limit the interviews to 5 though, so I chose the ones who mentioned their names.

Thanks again!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this