「ゲームプログラミング/3Dグラフィック」の版間の差分
削除された内容 追加された内容
編集の要約なし |
編集の要約なし |
||
2,509 行
==== 黒コピー拡大背景の方法 ====
;シルエットなんとか法
手法のひとつとして、単に人物の画像をコピーして、それをすべてシルエット上に真っ黒にコピーしてから、やや大きく拡大し、さらにその上にもとの画像(黒くしてない画像)を載せると、輪郭ちかくのハジッコのほうだけは手前の画像に隠されずに奥側の黒い画像が見えるので、あたかも輪郭線っぽく見えるという手法がある。
2,524 ⟶ 2,525行目:
;黒ポリゴンを少し後ろに追加の方式(「裏ポリゴン」なんとか法)
なお、シルエットの2次元黒画像を転写するかわりに、黒色の3Dポリゴンを拡大コピーして、表画像から少しだけ奥の場所に黒ポリゴンを配置する方法もあるが、これだとポリゴン描画量が倍増してしまうので(単純計算で2倍のポリゴン数になる)、ゲームとしては(ゲームでは描画の軽量化・高速化が必要なので)、ややデメリットがある。
どうしても黒ポリゴン追加の方式をゲームで活用する場合、ローポリ(ポリゴン数を低くする)にする必要があるだろう。
なお、後述するポリゴンの法線には、表向きと符号を裏返した裏向きの2種類があるので、背景黒側の法線を裏返して、そして法線がカメラから見て裏向き(法線とカメラの向きが同じ向きのとき)の場合の被写体を黒く塗ることで、この方式の輪郭に流用できる。俗に「裏ポリゴン」なんとか方式とか言われる。
シルエット法も裏ポリゴン法も発想は同じで、違いは単に、黒い背景画像の追加をどの段階で行うかの違いだけである。
2,635 ⟶ 2,642行目:
フィレットがあってもどうしても輪郭を検出したい場合、後述のいくつかの方法がある。
# テクスチャ的に、輪郭線として検出したい場所を最初から輪郭線の色でモデル表面に塗っておく方法。
2,655 ⟶ 2,662行目:
対策として、カメラと被写体の距離や角度によって、輪郭にしたい部分のモデルだけをこっそりと輪郭テクスチャなしのモデルに入れ替える手法だと(たとえばカメラが接写になるほど近くなった場合には、輪郭部テクスチャをオフにして、テクスチャ無し3Dモデルに入れ替えるなどの方法)などが考えられる。ただし、少しメンドウくさい。
|