VOGONS

Common searches


OpenGL-to-Direct3D Wrapper inside Quake 3?

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 20 of 32, by leileilol

User metadata
Rank l33t++
Rank
l33t++

The reason it's going Direct3D because Microsoft provides an OpenGL ICD that redirects to another (C:\WINDOWS\SYSTEM\OPENGL32.DLL or C:\WINDOWS\SYSTEM32\OPENGL32.DLL). When a video card's drivers are installed, some lines in the system registry changes to allow OpenGL32 to redirect the calls (3dfxogl.dll, atioglxx.dll, nvogl.dll etc). When this doesn't exist in Windows 7 (i.e. using just a baseline driver from a first time install), you'll get Direct3D in the game.

Windows Vista / 7 including a built-in Direct3D wrapper for OpenGL was once a very controversial topic since it led to possible evil monopolistic theories to kill off OpenGL as an API. Fortunately that wasn't the case.... and there was no built-in D3D wrapper before all that. It usually fell back to a sluggish software rasterizer which Quake3 won't ever allow to run (unless r_allowSoftwareGL is 1)

but of course you're always willing to throw facts away because Carmack OMG SOLD OUT TO MICRO'S SOFT BECAUSE RAGE IS FOR CONSLOE'S THOSE DAM CAPITALIST'S

apsosig.png
long live PCem

Reply 24 of 32, by Geri

User metadata
Rank Member
Rank
Member

for example, a good fallback method to run on old graphics drivers used widely in that time on 3dfx, 3dlabs, intel, and sis graphics cards, seriously limiting the number of users. also, quake3 lacks a good software renderer, which was good to have at that time. for example, the renderer engine in unreal tournament was more superior than this, most engine from this time have far better quality than quake3. lets be honest, quake3 have a very lowend renderer engine. also now as it turned out, it does not have d3d wrapper too, quake3's graphics engine is one of the poorest from this time.

TitaniumGL the OpenGL to D3D wrapper:
http://users.atw.hu/titaniumgl/index.html

Reply 25 of 32, by F2bnp

User metadata
Rank l33t
Rank
l33t

The first part of your post can basically be shortened to " Only people with really fast machines could play the game properly ".
And that's true. Not really amateurish, just typical 90's PC mindset, when basically every year there would be this one game that made most peoples' PC look obsolete. Doom, Wing Commander 3, Magic Carpet, Quake, Quake 2, Unreal and the list goes on...

I can't really blame Carmack for that, Quake 3 was the Crysis of its time, pushing technology further than before. I kinda miss that and then not so much since I can keep my PC configuration much longer nowadays 😀.

Unreal/Unreal Tournament's Software Rendering was impressive, but not really an optimal way to play. Unreal started as a Software Rendered game but by May 1998 it also supported 3Dfx's Glide API where it looked optimal. Unless you enjoyed playing at 320x200 with most details turned down, you weren't going to play using the Software Renderer. Speaking of Unreal Engine 1, only recently has it been possible to run games utilising it properly in other APIs. D3D support was always finicky and much inferior to Glide and OpenGL support was experimental.
Thank god for UTGLR.

Moving on, define quality. You say most engines from that time have much better quality than Quake 3. Are you talking about art assets? Probably not.
I don't see how a game that was, as I said before, the Crysis of its time, could have a low-end renderer and inferior quality to other engines.

I can't recall any game having a D3D wrapper or any wrapper at all. These were sometimes provided by manufacturers or more likely just random guys from the net. Do you perhaps mean support for multiple APIs?
Kinda like Descent 3 which supports both D3D and OpenGL (and I think Glide as well? or perhaps it was just OpenGL?).

In any case, you show a very "I know everything" attitude, something which does not bode well with most people here or in the world in general. Try to be more open to other views. That's all 😀.

Reply 26 of 32, by Geri

User metadata
Rank Member
Rank
Member
F2bnp wrote:

The first part of your post can basically be shortened to " Only people with really fast machines could play the game properly ".
And that's true. Not really amateurish, just typical 90's PC mindset, when basically every year there would be this one game that made most peoples' PC look obsolete. Doom, Wing Commander 3, Magic Carpet, Quake, Quake 2, Unreal and the list goes on...

lets see one in your list: quake2. quake2 had opengl, glide, software renderer, and d3d support (maybe other apis too). and it was runnable on every low-end machines from that era, if you had a 486 dx4 or equvalent amd/cyrix cpu at least, or even below, when you are masochist enough to torture yourself. as a contrast, this is not true on quake3, that wasnt even able to start if you had not enough recent drivers. quake3 is a compatibility disaster, compared to quake2.

F2bnp wrote:

I can't really blame Carmack for that, Quake 3 was the Crysis of its time, pushing technology further than before. I kinda miss that and then not so much since I can keep my PC configuration much longer nowadays 😀.

me neither blame carmack. i just talking about from quake3's renderer engine, not from carmack 😉

F2bnp wrote:

Unreal/Unreal Tournament's Software Rendering was impressive, but not really an optimal way to play. Unreal started as a Software Rendered game but by May 1998 it also supported 3Dfx's Glide API where it looked optimal. Unless you enjoyed playing at 320x200 with most details turned down, you weren't going to play using the Software Renderer. Speaking of Unreal Engine 1, only recently has it been possible to run games utilising it properly in other APIs. D3D support was always finicky and much inferior to Glide and OpenGL support was experimental.
Thank god for UTGLR.

back then in scool we played quake2 for a few month, then we wanted to switch to quake3 instead. however, it turned out that the computers in the scool had 2 mbyte s3 cards, with no 3d at all, this made quake3 unplayable. then we started to play with unreal tournament, which was a lot better than quake2. i had very lot of friend who had issues to run quake3 on they computer, later everybody throwed his interest in quake3, and switched to untreal tournament - that had software, s3, glide, d3d, opengl compatibility. i dont have relevant economic analysis, but in my social network, at least 90% of quake3 buys was not happended due to this disasterous graphics engine, and everybody buyd and played unreal tournament instead - that was able to run basically on anything.

F2bnp wrote:

Moving on, define quality. You say most engines from that time have much better quality than Quake 3. Are you talking about art assets? Probably not.
I don't see how a game that was, as I said before, the Crysis of its time, could have a low-end renderer and inferior quality to other engines.

i have mentioned the graphics engine, no word about assets.

F2bnp wrote:

I can't recall any game having a D3D wrapper or any wrapper at all. These were sometimes provided by manufacturers or more likely just random guys from the net. Do you perhaps mean support for multiple APIs?
Kinda like Descent 3 which supports both D3D and OpenGL (and I think Glide as well? or perhaps it was just OpenGL?).

well, this topic was created by Stiletto specifically about the d3d wrapper that quake3 uses when there is no opengl drivers, however, at the moment we obviously talking about support for multiple apis.

F2bnp wrote:

In any case, you show a very "I know everything" attitude, something which does not bode well with most people here or in the world in general. Try to be more open to other views. That's all 😀.

i dont know everything, but its nice to hear that you feel that i do so, thankyou 😁

TitaniumGL the OpenGL to D3D wrapper:
http://users.atw.hu/titaniumgl/index.html

Reply 27 of 32, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Geri wrote:

lets see one in your list: quake2. quake2 had opengl, glide, software renderer, and d3d support (maybe other apis too).

Quake2, apart from the software renderer only had hardware accelerated output to OpenGL. It provided MiniGLs for 3dfx and PowerVR cards to wrap to their Glide and SGL APIs respectively since they lack a full ICD as a complimentary. It did not support Direct3D at all. Ever. Just like Quake3's renderer.lib, ref_gl.dll only ever outputs to OpenGL. You don't see a ref_d3d.dll, ref_sgl.dll or a ref_glide.dll do you?

It's very well known and is no secret in the 90s that John Carmack absofuckinglutely loathed Direct3D. He attempted to code D3DQuake in late 1996 and cancelled it due to how horrid the API was. Do you really expect him to actually put in fully functional "secret" D3D wrappers in his games after that stint? It wasn't until DirectX 10 that John Carmack found appreciation for the API and that, like Quake3 is to Quake2, a complete redux about stripping legacy baggage.

Quake3 made sure up front that it absolutely requires a "100% OpenGL Compliant" 3D accelerator - in the install, on the box, in advertising, etc. There was also an old .plan update that specified what 3D accelerators were not going to run his renderer properly. The year was 1999, the Pentium III and Athlons just launched. What business do you have entitling full support of a new 1999 game for your 486DX4 or school computer? Quake3's minimum requirements were 1997 technology - and the game does run okay on a P2 233 with a Riva128 or Voodoo Graphics. That's pretty much their target system. So sorry they didn't target unaccelerated 486s or computers with hardware intended for schoolwork.

The only thing the UnrealEngine has got going over Q3A are working flares and detail textures. It has fractals too but that's just inefficient considering texture upload congestion. Quake3 actually does have a detail textures subsystem, but use of it was scrapped in development, but still leaving behind the fast detailtexture multitexturing code (lightmap, detail, then the texture). Some licensees use it however (Elite Force, Alice). Licensees fixed the flare code too, which read from a depth test, rather than a traceline that Unreal does so it's much more accurate (though rather expensive).

A reason why Q3 ditched having a software renderer is to keep the renderer lean, and the texture detail higher - it ain't going to be fast making a span driver that works lightmaps with variable sized textures that don't align to every 16 texels on a lightmap. It would also be HELL to have the Quake/Quake2 surfacecache drawing system in Q3A. So much memory and CPU would be wasted to get huge 256x256/512x512's blended with lightmaps in memory with 32-bit data. This would be slow, so why bother?

History of engines and renderers isn't going to be rewritten in front of those who have lived through those times with the proper hardware, in some cases back then wishing there was a D3D wrapper, such as PowerVR, Matrox, Rage Pro and Rendition users... The only companies I know that did Direct3D wrappers at the time were Matrox (for Matrox cards only), SciTech (GLDirect), Alt Software (altoGL) and Techland (Crimecities TCD3D wrapper). None of them were bundled with Quake3 or Quake2 - the closest has been Heretic II's shipping of the Matrox-specific D3D wrapper (only runs on Matrox hardware), and that was that.

apsosig.png
long live PCem

Reply 28 of 32, by Geri

User metadata
Rank Member
Rank
Member
leileilol wrote:

Quake2, apart from the software renderer only had hardware accelerated output to OpenGL. It provided MiniGLs for 3dfx and PowerVR cards to wrap to their Glide and SGL APIs respectively since they lack a full ICD as a complimentary. It did not support Direct3D at all. Ever. Just like Quake3's renderer.lib, ref_gl.dll only ever outputs to OpenGL. You don't see a ref_d3d.dll, ref_sgl.dll or a ref_glide.dll do you?

well... okay, so you say that quake2 supports these apis. it would been shorter if you simply would have sayd ..yes. quake2 supports all these apis''.

deal with it.

leileilol wrote:

It's very well known and is no secret in the 90s that John Carmack absofuckinglutely loathed Direct3D. He attempted to code D3DQuake in late 1996 and cancelled it due to how horrid the API was. Do you really expect him to actually put in fully functional "secret" D3D wrappers in his games after that stint?

you just actually proofed this a few lines before in the case of quake2. cognitive dissonance is a very serious thing in psychology. lets deal with this too.

leileilol wrote:

It wasn't until DirectX 10 that John Carmack found appreciation for the API and that, like Quake3 is to Quake2, a complete redux about stripping legacy baggage.

carmack would be actually happy if the whole api would be stripped down, and he would be able to utilize the graphics card directly. basically he prefers software renderers, but he needs the power of gpu-s.

leileilol wrote:

Quake3 made sure up front that it absolutely requires a "100% OpenGL Compliant" 3D accelerator - in the install, on the box, in advertising, etc. There was also an old .plan update that specified what 3D accelerators were not going to run his renderer properly. The year was 1999, the Pentium III and Athlons just launched. What business do you have entitling full support of a new 1999 game for your 486DX4 or school computer? Quake3's minimum requirements were 1997 technology - and the game does run okay on a P2 233 with a Riva128 or Voodoo Graphics. That's pretty much their target system. So sorry they didn't target unaccelerated 486s or computers with hardware intended for schoolwork.

sorry, but the fact is that unreal tournament seriously had won this competition, mostly due to its compatibility. the history judged, and he is a bigger judge than you or me.
lets deal with this too.

leileilol wrote:

The only thing the UnrealEngine has got going over Q3A are working flares and detail textures.

i dont really can point anything in favour of quake3, i am sorry.

leileilol wrote:

It has fractals too but that's just inefficient considering texture upload congestion.

its really entertaining to play with fractals. but maybe not in an fps.

leileilol wrote:

Quake3 actually does have a detail textures subsystem, but use of it was scrapped in development, but still leaving behind the fast detailtexture multitexturing code (lightmap, detail, then the texture). Some licensees use it however (Elite Force, Alice). Licensees fixed the flare code too, which read from a depth test, rather than a traceline that Unreal does so it's much more accurate (though rather expensive).

a game's success does not depends on what experimental technologies they can put together. the engine must provide the higest compatibility, somewhat recent graphics, high performance, technology to enable cheap game development in it. in other words, lightmaps are useless if it decrases the functionality of the engine. however, lightmap generation are a very separate module from the renderer engine itself - or at least, in a modular, properly coded engine, it should be very separated, and it should not affect compatibility. if it affects, thats a technological disaster.

leileilol wrote:

A reason why Q3 ditched having a software renderer is to keep the renderer lean, and the texture detail higher - it ain't going to be fast making a span driver that works lightmaps with variable sized textures that don't align to every 16 texels on a lightmap. It would also be HELL to have the Quake/Quake2 surfacecache drawing system in Q3A. So much memory and CPU would be wasted to get huge 256x256/512x512's blended with lightmaps in memory with 32-bit data. This would be slow, so why bother?

research shows that 90% of the users do not even bother to play with graphics settings.
becouse the people do not really care about the graphics detial. if somebody throws a large slice of the market just to have his engine looking nice with blended lightmaps everywhere, deserves loosing against the competitiors, whose are more open-minded.

leileilol wrote:

History of engines and renderers isn't going to be rewritten in front of those who have lived through those times with the proper hardware, in some cases back then wishing there was a D3D wrapper, such as PowerVR, Matrox, Rage Pro and Rendition users... The only companies I know that did Direct3D wrappers at the time were Matrox (for Matrox cards only), SciTech (GLDirect), Alt Software (altoGL) and Techland (Crimecities TCD3D wrapper). None of them were bundled with Quake3 or Quake2 - the closest has been Heretic II's shipping of the Matrox-specific D3D wrapper (only runs on Matrox hardware), and that was that


history of engines and renderers isnt goint to be rewritten, maybe this is why epic games still in market, and id software fallen out, and was acquired by zenimax 4 years ago.

TitaniumGL the OpenGL to D3D wrapper:
http://users.atw.hu/titaniumgl/index.html

Reply 29 of 32, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Geri wrote:

well... okay, so you say that quake2 supports these apis.

I never said that. Nice job putting words in my mouth.

Geri wrote:

you just actually proofed this a few lines before in the case of quake2. cognitive dissonance is a very serious thing in psychology. lets deal with this too.

I'd like to think arrogance and pathological lying is worse.

Geri wrote:

carmack would be actually happy if the whole api would be stripped down, and he would be able to utilize the graphics card directly. basically he prefers software renderers, but he needs the power of gpu-s.

I don't think John Carmack would have wanted to lead the future of gaming and take advantage of new 3d hardware by doing things on the CPU.

Geri wrote:

sorry, but the fact is that unreal tournament seriously had won this competition, mostly due to its compatibility. the history judged, and he is a bigger judge than you or me.
lets deal with this too.

Why? Because you can have it running in software at single digit framerates on your 486, therefore it's better?

Geri wrote:

its really entertaining to play with fractals. but maybe not in an fps.

It's the term UnrealEngine uses for procedurally animated textures (fire, water and sparks). How can you say it's better when you don't even know what it uses?

Geri wrote:

a game's success does not depends on what experimental technologies they can put together. the engine must provide the higest compatibility, somewhat recent graphics, high performance, technology to enable cheap game development in it. in other words, lightmaps are useless if it decrases the functionality of the engine. however, lightmap generation are a very separate module from the renderer engine itself - or at least, in a modular, properly coded engine, it should be very separated, and it should not affect compatibility. if it affects, thats a technological disaster.

Quake2 and Quake3 saw huge success here in the states (even in early publicly available prototype forms), so....

In hardware the engine has no problem having lightmaps. It even has a vertex lighting fallback making it even less stressful on older GPUs, especially those with one texture unit. That's great, because UnrealEngine only has a vertex lighting fallback for the PowerVR SGL renderer.

research shows that 90% of the users do not even bother to play with graphics settings.
becouse the people do not really care about the graphics detial. if somebody throws a large slice of the market just to have his engine looking nice with blended lightmaps everywhere, deserves loosing against the competitiors, whose are more open-minded.

Research also shows that 99% of statistics are made up on the spot.
If you can't even run Quake3.... then that's just too bad. No one makes AAA games for 486s and 2mb S3 Trios anymore. At least put a lowly 3dfx card in there, those can make Quake3 work.

history of engines and renderers isnt goint to be rewritten, maybe this is why epic games still in market, and id software fallen out, and was acquired by zenimax 4 years ago.

Id Tech 5 was a future experiment in engine design, it's a shame no one else were interested in using megatexture. Epic Games also don't do the Linux platform....neither does Crytek... and you want to support systems with "poor opengl", systems that clearly didn't have 'success' with gaming... and you refer to John Carmack as a capitalist when your own unfinished closed-source GL wrapper is deceptively "freeware" and has ads that cost 3 EUR to remove.... isn't that the definition of hypocrisy?

Just deal with it.

apsosig.png
long live PCem

Reply 30 of 32, by Geri

User metadata
Rank Member
Rank
Member
leileilol wrote:

I never said that. Nice job putting words in my mouth.

of couse you did. you even listed some files in quake2 related to the support of these apis. should i quote it?

leileilol wrote:

I'd like to think arrogance and pathological lying is worse.

lying? who? where?

leileilol wrote:

I don't think John Carmack would have wanted to lead the future of gaming and take advantage of new 3d hardware by doing things on the CPU.

this is not precisely what he wants, you can listen his ideas on youtube

leileilol wrote:

Why? Because you can have it running in software at single digit framerates on your 486, therefore it's better?

on pentiums. 486 was low-end when quake2 was released.

leileilol wrote:

It's the term UnrealEngine uses for procedurally animated textures (fire, water and sparks). How can you say it's better when you don't even know what it uses?

you neither, its closed source.
how YOU can say its better, when you dont even know what it uses?

leileilol wrote:

Quake2 and Quake3 saw huge success here in the states (even in early publicly available prototype forms), so....

irrelevant, unless you target a software only for one specified contry. aaa games meant to be sold worldwide.

leileilol wrote:

In hardware the engine has no problem having lightmaps. It even has a vertex lighting fallback making it even less stressful on older GPUs, especially those with one texture unit. That's great, because UnrealEngine only has a vertex lighting fallback for the PowerVR SGL renderer.

yes, that was clearly required

leileilol wrote:

Research also shows that 99% of statistics are made up on the spot.
If you can't even run Quake3.... then that's just too bad. No one makes AAA games for 486s and 2mb S3 Trios anymore.

nobody sayd that. you continuing to confuse my facts from quake2's success with your false views on quake3 and the hardware supply at those times.

leileilol wrote:

At least put a lowly 3dfx card in there, those can make Quake3 work.

yeah, and fukushima's security systems was able to cool the reactors.

leileilol wrote:

Id Tech 5 was a future experiment in engine design, it's a shame no one else were interested in using megatexture.

maybe they should have made a more lightweight engine.

leileilol wrote:

Epic Games also don't do the Linux platform....neither does Crytek...

shame. but they at least got support for wider range of hardware palette of they era.

leileilol wrote:

and you want to support systems with "poor opengl", systems that clearly didn't have 'success' with gaming... and you refer to John Carmack as a capitalist

i called his as a capitalist in a good meaning.

leileilol wrote:

when your own unfinished closed-source GL wrapper is deceptively "freeware" and has ads that cost 3 EUR to remove.... isn't that the definition of hypocrisy? Just deal with it.

i am a capitalist too, in a good meaning. just deal with it 😁

TitaniumGL the OpenGL to D3D wrapper:
http://users.atw.hu/titaniumgl/index.html