Introduction
Overview
History
Advice
Books
Tutorials

Theory
Concepts
Math
Modeling
Rendering
API

3D on the Web
Pure Java
Java3D
Flash
VRML
Other

Source Code
VB
Java Applet I
Java Applet II
JavaScript
Java3D
VML

Resources
Web Sites
Mailing Lists
USENET
Vendors
News

GBIC >> 3D Graphics >> API
API
When programmers want to create a 3D application they may chose to write code to create and control the images as needed. Most code writing, however, is supplemented by the use of special code libraries that either come with the Operating System, or which are installed later. The code libraries functions are known as API - Application Programming Interface - and allow programmers to use the functions within their own applications. Most often, these code libraries allow developers to create faster, smaller programs than they could otherwise create with existing code/code compilers on the market. Often, the term "3D acceleration" is used to indicate the speed improvements provided by these libraries. Sometimes the libraries are freely available, and sometimes they are commerical products which must be purchased before use.

DirectX OpenGL Proprietary Web Technologies


Return to top of document

DirectX

Microsoft distributes free code libraries of a technology they call DirectX. Windows comes with it and Microsoft issues updates regularly. DirectX contains a number of libraries - much more than just 3D development features. The 3D portion of DirectX is actually called Direct3D, but the industry often simply refers to it as DirectX.


Return to top of document

OpenGL

As part of their own advanced imaging capabilities for workstations, Silicon Graphics, Inc., (SGI) has developed and freely released a code library called OpenGL. DirectX and OpenGL are similar in nature - both providing a traditional graphics rendering pipeline.


Return to top of document

Proprietary 3D Code Libraries

Despite the attempts of Microsoft and Sun to promote the use of DirectX and OpenGL, the most successful games do not use either code library. The fastest possible speeds are typically achieved by programming an application directly in assembly language - rather than using a higher level language which is then compiled to machine language. For that reason, many of the top game authors have created their own personal libraries of 3D image display code and rarely make them available to other authors.

There are however, some customer 3D code libraries which are available - either for free, or for purchase. These 3D code libraries are often know as "3D engines". An older listing of 3D engines is kept here.

A number of well-known applications, particularly in the CAD market, have added 3D capabilities to by purchasing 3D code libraries developed by external sources. Some of the more popular 3D imaging libraries are listed below:

  • Example1
  • Example2
  • Example3


Return to top of document

Web Technologies

The way in which 3D technologies can be used within a web site is much different than the options available to an application installed on a PC.

Generally, there are two options available to webmasters and web site visitors. A web may chose to offer materials which require a custom application for display the material within the browser.

These custom applications can be grouped into two types.

Plug-Ins
A "plug-ins" is simply an application that you install on your PC and which allows web materials (3D images and animations) to be displayed within the browser. All popular browsers allow for the development of plug-ins by software developers.

The advantage of plug-ins is that the code size can be very large - and thus offer very complete features sets. The down-side is that many users are unwilling to install software simply to view the material at a particular site. Most often, users will simply move on to web sites which do not require them to install software to view the content of the site.

One well known exception to this rule is the Macromedia Flash plug-in, which is thought to be installed on 90% of all users PCs. This is a very rare exception to the rule.

Applets
A second type of application that is used by webmasters to display custom content is the "applet", most often associated with the Java programming language (a Sun product). Java is discussed in more detail elsewhere on this site.

Applets are complete applications whose output is displayed entirely within the browser. Each time you go to a web page that needs the applet to display its content, the applet is downloaded to the local PC and used to display the content within the browser.

Many applets are fairly small - less than 50K bytes, but as you would expect the more features an applet has the larger the size of the download. Users are often willing to wait for a small download

For security reasons the read/write and information transfer capabilities of applets are extremely restricted so applets typically have far fewer features than plug-ins. Even so, the ability to download an applet on demand, rather than download and install a large plug-in, have made applets very popular tools on the web.