object collision, normalizing, 241
object functions, JNI (Java Native Interface), 327–328
object-oriented programming (OOP) and Java, 3
object serialization
controlling, 128–132
described, 124–127
object-state vs. controller-state communication, 235–236
ObjectOutputStream, 126
objects
3D, 360
backface culling applied to (fig.), 448
center point, 437
and collision detection. See collision detection
collisions and, 45–46
leaking, avoiding, 192
morphing, 458
opaque and transparent (fig.), 371
optimizing number of, 192
and reference functions, 322–325
ObjectsOutputStream, ObjectsInputStream, 122
occlusion culling, 454–455
Ogg Vorbis file format
described, 113
support for, 89
omni-directional light, 3D graphics, 369
on-stack replacement (OSR), 164
one-to-one bindings, 338
online resources
MySQL, 284
OpenGL, 389
onMouseEntered, onMouseExited methods, 421
OOP (object-oriented programming) and Java, 3
opaque graphics, 435–439
opcodes, 158, 187
Open Audio Library. See OpenAL
Open Graphics Library. See OpenGL
open-loop asynchronous games, 233–235
OpenAL (Open Audio Library)
audio programming basics, 89–100
core classes, key objects, 88–89
and OpenGL, 86
sound-rendering contexts, 110–112
OpenGL (Open Graphics Library)
additional resources, 389
and audio programming, 86
Java bindings to. See JOGL
ModelView matrix, 364
platform described, 384
render features, 385–387
RT3D rendering library, 357
sound-rendering contexts, 110
state and transform control, 387–389
summary, 410
vs. JOGL, 393–405
winding order of polygons, 360–361
operand stacks, 152
optimizations
dead-code elimination, 166–167
devirtualization, 164–165
and performance, 180
Optimizeit profiler, 174
optimizing math operations, 240
orientation, Listener classes, 92
OutputStream class and IO operations, 119
OutputStreamBuffer, 147
OutputStreamReader, 123