Rozdział 2 rozróżnił punkt od wektora słowami. Rozdział 17 mnożył macierze transformacji, nie mówiąc, co jest w środku. Ten dodatek łączy oba — jedna, elegancka konstrukcja matematyczna robi wszystko naraz.
Rozdział 2 powiedział: translacja przesuwa punkty, ale nie wektory. Żeby jedna macierz obsłużyła obie reguły przez zwykłe mnożenie, rozszerzamy każdy punkt i wektor o czwartą współrzędną w. Punkty dostają w=1, wektory w=0. Kolumna translacji w macierzy mnoży się przez w — dla punktu (w=1) translacja się liczy, dla wektora (w=0) translacja mnoży się przez zero i znika.
Mnożenie macierzy nie jest przemienne. „Obróć wokół początku układu, potem przesuń” daje inny wynik niż „przesuń, potem obróć wokół początku układu” — bo w drugim przypadku rotacja zakręca całym już przesuniętym punktem po łuku wokół oryginalnego środka, nie wokół nowej pozycji.
To dosłownie ten sam mechanizm, który stał za wzorem z Rozdziału 17: M_world = M_parent · M_local. Zamiana kolejności czynników przesuwałaby dziecko względem złego układu odniesienia.
Sztuczka z Rozdziału 17 — transformuj promień odwrotną macierzą instancji — ma jeden wyjątek. Normalne (Rozdział 4) transformowane tą samą macierzą co pozycje wychodzą źle, gdy skalowanie nie jest równomierne: kula rozciągnięta w elipsoidę wzdłuż jednej osi ma normalne, które przestają być prostopadłe do nowej powierzchni.
To dlaczego DCC ostrzegają albo automatycznie „Apply Scale” przed pewnymi operacjami po nierównomiernym skalowaniu obiektu — silnik pod maską musi przeliczyć normalne odwrotną transponowaną, a niektóre narzędzia (starsze eksportery, proste shadery) tego nie robią, dając widocznie złe cieniowanie na rozciągniętych modelach.
Dodatek G wraca do Rozdziału 9: jak faktycznie wybiera się poziom mipmapy, i czemu filtrowanie anizotropowe istnieje jako osobne ustawienie w każdej karcie graficznej.