< Zurück | Inhalt | Weiter >

1.3 System requirements (developer and end user)

Java is a resource−intensive development and deployment environment and creating interactive 3D graphics is still one of the most challenging tasks for modern PCs. Interactive 3D rendering requires hardware dedicated to 3D rendering, usually provided by third−party display hardware specially adapted for processing 3D scenes. Fortunately, 3D−display hardware has reduced in price radically over the past few years, and today’s typical game PCs are able to exceed the capabilities of the expensive dedicated graphics workstations of just a few years ago.


For a realistic immersive 3D experience (first−person 3D games, for example), a consistently high frame rate is required, typically 30 frames per second (FPS) or higher. More powerful rendering hardware will be able to achieve higher frame rates, at higher screen resolutions and with higher resolution texturing, all of which contribute to the overall experience. Modern PCs could typically achieve reasonable frame rates without dedicated rendering hardware, however the processor must execute both application logic and rendering code—to the detriment of both.


Nonimmersive 3D applications (such as visualization or modeling) do not typically require as high a frame rate as immersive applications. However the application logic may become the limiting factor on frame rate, as complex calculations may be necessary prior to rendering every frame.


The frame rate that the end users see is determined by a number of factors:


Vertex or transform bound—Ability of the display hardware to transform and display each vertex in the scene

Fill bound—Ability of the display hardware to shade and texture the scene and push the resulting

pixels to the screen

Application logic bound—Ability of the application to prepare the scene for rendering


Different types of application will place different demands on those factors, and the type of application you are writing will often dictate the hardware requirements for development and end users.


The minimum requirements for most interactive 3D applications are:


500+ MHz main processor

Dedicated 3D−display hardware, with at least 16 MB of texture memory. New 3D graphics cards are released regularly so you should research the latest cards within your budget. Ensure that the card has good OpenGL compatibility for use with Java 3D. The Java 3D mailing list is a good source of information on people’s experiences with various graphics cards.

128+ MB of system RAM


An important part of designing your application should be to set your performance targets. Gather requirements from your user base on typical available hardware and ensure that your application can perform adequately on your target machine configuration. You may need to test using several popular graphics cards to ensure compatibility and performance. You may need to try several driver versions to find the best drivers for your supported cards. Unfortunately, Write−Once−Run−Anywhere does not work out too well in the world of 3D graphics!


Analyze the performance of your application using a tool such as OptimizeIt from VMGEAR (http://www.vmgear.com) to determine whether your frame rate is limited by your application logic or display hardware. Regular use of OptimizeIt will also help you to get the maximum performance from the JVM and increase garbage collection intervals.