XIIIの秘密〜プログラマブルシェーダを使わなくてもできる効果的な表現(中編)(1/2 ページ)

» 2004年03月24日 18時43分 公開
[トライゼット西川善司,ITmedia]

大胆な陰影処理はこうして作り出されている

 まずは、「セル調の陰影処理」の実現手法から見ていこう。

 アニメ画として描かれるオブジェクトには、グラデーション的な陰影がなく、明るいか暗いかだけの「二値的なドラスティックな陰影」だけがある。これを突き詰めて考えれば光が「当たっているか」「当たっていないか」の判断だけで陰影が描かれることになる。

 ポリゴン単位で「当たっているか/否か」の判断は、そのポリゴンの向き(すなわち法線ベクトル)が光源方向に「向いているか」「向いていないか」を判断できればいい。これは高校レベルの幾何学に出てくる「ベクトルの内積」の値で判断すればいい。

 具体的には、ポリゴンの法線ベクトルと光源の向きを表す光源ベクトルの内積を計算して、この値が正か負かで判断できる。ちなみに負であればその面は光源方向に向いていないことになる。

 実際の一般的なセルシェーディングでは、ポリゴン単位の処理では大ざっぱすぎるため、もう少し細かく処理している。処理の前段階では「明るい」「暗い」だけを描いたツートーンテクスチャをあらかじめ用意しておく。

 描画するポリゴンを形成している各頂点単位ごとに、前述した「光源方向に向いている」「向いていない」を判断するための演算を行い、その結果をテクスチャ座標として出力して、先ほどのツートーンテクスチャでテクスチャマッピングするのだ。

 ただし、XIIIではこのような一般手法を使っていない。効率が良いか悪いかの議論は別にして、ちょっとユニークな手法を採用している。

 各頂点単位ごとに頂点の法線ベクトルと光源ベクトルの内積を求めるのは、一般的な方法と同じだが、この値がゼロになるところに新たな頂点を線形補外(補外=extrapolate 生成するという意味でつかっていい)するのだ。

 これにより「光に当たっているポリゴン」「光が当たっていないポリゴン」というようにポリゴンレベルで二分できることになる。この場合、最終描画時には

  • 光の当たっているポリゴンは明るく
  • 光の当たらないポリゴンは暗く

とそれぞれ描画していく。

 ややまどろこしい感じは否めないが、この手法によってプログラマブルシェーダを活用しなくてすむため、GeForce2系のようなクラシックなGPUでも動作できるというわけだ。

何となく先進的なイメージの漂うセルシェーディングだが、XIIIで採用している手法はプログラマブルシェーダを必要としないので互換性は高いといえる

ちなみに、筆者が試したところでは、ノートPCなどに使われているチップセット内蔵グラフィックスコア(Intel 855GMなど)でもXIIIのセルシェーディングを動作させることができた

輪郭線はこうして描かれている

 続いて、NPR的表現手法には必要不可欠な輪郭線の描画方法について見ていこう。これもまた、XIIIではユニーク、かつ大胆な方法で実現している。

 まず、3Dモデルを1つ用意する。これを便宜上「本体モデル」と呼ぼう。下図で言うところの左端の青い球体だ。

 次に、その本体モデルに対し、まったく同形で動きも完全にシンクロするが、本体モデルより一回り大きいモデルを用意する。これを便宜上「被せモデル」と呼ぶことにする。

 この被せモデルを本体モデルに被せるのだ。これが下図の真ん中にある状態となる。風船人形を2体用意し、大きさを微妙変えて2体被せ重ねて膨らませたイメージだ。

 この状態で、被せモデルを構成しているポリゴンのうち、視線に向いているポリゴン(視点から見て“表向き”のポリゴン)だけを透明にし、視線に向いていないポリゴン(視点から見て裏向きのポリゴン)だけを黒色で描画してやる。

 こうすると「実際に見えるもの」は、本体モデル前面と、その外郭にはみ出して見える一回り大きい被せモデルの背面ということになる。はみ出して見える被せモデルの背面は、先ほど説明したように単色の黒で描かれるのでこれが画面上では輪郭に見える、という寸法だ。これが下図にある右端の状態となる。

 この方法もプログラマブルシェーダを活用しないので互換性が高いという利点がある。

互換性が高い手法ではあるが、レンダリングのときに、一つのキャラクターに対して本体モデルと被せモデルの両方の処理を行わなければならない。そのため、処理ポリゴン数は単純計算でそのままの2倍になってしまう欠点も併せ持つことになる

詳しくはあとで説明するが、一部の輪郭は決めうちでテクスチャに描かれている。XIIIの手法では、原理上、描かれない輪郭線が多発するために、最新のセルシェーディングでは、この手法が採用されることは少ないようだ
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2026年02月22日 更新
  1. 16GB版と8GB版のすみ分けが進むRTX 5060 Ti――HDD「完売」報道の影響は? 今週末のアキバパーツ事情 (2026年02月21日)
  2. マウスの概念が変わる! ロジクールG「PRO X2 SUPERSTRIKE」が切り開く“身体感覚”と直結する新たなクリック体験 (2026年02月18日)
  3. モニター台とドッキングステーションが合体した「Anker USB-C ハブ 10-in-1 Monitor Stand」が28%オフの1万7990円で販売中 (2026年02月20日)
  4. 上下2画面で作業効率を大幅に高める「InnoView デュアル モバイルモニター」が36%オフの2万8212円に (2026年02月20日)
  5. ルンバが日本のために本気を出した! 「Roomba Mini」が示す“小が大を兼ねる”新基準とは (2026年02月21日)
  6. 「UGREEN ワイヤレスHDMI送受信機」が25%オフの8999円に (2026年02月19日)
  7. 内蔵タッチパッドが変形する「EWiN 折りたたみワイヤレスキーボード」が24%オフの5319円で販売中 (2026年02月20日)
  8. 微細な造形を圧倒的な解像度で実現する3Dプリンタ「ELEGOO Saturn 4 Ultra 16K」が20%オフの7万2798円に (2026年02月20日)
  9. ホール効果スティックで高耐久、精密な操作を実現する「BIGBIG WON BLITZ2 TMR コントローラー」がセールで9027円に (2026年02月19日)
  10. 繰り返し使える「充電式カイロ」5製品を試す そもそもリチウムイオン電池内蔵で温めても大丈夫? (2026年02月20日)
最新トピックスPR

過去記事カレンダー

2026年