Thank you for visiting Blazing Games

What's the Deal with 3D acceleration?

Almost since the invention of the programmable computer there has been a battle between software and hardware. Implementing something in hardware has the potential advantage of being significantly faster than the equivalent software implementation but lacks the flexibility of software. Hardware implementations being faster than software is obvious when you consider the very basic fact that software has to run on hardware so any software implementation has obvious overhead.

Taking a look at how computers have progressed over time, a software becoming hardware cycle is fairly evident. In the early days of microprocessors floating point operations (real numbers) had to be handled in software. Hardware for handling floating point operations first appeared as optional Math-coprocessors. This was a separate chip that could be plugged in. As the need for this feature became more common it became an integrated part of the processor.

Graphics were always handled in some extent in hardware, but the amount of work that the hardware handled has grown quite substantially. Early graphics chips simply handled simple bitmap graphics with all the work of drawing lines and other shapes handled by software. As graphical user interfaces started being adopted by the majority of computer owners, accelerated 2D graphics cards became the standard. These cards had common graphic functions such as drawing lines, bit block transfers, sprites, and polygons implemented in hardware resulting in better performance.

The step beyond 2D graphics acceleration is 3D graphics acceleration. As with math-coprocessors, the 3D acceleration was for a while a separate component from the graphics card. 3D graphics don't have the general impact that accelerated 2D graphics has so it was a bit slower for 3D graphics to become important. The big thing that helped make 3D important is computer games.

Java lacks accelerated 3D support for applets. There are a number optional extensions for having 3D graphics with Java applications but because these extensions are optional there is no guarantee that the user will have the extensions. One library that Sun supported (at the time I am writing this Sun is about to be acquired by Oracle so it is hard to say what is going to be happening with Java) is JOGL (Java OpenGL). The nice thing about this extension is that it can be used from applets. OpenGL is one of the standards that 3D graphics cards used for accessing 3D features.

Previous page
Chapter 5 Page 2

About - Privacy Policy - Contact - Links - FAQ
Copyright © 2009 Blazing Games Inc. All Rights Reserved