Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

There is a short and relatively simple paper here describing a method for antialiasing normal maps.

Whether you are very familiar with normal maps or not may not be important.

The part that I am having trouble with, is constructing the lookup table that they have described.

They provide a formula:

$\newcommand{\abs}[1]{\lvert#1\rvert}$ $$f_t = \frac{1}{1 + s \sigma^2} = \frac{\abs{N_a}}{\abs{N_a} + s(1 - \abs{N_a})}$$

And the following expression from which the table is to be constructed:

$$\frac{1 + f_t s}{1 + s}\left( \frac{N_a \cdot H}{\abs{N_a}} \right)^{f_t s}$$

The table is then to be expressed in terms of $N_a \cdot H$ and $N_a \cdot N_a$.

Does anyone understand what values the table should contain, so that it may be accessed with coordinates of the form $(N_a \cdot H, N_a \cdot N_a)$?

share|cite|improve this question
up vote 2 down vote accepted

It seems to me that the answer is in the paper itself, in equation (9) at the top of page 5. There everything except for the shininess exponent $s$ is expressed in terms of $N_a\cdot H$ and $N_a\cdot N_a$. Does that answer your question? (The only difference to how you'd written it is that $|N_a|$ is replaced by $\sqrt{N_a\cdot N_a}$. Using $N_a\cdot N_a$ and not $|N_a|$ for the index is to avoid having to take a square root to compute the index.)

share|cite|improve this answer
It seems that I was looking at the wrong expression. I should be able to construct the table now, thanks! :) – TheBigO Apr 26 '11 at 21:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.