Use of macros in surface normal generation