fresh said:I had the 'pleasure' of porting our engine over to DX9 a while ago. It was a REAL pain in the ass, the interfaces have changed a lot from DX8.
fresh said:If an IHV other than MS were to embrace a graphics API, which one would they choose? Definitely not DX.
Humus said:Seriously, someone should be a scientific study of the underlying processes and probabilities of threads turning highly offtopic.
Joe DeFuria said:fresh said:If an IHV other than MS were to embrace a graphics API, which one would they choose? Definitely not DX.
I'd guess you have that completely wrong.
Seems to me that GL plcaes a larger burden on the IHV for driver (and soon compiler) development. I'd wager that IHVs would rather embrace DX, while ISVs generally prefer GL.
Humus said:Sure, GL requires higher amount of implementation effort, but the extensibility of the GL API is pure gold for an IHV.
It's not cool for IHVs to wait for MS to come out with a new API to be able to demo the new tech.
Hyp-X said:They even waited for the ARB extenstions instead of coming up with their own.
fresh said:GL2 for sure.
I had the 'pleasure' of porting our engine over to DX9 a while ago. It was a REAL pain in the ass, the interfaces have changed a lot from DX8. I'm sick and tired of DX interfaces constantly changing (anyone who's been around since DX3 will know what I'm talking about). GL never changes interfaces, it just introduces new extensions. Our (very old and out of date) OpenGL renderer still worked the same on today's hardware. I incrementally added features to our GL renderer, and soon I had shaders, float textures, etc all working in much less time than DX9. GLSL is already available to developers through an alpha ATI driver (don't know about NVidia) on the 9600+.
We dumped DX in favour of GL for future PC games. The Xbox is hardly an argument for keeping with DX. The Xbox is stuck with DX8, and I'm sure by the time Xbox2 comes out it'll have some hacked up version of DX10. So you win nothing by keeping with DX. Our next PC games are due out in 2004, so we have some time for GLSL support to stabilize. If GLSL support is still not there, then I have a fallback to the 1.4 ARB_*_program extensions.
If an IHV other than MS were to embrace a graphics API, which one would they choose? Definitely not DX. There's that to consider as well.
JohnH said:Err, yes Dx9 interfaces are new, if you want to use an old interface you still can. Admittedly with OGL extensions you can occasionally move forward without having to tweak the majority of your API calls, then again if you'd been going from Dx8 to Dx9 instead of OGL to Dx9 you would probably have found this much easier.
John.
Ingenu said:JohnH said:Err, yes Dx9 interfaces are new, if you want to use an old interface you still can. Admittedly with OGL extensions you can occasionally move forward without having to tweak the majority of your API calls, then again if you'd been going from Dx8 to Dx9 instead of OGL to Dx9 you would probably have found this much easier.
John.
I have 3 renderers, 1 OpenGL, 1 D3D8 and 1 D3D9.
I wrote the OpenGL one first, moving to D3D8 was a pain but definetly less than going from OpenGL to D3D6 which lacked plenty of features.
Moving from D3D8 to D3D9 wasn't easy, a few things changed here and there, just enough to piss you off...
On the other hand, I had no problem adding new features to the GL renderer (although I did not had GL2 extensions as of yet).
JohnH said:Do you really think that going to GL2 ext's would have been that much less painful than Dx8->9, for example if you wanted to add use of MRT's ?
John.
Ingenu said:JohnH said:Do you really think that going to GL2 ext's would have been that much less painful than Dx8->9, for example if you wanted to add use of MRT's ?
John.
mmhh... I'm not sure, what MRT is. It's Multi Render Targets ok, but doesn't that mean rendering to more than one target at once, of simply having more than one render target available at a given time ?
If it's the later then I believe the WGL_ARB_pbuffer extension manage that, and it's not OpenGL 2.0...
arjan de lumens said:MRT implies the capability to render to multiple buffers at the same time, in the same pass, from the same pixel shader program, with different data going to each buffer. This is not the same as older pbuffers, where you need one pass for each pbuffer you wish to render to - although you could easily simulate MRT operation with a collection of same-sized pbuffers (albeit at reduced performance).
I also would like to defent it, but this thread/poll is pretty much pointless... Everyone uses the library he/she likes, and if it's ok for him/her - why should we care?JohnH said:I'll shut up now, I'm the only one defending Dx, and I'm starting to feel lonely