Book Corrections for 3D Game Engine Architecture

The book is selling so well that the publisher needs to print more copies. This is not a second edition; however, I had the opportunity to make corrections for the new printing. The first printing shipped with Wild Magic 3.0. The second printing shipped with Wild Magic 3.4.

Here are the changes that will be made for the second printing. The file contains all the changes that used to be posted here individually. The end papers have changed. The About the CD-ROM pages have changed since my source code license agreement was modified (it is now more liberal).

The remainder of this page will list changes to the second printing.

Book Corrections Organized by Date of Change

29 July 2006, page 254. The pseudocode at the top of the page has misspelled function calls, "UpdateStore", that should be "UpdateState".

25 January 2006, page 226. In the paragraph starting with "The term...", there is a phrase "for ambient, diffuse, and point lights". This should say "for ambient, directional, and point lights".

22 July 2005, page 157. One of the constraints on a second printing is avoiding changes that would cause massive repagination of the book. One change that would have caused that was not submitted, a clarification to some text in the book. I am listing it here separately.

A clarification of "All that matters is that the objects represented by the child nodes are contained in the world bound." A parent node's world bounding volume need only contain the objects represented by its child nodes. The following figure illustrates



Even though the parent world bound does not contain the child world bounds, it does contain the child objects. It is possible that a child world bound intersects the view frustum, so by itself the child subtree would not be culled, but the parent world bound does not intersect the view frustum and the parent subtree is culled. The parent is visited before the child, so the culling will occur!


Book Corrections Organized by Page Number

22 July 2005, page 157. One of the constraints on a second printing is avoiding changes that would cause massive repagination of the book. One change that would have caused that was not submitted, a clarification to some text in the book. I am listing it here separately.

A clarification of "All that matters is that the objects represented by the child nodes are contained in the world bound." A parent node's world bounding volume need only contain the objects represented by its child nodes. The following figure illustrates



Even though the parent world bound does not contain the child world bounds, it does contain the child objects. It is possible that a child world bound intersects the view frustum, so by itself the child subtree would not be culled, but the parent world bound does not intersect the view frustum and the parent subtree is culled. The parent is visited before the child, so the culling will occur!

25 January 2006, page 226. In the paragraph starting with "The term...", there is a phrase "for ambient, diffuse, and point lights". This should say "for ambient, directional, and point lights".

29 July 2006, page 254. The pseudocode at the top of the page has misspelled function calls, "UpdateStore", that should be "UpdateState".