Mesa OpenGL flies under Linux....Pentium not required
1.1 Background
The evolution of 3D from a highly specialized
niche research market funded in the early days by military based research
in flight simulators to common hardware found in today's AGP graphics cards
and motherboards demonstrates the technology trickled effect that is common
to a lot of high technology areas. 3D is a current buzzword and if you
happened to have found this link, I would suggest that you read the following
3D primer first.
I wish to discuss the issue of device drivers or what is known as the marriage
of hardware and the gaming industry's new darling: OpenGL (about
a week after I wrote this page, I came across another page that does OpenGL
more justice for newbies and non-newbies alike...please check it out
1.2 OpenGL Politics
John
Carmack has stirred the pot and should make things interesting for
3D by porting Quake to a OpenGL. This API is broken down into three sections
like DirectX (see ATI
OpenGL FAQ and ICD/MCD
FAQ):
SGI had long ago licensed Microsoft to use OpenGL and the most logical way to divide the work efficiently was to have a common transformation and lighting layers implemented in software (i.e. setup) while having the hardware vendors marry rasterization aspects in their drivers. Thus the mini-client driver (MCD) was born. It may seem curious to you that OpenGL MCD exists on WinNT first and not on Win95. I think Microsoft figured that they attack the Workstation market by having an OpenGL interface to encourage the porting of Various OpenGL application packages. OpenGL MCD is perceived to be a threat to DirectX. Simple enough.
Like DirectX, the major benefit was the marriage of the last "rasterization" leg of this process with hardware to attempt to provide a real-time gaming interface. The setup and transformation aspects have taken Microsoft years to perfect (and they are good at this stuff) and now they are withdrawing it from Win95. Why ? It will take Hardware Vendors (IHV) much effort to implement the ICD (Installable Client Driver) as each of them must do the transformation and lighting aspects for each piece of hardware. Microsoft should do the right thing and invent the MCD (remember it exists) once and prevent countless hours of toil by having graphics hardware companies . The only good I see is that some of "setup" capabilities will not only be done in software but will take advantage of some of hardware setup capabilities. Microsoft should take a leaf from Richard Stallman of GNU fame said " I was extremely impressed by the sharing spirit that we had. We were doing something that we hoped was useful and were happy if people could use it." There are too many real problems in the world to solve.
1.3 OpenGL and Games
OpenGL
has been the workhorse standard in the Workstation world for years. It
is robust and and yes...it runs on Linux...albeit
only in software form at the moment. John Carmack's offering of a OpenGL
version of Quake
and his view
of a 3D programming has caused a clarification about an API's ease of use
versus speed within the industry with regards to APIs. Card vendors I think
will need to support both Direct3D and OpenGL.
There are many variants of Quake. The one of most interest would be the version taking advantage of Direct3D. The overall question is visual quality/physics traded off against "fps" speed. The best solution is to engineer the bottleneck to happen simultaneously everywhere in the rendering pipe. In DOS quake and WinQuake, the CPU handles transformation/lighting and rasterization. The amount of data tends to explode at the end of the pipe(i.e. rasterization) , so scaling down the effetcs upstream (i.e. fricition modeling), lighting complexity (i.e. shadows, mirrored images, lens effects in water) has a big impact on the required CPU bandwidth/processing power budget to achieve a certain framerate.
The net effect is that we have blocky textures and 320x200 windows(doublescanned). All the new 3D hardware indirectly gives more options to the game developer or applications person by alotting him the CPU savings gotten from the rasterization stage.
1.4 Better Modeling/Effects in OpengGL Quake
When John Carmack and ID began a program to have their games take advantage of 3D hardware, they targetted OpenGL due to its support of high level abstraction. In the process the better/easier game development allowed for ID to implement and experiment with new features to be cleanly and efficiently coded. The following is taken from Zanshin and highlights the architectural differences between OpenGL version of Quake and DOS/ported DOS-Windows version of Quake.
GLQuake is a version of Quake written for the OpenGL rendering library and compiled for win32. It provides real-time texture mapped surfaces, bilinear filtering and 16-bit color as compared to regular Quake's 256 colors. The complete lack of pixellation is stunning in GLQuake. Textures that previously appeared grainy are sharp and clear both up close and in the distance. GLQuake also provides new visual effects not found in regular Quake, such as shadows, reflective and partially reflective surfaces, luminous weapons fire and water transparency.
ID software gives us a glimpse of how much a image can look by taking advantage of the hardware via OpenGL. Porting to Direct-3D would have been much harder....although possible...but also ID to bypass some of the archiectural pipeline inefficiencies in Direct-3D that 3Dfx solved via their GLIDE interface. The overall penalty for Intel CPUs is estimated to be a 25% speed hit. Gee, no wonder John carmack and the principals from 3Dfx/game companies love the proprietary Interface. To get commentary and a great overview on the entire OpenGL controversy where I first learned of this Direct-3D issue see Paul's page.
Some of the new "way cool" 3D effects implemented that are not found in non-OpengGL versions of Quake are:
When they then decided to make money by porting to the Win95 D3D platform they found an ill-birthed coding interface that inflicted pain and discouraged experimentation. They did something with integrity for the gaming industry, by ballking at following the Microsoft game worshipppers eyeing the Win95 game market/$$$, and did not release a version of Quake supporting 3D hardware features via Direct3D. Cool. Because WinNT had already released an MCD to woo users of the mature workstation-based OpenGL market, ID had a very weirdly targetted audience for GLQuake. The good thing about it was that they could use this platform to gauge tradeoffs in deciding which Quake/OpenGL features/instructions to support on a popular platform. Micosoft did an about face and did not release the promised Win95 MCD.
1.4.1 Installing ATI Beta or MCD OpenGL driver
Some clever individuals have GLQuake to be run on advanced 3D hardware by writing a translation layer between the subset OpenGL code emitted by GLQuake to Direct3D. One version is GateGL that somehow manages the above plus the transfomation/lighting portions that are supposed to so difficult to achieve in an ICD/MCD. (Somebody fill me in). The rasterization is taking care of by emitting Direct3D code. Because Direct3D is written at the same or lower level than OpenGL so that the idea of an "OpenGL to DIrect3D translator" or "D3D Wrapper" was born. Microsoft's original vision was to have divide up the work between the game developers and video hardware manufacturers by having the games target D3D and "D3D to hardware" driver portion implemented by the manufacturers for each piece video card.
To Run GLQuake under Win95:
a) ATI's Beta3
OpenGL driver
b) original
D3D Wrapper zip file
c) relevant wrapper from this collection
1.5 Speed vs Quality tradeoffs
on OpenGL
Microsoft surely could have released something
similar, as performance is OK but nothing to write home about. The original
wrapper has texture blending implemented but runs a bit slower than the
S3 wrapper which does not implement this feature. Bottom line is that GLQuake/Wrapper
does not seem to improve upon the WinQuake speed much...the only consolation
is that the textures are blended (except S3 wrapper) for better reallism.
Reflections are also supported as well water lens effects. For those speed
junkies that still do not get it:
In case [1], gamers expected FPS advantage due to D3D. This might not be true if OpenGL code emitted was low level and volumous and numerous low level floating point transformation/CPU calls were requiired to support D3D calls. [2] sufffers from the above but at least we can commnent about the image quality and framerate in a wrapper worth 50K...how did they do all that in such a small space ??? Even in the best scenario [3], GLQuake's promise is not more framerate but suffcient framerate. The VooDoo has the bandwidth today to turn up the features and still maintain framerate but it has excessive framerate that could/should be traded off for lower price/performance ratios. Even so it is not adequate when more of the OpenGL knobs are turned on (it is sad but there is life after GLQuake called OpenGL apps) with some of the heavier duty workstation OpenGL applications.
Read the primer following on OpenGL/3D hardware by Zanshin and if what he says is true then there are some gaps in the puzzle as to what the above two wrappers have accomplished in a file about the size of 50K.
1.6 ATI's ICD OpenGL for Quake/Quake2
Rage Pro users have recently tested out the ATI's first OpenGL
driver running Quake and Quake2. Here are performance numbers based
upon framerate for the demo version of Quake running Demo2 via the TIMEDEMO
facility:
ATI has released three Beta drivers to date.
The new Beta[123] OpenGL drivers seem to give roughly a 50% increase
in framerate when combined with the new Turbo 2312 Driver on a PCI system.
Numbers for AGP system were below those of PCI for the Beta1 release.
CPU |
RagePro Alpha |
RagePro
Beta |
Riva 128 |
Permedia |
Rendition |
VooDoo |
VooDoo Rush |
P2-300 |
(>25 fps) | na | 40 [1] | 22.2 1] | 21.4 [1] | 40 [1] | 22.4 [4] |
P200MMX P233MMX
|
na 20.3 [2a] 22 [2b] 25 [3a] |
na
na
|
|||||
6x86MX-PR200 |
12.9 |
na |
Table 1: Quake 0.97 TIMEDEMO DEMO2 Results
CPU |
RagePro (alpha) |
RagePro
(beta) |
Riva 128 |
3DLabs |
Rendition |
VooDoo |
VooDoo Rush |
P2-233(3.5x66)
P2-262(3.5x75) P2-266 P2-300 |
na
na 18.3 na |
22(beta3/agp) 23.5 (beta1/agp) na 23.3(beta3/agp) 25.3(beta1/agp) |
20[4] | 19.4[4] | 24.3[4] | 31[4] | 18.4[4] |
P200MMX
P233MMX P262MMX(3.5x75) P266MMX |
12.5 14.5 na na |
na
12.2(beta1/agp) na |
14.8[4] | 16.3 | 21.8 | 26.3 | 17.7 |
6x86MX-PR200 |
na |
9.3[4] | 12 | 13.8 | 16.3 | 14.5 |
Table 2: Quake 2 Demo1 Results
Summary/Miscellaneous Quotes about the ATI OpenGL Driver:
Comment:The PC hardware industry has always been driven by
constant and unrelenting "whining". It used to be the Editors
of major PC hardwre magazines who assumed the helm. It led to breakthrough
concepts such as the accelerated 2D windows interface that is today
synonymous with a PC. This torch has now been picked up by niche gaming
magazines making up a small but well practiced group ignored previously
until now. Distributed reviewing has been a gold mine for other geeks,
like me, for sharing opinions and developing a consensus but there is quite
a lot of I publish ...therefore I am ... Most of the junky stuff
just never gets read . It only upsets me when someone with a mostly good
web page (hence influence) presents a mostly one sided view for effect
only ...excuse me as I vent/tangent
onto another page.
...as
of Nov 97