遅ればせながらbeta10で追加された深度判定制限の使い方について。
そもそも、ハイポリなモデルを使っているときに、線の太さを小さくしても線が細くならずに太くなったり汚くなるってことがありました。
その原因の一つが深度境界で、PixelFilter化で線のそのもののクオリティは上がったものの、線の描画判定については以前とさほど変わっていないもんで問題が残ってます。
深度境界は隣接するピクセルの深度の差からエッジの発生を判定しています。
もし、ポリゴン法線が視線に対して90度に近い状態になった場合、下図のようにポリゴンが完全に平面であっても深度の差は大きくなってしまうためエッジが発生してしまうのです。
それを防ぐために現在の深度境界には判定を異なるポリゴンの境界部分でのみ行うといった制限を入れてあります。
しかし、ハイポリなモデルで視線に対して法線が90度近くを向く部分、例えば球や腕のような筒状の部分の外側なんかでは、ポリゴンが細かすぎて1ピクセル1ポリゴンとなってしまい、上記のようなポリゴン境界による制限が無意味なものとなってしまいます。
これを防ぐには深度差のしきい値を上げるしかないけれど、そうすると出て欲しいところの線まで出なくなる……
そのために追加したのが判定制限で、ポリゴンセット又はカスタムバッファを使用して深度判定を行いたい部分を制限することが可能です。
具体的な使い方としては、カスタムバッファを使用する場合、ウェイトマップを使用するのが便利です。
モデラーでウェイトマップを1つ作成し、胴体は10%、上腕20%、下腕30%とウェイトをつけていきます。
別に10%刻みでなくても構いませんが変化量は統一しておくと楽です。
ウェイトの設定が終わったら、EdgeTracerのカスタムバッファにグラディエントレイヤーを使ってウェイトマップをセットします。
この辺はたくさんサーフェイスがあると面倒ですがとりあえずコピペでがんばってください。
最後にToonTracerでウェイトを設定したカスタムバッファを選択、しきい値を10%にすればOKです。
未使用時
使用時
また、ポリゴンセットを使用する場合はもっと簡単で、モデラーで胴体、腕、足など部分単位でポリゴンセットを分け、ToonTracerでポリゴンセットを選択するだけでOKです。
もちろん判定制限を使用した場合も深度しきい値は有効なのでこちらも適切な値に調整しておいてください。