1.3 System requirements (developer and end user) | JAVA 3D Programming | Chapter 1
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.
Comments
Post a Comment