點(diǎn)積測(cè)試也用于背面剔除(back face culling)。背面剔除用于查看某個(gè)多邊形是否沒有面對(duì)攝像機(jī)。默認(rèn)情況下,多邊形并不包含兩個(gè)邊,它們只包含由法向量指示的一邊。如果多邊形沒有面對(duì)攝像機(jī),則玩家看不到它們,這意味著不必告訴圖形硬件它們的存在。點(diǎn)積可以用來篩選掉沒有面對(duì)攝像機(jī)的所有多邊形。
8.2.7 叉積運(yùn)算
最后要討論的一個(gè)向量運(yùn)算是叉積。與前面的運(yùn)算不同,這種運(yùn)算只能處理包含3個(gè)或更多個(gè)元素的向量。也就是說,簡單的[X,Y]向量是沒有叉積運(yùn)算的。這種運(yùn)算比前面的運(yùn)算更加復(fù)雜,但是結(jié)果卻很直觀。叉積對(duì)兩個(gè)向量執(zhí)行運(yùn)算,返回與傳入的向量垂直的一個(gè)向量。如果有一張桌子,它的一面從[0,0,0]指向[0,0,1],另一面從[0,0,0]指向[1,0,0],那么得到的叉積向量是從桌子的表面指向上方的向量[0,1,0]。
上面的公式看起來有點(diǎn)讓人望而生畏,但是用代碼表達(dá)后,就沒那么復(fù)雜了。使用這個(gè)公式時(shí),不必考慮代碼的具體工作原理,而只需知道自己想要得到一個(gè)從計(jì)算叉積的兩個(gè)向量指向外部的一個(gè)向量。