back buffers and rendering, 65
backface culling, 448–449
bandwidth
LAN vs. WAN gaming, 197
WAN games, 236
basic entities, constructing, 36–41
benchmarking
and optimizations, 180
performance, 171–173
BGScript, 304
binary files and file stream objects, 119
bindings
writing one-to-one, 338
joystick, 342–345
bitmap fonts in text rendering, 413–415
blend shapes, 458
blocking loops vs. non-blocking loops, 29–31
boolean types, VM processing, 160
bottlenecks, performance, 173–178
bounding box and collision detection, 45–46
bounding volumes
and collision detection, 467–468
described, 451
hierarchies, 452–453
in scene graphs, 446–447
Buffer classes
audio programming, 89–91
list (fig.), 134
setting up, 94–95
BufferedExample class, 71, 73
BufferedImage class, 71, 399
BufferedInputStream, BufferedOutputStream, 121, 147
BufferedReader, BufferedWriter, 123
buffering
BufferStrategy class, 67–68
data vs. reading from disk, 116–118
double, and rendering, 64–65
buffers
access overhead of byte (table), 148
benefits of, 132
byte, using, 190
described, using, 65, 134–143
direct, functions, 334–336
direct vs. nondirect (fig.), 135
and loading more than one sound, 101–103
static, and optimizations, 189
write, and read requests, 117
BufferStrategy class, 67–68
bump mapping, 380
byte buffers, using, 190
byte order
little-endian vs. big-endian (fig.), 137
streams, java.io handling of, 119–123
ByteBuffers
containing pointer to native buffer (fig.), 335
creating with wrapbuf, 347–348
JOGL’s use of, 397–399
and vecmath, 261
using, 122, 136–137
bytecodes and optimizations, 187
ByteInputStream, ByteOutputStream, 122
bytes, converting to chars, 122–123