ポリゴンにテクスチャマッピングを行います。
画像データを貼り付けることで、より現実味のあるポリゴン表示にします。


予めテクスチャ画像のピクセルデータ(テクセル)が入った配列を用意しておき、
ピクセルを塗る際にテクセルを参照します。
テクセルの配列は普通の画像データと同じなので、UV座標を用いると

U座標 % 横幅 + V座標 % 縦幅 * 横幅

で求めることができます。
しかし、ピクセル毎に乗除算を三回も行っていては処理が重すぎます。
そこで、画像の縦横のサイズを2の累乗に制限することで、
これらの演算をビット演算に置き換えることができます。

[% 横幅] の部分は、AND演算子(&)を使うことでビット演算化できます。
AND演算子は両方のビットが1の時のみ1を返す演算子で、
よくRGB値のマスクなどに使われます。
[% 横幅] というのは [横幅 - 1] の範囲のマスクなので、
[& (横幅 - 1)] を使いマスクをかけてやります。
ビット演算でマスクをかけるには対象範囲のビットがすべて1である必要があるので、
横幅が2の累乗である必要が出てきます(2の累乗 - 1は必ずすべてのビットが1になります)。
同じようにして、[% 縦幅] の部分もビット演算化できます。

さらに [* 横幅] の部分もシフト演算子(<<)を使うことでビット演算化できます。
2進数ではn個桁を左にずらすと値は2のn乗倍になります。
なので横幅が2のn乗なら [* 横幅] は [<< n] に置き換えることができます。
まとめると、最初の式は

(U座標 & (横幅 - 1)) + ((V座標 & (縦幅 - 1)) << 横幅シフト数)

となります。

テクセルで得た色とライティングで得た色を乗算し、最終的にピクセルを塗る色を求めます。
スペキュラ色だけは後から加算する形で合成しています。

乗算は値と結果の範囲を0~255とすると、

a * b / 255

と表せます。
これをビット演算化すると

a * b >> 8

となりそうですが、これだと256で割ってしまっているので
微妙に結果が変わってしまっています。
サンプルコードにもこう書いてあることが多く、
誤差も少ないので気にならないかもしれませんが、正確には

a * (b + 1) >> 8

とするべきです。