A Look at DirectX 6.0, Fahrenheit, and the Future of Microsoft's Multimedia APIs

An Interview with DirectX Chief Jay Torborg and Group Program Manager Mark Kenworthy

MSDN Interview
September 4, 1998

Microsoft released the DirectX® 6.0 SDK in August, getting it out the door just in time for the many developers who want to use Microsoft's new multimedia APIs in their entertainment titles due out this holiday season.

To learn what DirectX 6.0 offers developers and what types of developers can benefit from its new multimedia technology, MSDN interviewed the top two Microsoft managers running the DirectX effort: director of multimedia and graphics Jay Torborg and DirectX group program manager Mark Kenworthy.

MSDN: Most developers who visit MSDN Online are not game developers; they specialize in many different kinds of software development. What would you tell this broad audience about DirectX 6.0?

TORBORG: I'd tell them DirectX 6.0 provides support for the latest graphics hardware. The primary focus of DirectX 6.0 was really to address new technology being introduced in graphics cards for both Windows 9x and Windows NT® 5.0.

For the first time, DirectX now has the same level of functionality and hardware support for both the Windows® 9x platform and Windows NT 5.0 platform. It also supports virtually every feature in the latest hardware coming out today and over the next six months or so. We've invested a lot of effort to try to improve the overall quality and robustness of the DirectX APIs, improve the quality of the documentation and sample code, and make it a lot easier for developers to really take advantage of these new hardware capabilities.

We've also invested a lot of effort to increase the performance of DirectX, particularly with Direct3D®. DirectX 6.0 lets developers get the most out of today's hardware and take advantage of the various processor architectures for doing 3D geometry and lighting transformations.

In the past, the Direct3D code base was based on software optimized for the 486 family of processors. It didn't fully leverage the Pentium architecture. With DirectX 6.0, we have optimized implementations of the geometry and lighting pipeline for Pentium II, MMX instructions, and the new AMD 3DNow! instruction set.

The other big thing we did was improve the performance of DirectSound®. Any application that does sound mixing can take advantage of that.

MSDN: Are the improvements in DirectX 6.0 useful for developing other applications besides games?

KENWORTHY: All the DirectX 6.0 components can be used to develop applications outside of games. For example, the multimedia components in Microsoft's Web browser (Internet Explorer) use local DirectX services and benefit from their performance improvements.

The biggest new feature in DirectX 6.0 is Direct3D, and the most anticipated Direct3D improvement is multitexture. This is the ability to instantiate multiple textures on a single surface at one time. A lot of new hardware supports this.

We also added bump mapping, which uses an algorithm licensed from TriTech Microelectronics. And Direct3D now has compressed texture support, which uses an algorithm licensed from S3.

DirectX 6.0 also adds vertex buffers. When you're creating a 3D object, structures are built out of 3D vertices that define the object's geometric shape. Vertex buffers organize the vertices in a format that the hardware pipeline can pick up in an efficient manner. . . . We're seeing about a 30% performance boost from using vertex buffers.

MSDN: So you're telling developers that even if they primarily build Web applications or Windows applications they should still pay attention to these new 3D and multimedia technologies in DirectX 6.0?

TORBORG: Yes. DirectX is a combination of APIs needed to support broad multimedia features for all types of applications. Entertainment-oriented, game-type applications are the most aggressive users of these multimedia capabilities today, but we hope to see much broader use soon of multimedia services in other kinds of applications.

Better use of 3D and other multimedia capabilities will improve the ability of applications to convey information. This could help users understand complex data in spreadsheets, for example, make presentations more exciting and convincing, and improve other business applications.

KENWORTHY: A number of CAD tools are already operating on top of DirectDraw® and Direct3D, so there are already many applications outside the game space using DirectX today. But as Jay points out, game developers are definitely the leading-edge users of this technology.

MSDN: How will Microsoft distribute the DirectX 6.0 SDK to developers and the end-user version of DirectX 6.0 to consumers?

KENWORTHY: Both are already available for download from the DirectX Web site at http://www.microsoft.com/directx/download.asp. If developers are willing to download an 80-megabyte file, they can get the SDK that way. The DirectX 6.0 SDK is also available on CD, since a lot of people don't want to download an 80-MB file. Many people want this on CD so they can reinstall the SDK on their system or on multiple machines as often as they want.

End users can get DirectX 6.0 (without the SDK) by downloading a small file to update their systems. Windows 98 users will also be able to get DirectX 6.0 using the Windows Update feature of Windows 98.

MSDN: DirectX 6.0 is going to be Microsoft's first major update to Windows 98, which shipped with DirectX 5.0, correct?

KENWORTHY: Right.

MSDN: And DirectX 6.0 is going to be part of the base API set in Windows NT 5.0, correct?

KENWORTHY: Actually, Windows NT 5.0 will also have the DirectMusic™ API, in addition to all the DirectX 6.0 functionality.

TORBORG: DirectMusic is currently in beta release. We didn't need it to ship DirectX 6.0.

MSDN: When will DirectMusic be available for Windows 95 and Windows 98?

KENWORTHY: We plan to release DirectMusic later this year for Windows 95 and Windows 98.

MSDN: Can you talk a little about Fahrenheit, Microsoft's code name for the future release of DirectX that will contain OpenGL technology?

TORBORG: It's important to point out that Fahrenheit is a project we're working on jointly with other companies, primarily Silicon Graphics. But Hewlett Packard, Intel, and other companies are also providing some input for this future version of DirectX.

MSDN: Is Fahrenheit the code name for DirectX 7?

TORBORG: No, it's not. Fahrenheit will not necessarily end up as either DirectX 7 or DirectX 8.

I think there's some confusion about Fahrenheit, that it means we may not keep our DirectX technologies moving forward. That's not true.

With Fahrenheit, we're trying to take the next major step with our DirectX technologies to encompass all of the capabilities now used by CAD applications and other mission-critical 3D applications, such as scientific visualization and visual-simulation applications. We're looking at all the features in OpenGL, the primary API used today in many of these mission-critical 3D applications. We're also examining where we see 3D technology in general going in the next few years for both consumer applications and other types of applications.

We want to look at everything we've done and learn from both our mistakes and the things we've done well. We want to come up with a new set of low-level APIs to address the broad needs of 2D and 3D graphics and imaging, and release them in this future version of DirectX (Fahrenheit).

These new low-level APIs in Fahrenheit will be completely backward-compatible—both at the API level and driver level—with the current versions of DirectDraw and Direct3D. Every release we've done so far has been backward compatible with the previous version. But the new capabilities, features, and interfaces in Fahrenheit probably will be more revolutionary than the traditional DirectX updates we've released so far. We are investing more effort over a longer period of time to create this new Fahrenheit low-level API than we have for previous DirectX releases.

With Fahrenheit, we want to make it as easy as possible for developers to migrate their existing OpenGL applications to the DirectX architecture. We have to be as compatible as we can with OpenGL concepts and features. One way of looking at this is that we are integrating the functionality of OpenGL into the DirectX architecture. We're not simply merging the code bases or the API set; we're taking a fresh look at how to present OpenGL capabilities in a future version of DirectX.

MSDN: Are there are any specific new technologies in Fahrenheit you'd like to highlight?

Torborg: Yes, Fahrenheit will include a new API for scene-graph technology. This is a way of representing graphical and other data in a hierarchical fashion that allows you to optimize the way the data is presented to the hardware. The traditional use of scene-graph technology is to represent a large 3D model or 3D scene and have the software rearrange that data to maximize rendering performance. This technology is commonly used in CAD applications today, and most 3D games implement a proprietary scene graph as part of their game engine.

With our Fahrenheit scene-graph technology, we hope to make it much easier for developers to leverage this technology. Through the extension mechanisms we're developing, we also want to help developers build applications that get the best performance out of a broad range of different hardware, without making them fine tune their applications for each different hardware platform.

This scene-graph technology is probably the furthest along of the projects we're working on for Fahrenheit. We hope to have this technology available for the next major upgrade of our DirectX technologies. Another major part of the Fahrenheit project is an update of the low-level APIs in DirectX, which we now refer to as DirectDraw and Direct3D.

MSDN: With Microsoft developing Fahrenheit, will we see any more debate about DirectX versus OpenGL?

TORBORG: In the past, our DirectX APIs have been behind the wave of innovation of consumer hardware. We've always been in catch-up mode trying to deliver features for new hardware. With DirectX 6.0, we've finally reached the point where we're actually ahead of the curve. We're delivering more features in DirectX 6.0 than you'll find in virtually any hardware on the market yet. We're anticipating where the market is going instead of trying to catch up to it.

ISVs have been interested in OpenGL for a couple of reasons. One is that it has been a more mature API. In the past, OpenGL had more robust documentation and sample code because it hadn't changed much in a long time. With DirectX 6.0, we've caught up. DirectX is now a mature API as well, and the quality of our documentation and sample code is acceptable now for OpenGL types of applications.

The other issue that attracted ISVs to OpenGL is that it is a procedural-style API. For developers who are less comfortable using COM technology and COM architecture, OpenGL was an easier API to learn.

We've made significant strides making DirectX easier to learn. To draw a simple triangle on the screen with DirectX or create the graphical equivalent of a "Hello World" message used to take lot of initialization and setup code. With DirectX 6.0, we provide developers with a sample code framework that makes it a lot easier to understand the code sequence required to draw something simple on the screen.

KENWORTHY: Our DirectX 6.0 samples provide a framework library that developers can use to quickly get up to speed. That framework may not be ideal for their final application, but it allows them to start working with DirectX 6.0 very quickly.

It's also worth noting that DirectX has tremendous application portability. DirectX applications still run fine on DirectX 6, 5, 3, 2, or whatever. All DirectX applications run on the tens of thousands of PC configurations out there, too.

TORBORG: OpenGL allows hardware vendors to implement extensions accessing unique hardware capabilities. Until now, DirectX didn't always expose the latest capabilities of new hardware features.

We've made a public commitment to provide an extension mechanism in the next release of DirectX. We want to provide mid-cycle support of new hardware features, without making developers wait for a whole new release of DirectX technologies. That will allow us to stay up-to-date with the latest hardware as it is released.

MSDN: In closing, what summary would you give developers comparing DirectX with OpenGL?

TORBORG: We've focused DirectX on a set of functions and features that are somewhat orthogonal to what OpenGL is focused on. The primary market for DirectX is still entertainment applications. We're not focused on those applications exclusively, but as we prioritize what features to support, the entertainment market is still the largest market for this kind of technology. With OpenGL, the largest market is the CAD market, so the features OpenGL targets are more oriented toward CAD-type applications.

The Fahrenheit project gives us the opportunity to take features that are optimal or desirable for both markets and put them into a single release of DirectX.

--------------------

Jay Torborg is Director of Windows Multimedia at Microsoft, where he manages the Graphics and Multimedia Group. Prior to joining Microsoft in 1994, he was VP of Engineering at SuperMac Technology, where he managed development of the company's graphics cards, monitors, video cards, and other equipment for both the Macintosh and Windows platforms.

Jay has also held various engineering executive positions at Alliant Computer Systems and Raster Technologies (which he founded). He studied electrical engineering and computer and systems engineering at Rensselaer Polytechnic Institute, and worked as a computer-graphics researcher there.

Mark Kenworthy is Group Program Manager for DirectX at Microsoft. Prior to joining the DirectX team, he was program manager for Microsoft's Talisman graphics research project. Before joining Microsoft in 1995, he spent 12 years developing real-time 3D graphics systems for the military simulation and training market.