DDJ, August 2000 -- GRAPHICS PROGRAMMING


FEATURES

INSIDE XBOX GRAPHICS

by Michael Abrash

Microsoft's upcoming Xbox game console has some pretty impressive graphics capabilities. Michael ought to know -- he's been developing the graphics internals for the past few months.

TRIANGLE INTERSECTION TESTS

by Eric Haines and Tomas Möller

Our authors provide an alternative to the classic methods of testing whether a point is inside a triangle. This new technique is based on barycentric coordinates.

OPTIMIZING 3DNOW! REAL-TIME GRAPHICS

by Max I. Fomitchev

One approach to pumping up real-time 3D graphics performance is AMD's 3DNow! technology, which adds floating-point SIMD extensions to the original x86 instruction set. Max examines 3DNow! technology, then provides guidelines for optimizing its performance even more.

AUGURAL IMAGE ZOOMING

by Wm. Douglas Withers

Augural image zooming is a new method for zooming images with a minimum of computation, while keeping smooth regions smooth and sharp edges sharp.

AUTOMATED BUILDS

by Aspi Havewala

Automated builds refer to a series of commands that can be executed to compile and link source code into its final deliverable format. Aspi discusses some advantages of automated builds, and suggests some features your builds can incorporate.

EXAMINING VMWARE

by Jason Nieh and Ozgur Can Leonard

VMware is a virtual machine platform that provides an abstraction of x86 PC hardware so that multiple operating systems can run unmodified at the same time on a standard PC. Among other things, this means you can run Windows applications with Linux.

A LINUX IEEE 1394 CONFIGURATION ROM DECODER

by William F. Alexander

William's DumpRom program is designed to read and decode the configuration ROM of 1394 peripherals. He presents the Linux implementation of DumpRom using an OHCI 1394 controller.

EMBEDDED SYSTEMS

RELIABILITY & EMBEDDED NETWORKS

by H. Thomas Richter

Reliability requirements for embedded networks are more critical than with nonembedded networks. Thomas presents a new method for ensuring reliable communication between hosts in small networked environments.

INTERNET PROGRAMMING

DB FORMS: PHP, MYSQL, AND PHPLIB

by Darryl Ross and Con Zymaris

Darryl and Con use the PHP server-side scripting engine, MySQL database engine, and PHPLIB class framework to build DB Forms, a reusable database framework for writing web applications.

PROGRAMMER'S TOOLCHEST

EXAMINING THE 3D GAME STUDIO TOOLKIT

by Clayton E. Crooks II

3D Game Studio from Conitec is a Win32-based authoring system for creating interactive 3D applications. Clayton uses it to build a typical three-room world that includes actor movements.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

C.J. Date's new book What Not How: The Business Rules Approach to Application Development gets Michael thinking about Prolog, declarative programming, business rules, and the state of software development in general.

C PROGRAMMING

by Al Stevens

You'd think that after 12 years, Al would figure out that complaining isn't worth the effort. But you have to hand it to him -- he doesn't give up.

JAVA Q&A

by Alexandre Sieira Vilar

Object pooling can be used very effectively to reduce the number of garbage collection executions in a Java application. And that reduction can deliver benefits in terms of reduced processor usage and the absence of unpredictable delays.

ALGORITHM ALLEY

by Laurence Marrie

Alternating skip lists are an option anywhere balanced search trees are appropriate. Laurence presents a subset of std::set functionality using ASLs, and gives a basic space/time comparison against a typical red-black tree implementation.

DR. ECCO'S OMNIHEURIST CORNER

by Dennis E. Shasha

Nefarious criminals might be able to foil robotic prison guards, but out-thinking Ecco and Liane is another task altogether.

PROGRAMMER'S BOOKSHELF

by Gregory V. Wilson

Python, C++, and a lot more are on Greg's mind this month, as he examines The Quick Python Book, by Daryl Harms and Kenneth McDonald; Python Annotated Archives, by Martin C. Brown; Python Essential Reference, by David M. Beazley; Python Programming on Win32, by Mark Hammond and Andy Robinson; Efficient C++: Performance Programming Techniques by Dov Bulka and David Mayhew; Exceptional C++, by Herb Sutter; Core Jini, by W. Keith Edwards; Designing Web Usability, by Jakob Nielsen; Understanding Search Engines, by Michael W. Berry and Murray Browne; Toward Zero-Defect Programming, by Allan M. Stavely; and Game Architecture and Design, by Andrew Rollings and Dave Morris.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

NEWS & VIEWS

by Nicholas Baran

OF INTEREST

by Shannon Cochran

SWAINE'S FLAMES

by Michael Swaine