Interview with Microsoft's Kevin Bachus
I talked to Microsoft's new DirectX product manager, Kevin Bachus, todayabout the misconceptions in the press regarding the recent OpenGL vs. Direct3D debate. Bachus says there is no reason that OpenGL and Direct3Dcannot co-exist, and that
July 22, 1997
I talked to Microsoft's new DirectX product manager, Kevin Bachus, todayabout the misconceptions in the press regarding the recent OpenGL vs. Direct3D debate. Bachus says there is no reason that OpenGL and Direct3Dcannot co-exist, and that Microsoft has committed to support OpenGL at theoperating system-level for Windows 95, Memphis, and Windows NT. In fact,a group of 3D graphics programmers (three times as large as the Direct3D5.0 team) was recently consolidated under the DirectX team to tackle these very issues. Having recently come to Microsoft from Mindscape, Bachus offered some interesting insights as someone who has worked in the PC games industry both inside and outside of Microsoft.
But first, some background.
About a year ago, id Software was working on Quake and looked into usingDirectX 3.0 for their Windows version. Id programmer John Carmack declaredat the time that Direct3D was broken and turned his attentions to OpenGL,a high-end 3D API. OpenGL had only been used in the past with enterprise3D graphics systems such as SoftImage, which costs $8000 per seat. Graftinga subset of the OpenGL API into Quake, id was able to create a superiorlooking version of the popular game that would only run on OpenGL-specificvideo cards. There weren't many at the time, and there still aren't manynow. 3DFX, sensing a market opportunity, worked with id to create a proprietary "OpenGL" DLL that supported only the API calls id used in Quake. This OpenGL support is "misleading" however, says Bachus, becauseit ends up killing the native OpenGL support in Windows 95 when you installit. "The OpenGL screensavers [in Windows] won't even run when this DLL isinstalled."
Direct3D, on the other hand, is Microsoft's answer for the fast, robustand compatible 3D routines that developers need for multimedia and gamesprogramming. And the latest version, Direct3D 5.0, answers the complaint that Direct3D programming was too difficult to learn and use with its new"DrawPrimitive" API.
Because id turned to OpenGL when Direct3D didn't meet their needs, Bachussays that Microsoft decided to look into the 3DFX DLL and see if they couldn't do something similar with DirectX themselves. 3DFX maps OpenGL calls to a proprietary hardware API called GLIDE in their DLL, so Microsoftset out to do the same thing, only this time mapping the API calls to Direct3D API calls. The goal was to determine whether it would work at all and, if not, figure out what caused it to break. When it didn't break and this new hybrid Direct3D/GL Quake ran within one FPS of the 3DFX version, Microsoft offered the technology to id, though they have no plans to release it themselves.
"It was an internal test performed by a summer intern with no previousexperience in DirectX," says Bachus. "It was completed in three weeksand the performance was equivalent to the OpenGL version. I have no doubt that a native [Direct3D] version would be even faster."
Bachus also addressed the biggest concern id and other OpenGL backers havewhen he discussed the different OpenGL implementations. "Id has been askingfor a Mini Client Driver (MCD) for OpenGL," said Bachus, referring to asubset of OpenGL, "but they also wanted to program their own proprietaryadd-ins [to OpenGL for Quake]. This requires an Installable Client Driver (ICD), which we are already supplying. MCD is quick, but a technical dead-end."
"Look, Microsoft loves Quake," he added. "Quake makes Windows look great. Microsoft is happy to work with [id] on Direct3D. John's points are not without validity: Direct3D *was* difficult to learn and use [in the DirectX 3.0 release]. OpenGL, on the other hand, is orthogonal so it's easier to get started. Once you understand Direct3D, however, you're set. And the new DrawPrimitive in Direct3D 5.0 makes things easier while offering higher performance."
Microsoft's word to games developers is simple: "Tell us what's wrong and we'll fix it." While there is a minority of games coming out soon based onthe Quake engine that will not support Direct3D, Valve's upcoming "HalfLife" game will utilize it, despite it's Quake roots. And most upcominggames, such as Tomb Raider II, the next Populous, Unreal, Jedi Knight, andShadows of the Empire will all support Direct3D 5.0. Many flight sims are also being released soon that support the new APIs.
Going forward, Bachus said that the DirectX 6.0 specification would be completed in August and "code complete" in November. A first beta releaseis now set for December, with a second beta release in February and thefinal release due in April 1998. "This will give developers a comfort levelfor Christmas," Bachus added, since they will want to test the new API fora few months before relying on it for their holiday 1998 titles. The feature-set of DirectX 6.0 is "still fluid. There is a laundry list of features we'd like to add that has to be trimmed down. We will focus onstability and performance as always." Bachus added that some video card-specific features may be added, such as multiple-texture mapping on a single polygon capability used by the 3DFX card. This is still up in the air, however.
An interim release, DirectX 5.0a will be released with Memphis but not be made available elsewhere. It will support Memphis-specific hardware such asUSB, multiple monitors, DVD, and AGP. This release will be totally API-compatible with the existing DirectX 5.0.
Clearly, Bachus wishes the OpenGL vs. Direct3D debate would come to an end."John's a smart guy," he says, "and arguing with John Carmack is contrary to our goals.
Read more about:
MicrosoftAbout the Author
You May Also Like