# Mathematics for 3D Game Programmingand Computer Graphics, Third Edition

By Eric Lengyel
ISBN-13: 978-1-4354-5886-4
Hardcover · Full Color · 563 Pages

Purchase at Amazon.com

## BOOK DESCRIPTION

This updated third edition illustrates the mathematical concepts that a game developer needs to develop 3D computer graphics and game engines at the professional level. It starts at a fairly basic level in areas such as vector geometry and linear algebra, and then progresses to more advanced topics in 3D programming such as illumination and visibility determination. Particular attention is given to derivations of key results, ensuring that the reader is not forced to endure gaps in the theory. The book assumes a working knowledge of trigonometry and calculus, but also includes sections that review the important tools used from these disciplines, such as trigonometric identities, differential equations, and Taylor series.

Eric Lengyel is a veteran of the computer games industry with over 18 years of experience writing game engines. He has a PhD in Computer Science from the University of California at Davis and an MS in Mathematics from Virginia Tech. Eric is the founder of Terathon Software, where he is currently working on a Halloweeen-themed game called The 31st.

## ERRATA

• Page 6. In the second paragraph, the vertical bars for the intervals are cut off. They should be square brackets that look like [−1,1] and [0,1].
• Page 50. On the first line following Equation (3.61), the upper limit of the summation should be n, not k.
• Page 160. On line 2, the reference to Section 10.4.7 should be to Section 10.3.7.
• Page 239. In Equation (8.58), the value of B should be normalized by dividing it by ‖N1 × N2‖.
• Page 241. The first displayed equation on the page, giving the effective radius of a box with respect to a plane, should match Equation (8.47) and read reff = ½(|R · N| + |S · N| + |T · N|).
• Page 321. In Figure 11.1, the bottom-most curve should be labeled t2(t − 1).
• Page 338. The first line of Equation (11.73) should read Q1(t) = B0(t)P0 + B1(t)P1 + B2(t)P2 + B3(t)P3