第17回 Triplanar Mapping
4 / 4 三方向投影の合成と用途の比較
このステップの目的
通常のUVとの使い分けを、見た目と入力の数から判断します。
継ぎ目が完全になくなるわけではない
投影が混ざる斜面では、模様が二重に見える場合があります。重みを鋭く切り替えると二重像を減らせても、切り替わる境界が目立つ場合があります。通常のUVで意図した位置へ絵を置く用途と、広い形へ繰り返し模様を与える用途を分けます。
一種類のTextureでも三方向の参照が必要です。色以外に法線や粗さのTextureを増やせば、さらに参照が増えます。Normal Mapは向きのデータなので、色と同じ足し算だけで正しい方向になるとは限りません。
入力から合成までの読み取り例
次は三候補の明るさを混ぜる計算例です。三つのUVでTextureを読む処理の後へつながります。
text
a = abs(normal)
weight = a / (a.x + a.y + a.z)
result = colourX × weight.x + colourY × weight.y + colourZ × weight.znormalは位置からUVを作った空間とそろえ、ゼロでない法線を使います。色の合成を確認してから、通常のUVとの使い分けを判断します。
条件を変えた確認
法線の絶対値を(0,0.6,0.8)、X・Y・Z投影の候補の明るさを0.2、0.4、0.8とします。重み、合成結果、Texture参照回数を求めます。絵柄の位置を厳密に指定したい用途でも三投影を選ぶか説明してください。
考え方の確認
重みは約(0,0.429,0.571)、結果は約0.629です。この基本実装では三方向を読むため3回参照します。指定した絵柄を狙った場所へ置く用途では、通常UVの方が管理しやすい場合があります。
三投影の入力・重み・結果と、通常UVとの使い分けをまとめます。
チェックリスト
- 上向きの面の投影を選び、三回の参照と合成の制約を説明できる。
- 変更した条件と、予測・計算した結果を対応付けて説明できる。