Software engineers recognize the opportunities for innovation afforded by the proliferation of advanced 3-D graphics hardware. Once used only in high-end professional systems, quality digital graphics are now available on lower-end consumer systems. In fact, market analysts predict that in 1999 manufacturers will produce 30 million to 40 million PCs equipped with 3-D graphics hardware acceleration and that the rate of product release and adoption will continue to climb.
Unfortunately, some graphics hardware advances-and the evident customer enthusiasm for them-complicate and often confuse application-development decisions. Designers have been faced with less than ideal choices. For example:
- They limit application development to a narrow set of platforms and miss out on lucrative market segments.
- They develop applications for a broader platform spectrum, extending the schedule and bloating the budget.
- They might develop applications for multiple platforms, but live with least-common-denominator feature sets in order to meet narrow market windows and minimize budget impact.
Compounding the engineering problems are the matters of ongoing maintenance and application enhancement: Designing applications that are easily revised to leverage platform advances can be a tricky business. Over the past several years, graphics programming has become increasingly intricate even though user demand for graphics computing power appears insatiable. In addition, with the rapid advancement of new graphics techniques and technologies, it has been difficult for application developers to keep up. Across the sweep of applications, users want more realism, more interactivity and more platform abstraction.
As two of the predominant graphics platform suppliers, Silicon Graphics and Microsoft Corp. (Redmond, Wash.) have pooled their expertise, cooperating to solve these problems through the development of an industry-standard framework. Called Fahrenheit, the initiative's framework provides multiple levels of abstraction to simplify the pro-cess of creating sophisticated graphics applications that are fully portable across both Windows and Unix platforms.
The increased performance and portability come with advantages such as optimized performance and extensibility. Without exorbitant resource investments, designers can more quickly take advantage of both hardware advances and market opportunities to deliver sophisticated, graphics-enabled applications to a wider array of customers. The end of 1999 will see the release of the first and most significant Fahrenheit application programming interfaces (API).
Basically, the initiative defined three APIs: Fahrenheit Low Level (FLL), Fahrenheit Scene Graph (FSG) and Fahrenheit Large Model (FLM). The most significant and the first to be introduced, FSG builds on the services offered by rendering API. It offers a tree-like data structure in which a scene can be described in terms of geometry, textures and lighting.
Generally, scene graph technology frees the programmer from the minutiae of programming to a rendering API. As declarative, rather than procedural, programming it typically requires the development of less code and is significantly less complex than lower-level programming.
The performance-centered design of FSG is optimized for interactive 3-D graphics and high sustained frame rates. While the stated performance goal targets rates competitive to low-level APIs, FSG is expected to deliver higher application performance.
Another design objective is to implement support for multiprocessing in such a way that applications make automatic, transparent use of available processors. FSG requires no multiprocessing-specific coding, though direct control is allowable.
As the Fahrenheit framework lowers the barriers to creating 3-D applications, users will see a marked increase in the usage of 3-D as a medium. All users will see more media-rich applications that make use of available hardware.