beautypg.com

3 retained mode, 4 trading quality for speed, Retained mode – Sun Microsystems J2ME User Manual

Page 80: Trading quality for speed

background image

68

J2ME Wireless Toolkit User’s Guide • October 2004

For an example of immediate mode, see the

Life3D

MIDlet in the

Demo3D

example application.

9.3

Retained Mode

Most applications, particularly games, will use the retained mode or scene graph
API. In this approach, a graphic designer or artist uses 3D modeling software to
create a scene graph. The scene graph is saved in the JSR 184 file format. The scene
graph file is bundled with the application. At runtime, the application uses the
scene graph API to load and display the file.

Applications can manipulate parts of a loaded scene graph to animate characters or
create other effects. The basic strategy is to do as much work as possible in the
modeling software. At runtime, the application can grab and manipulate parts of
the scene graph, which can also include paths for animation or other effects.

For an example of retained mode, see the

retainedmode

MIDlet in the

Demo3D

example application.

9.4

Trading Quality for Speed

One of the challenges of MIDP development is the constrained environment of
typical devices. Compared to desktop computers, MIDP devices have slow
processors and little memory. These challenges extend into the arena of 3D
graphics. To accomodate a wide variety of implementations, the JSR 184
specification provides various mechanisms to make the display of a 3D scene as
efficient as possible.

One approach is scoping, a technique where you tell the 3D graphics
implementation when objects are not going to interact with each other. For
example, if you defined a scene graph for a house, you could use scoping to specify
that the light in the basement doesn’t affect the appearance of the bedroom on the
second floor. Scoping makes the implementation’s job easier by reducing the
number of calculations required to show a scene.

In general, however, the best way to improve the rendering speed of 3D scenes is to
make some compromises in quality. The Mobile 3D Graphics API includes
rendering hints so that applications can suggest how the implementation can
compromise quality to improve rendering speed.