面は頂点の順序で決まる
4頂点を [0,3,2,1] と結ぶと、立方体のカメラ側(−Z側)の面を定義できます。頂点順序を逆にすると表裏が逆になります。
面の法線ベクトル
a = B − A, b = C − A
n = a × b
n = (ay·bz − az·by,
az·bx − ax·bz,
ax·by − ay·bx)
外積は2つの辺に垂直な方向を与えます。符号は頂点の並びで決まります。
表を向いているか
v = camera − faceCenter d = n · v d > 0 → 正面(この教材の規約)
「②」では正面を向く面に属する辺だけ描きます。ただし立体Bの手前に隠れた立体Aの線は消えません。
背面判定だけでは足りない
「③」は面を奥から順に不透明で塗って隠れを表現します。交差する面・循環的に重なる面では単純な中心Zソートは破綻します。次章は画素単位の Z-buffer です。