• Create Account

# Eric Lengyel

Member Since 25 Nov 2003
Offline Last Active Yesterday, 11:44 PM

### In Topic: Foundations of Game Engine Development

12 September 2016 - 12:18 PM

These 200 pages correspond to the same range of topics that were covered in about 70 pages of my old math book. The new book goes into a lot more detail and covers new topics like Grassmann algebra that are not discussed in my old book at all. Topics related to graphics, animation, and physics that constitute the bulk of my old math book are going to be covered separately in future volumes of the Foundations of Game Engine Development series.

### In Topic: Math Book For Game Programming

19 August 2016 - 01:02 AM

Thanks for the plug, Ravyne. I also have a new book coming out this month that covers more topics and goes into a lot more detail:

http://foundationsofgameenginedev.com/

I'm not seeing that on Amazon. Where can one obtain a copy?

It's not out yet. I'll put a link to the Amazon page on the above website when it's available. And I'll tweet it. (@EricLengyel)

### In Topic: Math Book For Game Programming

09 August 2016 - 11:52 PM

Thanks for the plug, Ravyne. I also have a new book coming out this month that covers more topics and goes into a lot more detail:

http://foundationsofgameenginedev.com/

### In Topic: Stencil Shadows Problem

01 June 2016 - 02:57 AM

the stencil operation that i am using now is to increase, render my shape, then flip the culling and increase the stencil again

This part doesn't sound right. One side should increase, and the other side should decrease. Your shadow is where the stencil ends up being nonzero.

### In Topic: Plane equation, + or - D

19 May 2016 - 11:57 PM

A plane (a,b,c,d) is really a four-dimensional trivector, not an ordinary vector. When you take the wedge product of three points P, Q, and R, it naturally produces a plane in which d = -dot(N, P) = -dot(N, Q) = -dot(N, R), where N = (a,b,c). When you take the dot product between a homogeneous point (x,y,z,w) and a plane (a,b,c,d), you get a*x + b*y + c*z + d*w, which gives you the signed distance between the point and the plane multiplied by w and the magnitude of N. A positive sign in front of the d is the correct choice.

This kind of stuff is discussed very thoroughly in my new book that comes out in August:

http://foundationsofgameenginedev.com/

Dirk, when a homogeneous point is treated as a single-column matrix that is transformed by multiplying on the left by a 4x4 matrix M, a 4D plane must be treated as a single-row matrix that is transformed by multiplying on the right by the adjugate of the matrix M. If the translation portion of the matrix M is not zero, then a plane will not be transformed correctly if you treat it the same as a point.

PARTNERS