ローポリなモデルをフォンシェーディングで補間する場合、普通は物体の縁とかにポリゴンの頂点が来ちゃったりしてそこだけ角になったりする。
これを解消するためには法線が向こう側を向いている点では描画しないという処理が必要になる。フラグメントシェーダの出力で描画それ自体を抑制するとなるとアルファテストに失敗させることで目的を達成できる可能性がある。
つまり頂点シェーダの出力に法線を含めてフラグメントシェーダでは法線が向こう側を向いていたらアルファテストに失敗するような計算をしておけばいい。上手くすればピクセル単位で縁を補完できるのでジオメトリシェーダーで同様に補完するより軽くてきれいな結果になる。ピクセル単位のカリングだ。
しかしフラグメントシェーダだけではポリゴン内部にしか描画できないのでこの方法だとモデルより小さく描画されてしまう。そこで向こう側の頂点まで倒れちゃってるポリゴンを真の稜線を通るように頂点シェーダで引き起こす。これで稜線のところにちょうど法線が真横を向いている点が来ればあとはフラグメントシェーダで余計な部分を切り落とせる。
残る問題は「真の稜線を通る」って点だ。もちろんこれは補間して求めた点でありモデリング時の真の稜線ではないのだがとりあえずそう呼んでおく。モデリング時のそれは「モデルの稜線」とでもしておこう。