セルロイドシェーディングについて詳しく解説

導入

左側が従来のレンダリング、右側がセルロイドシェーディング

セルロイド シェーディング、またはその英国主義のセル シェーディングおよびトゥーン シェーディングは、画像合成で使用される非フォトリアリスティックな照明モデルです。 「漫画」のような外観の画像を生成できます。

グラフィック的には、レンダリングは伝統的な漫画のように、マークされた輪郭と減色されたカラーパレットによって特徴づけられ、したがってセルロイドを参照しています。この手法を指すために「カートゥーン」という用語もよく使用されます。漫画のスタイルに合わせて、キャラクターの顔の表情は一般に誇張されていますが、これは必須ではありません。

ゲームXIIIの場合、セルロイド シェーディングの使用は「コミック ストリップ」または「漫画」のレンダリングに起因すると考えられます。

この技術の商業的啓示は、2000 年にリリースされたゲーム「ジェット セット ラジオ」でセガから行われました。この技術の発明を任天堂のゲーム「スーパー マリオ ワールド 2: ヨッシー アイランド」に与える人もいます。しかし、このグラフィック技術を普及させたビデオゲームは、2003 年にリリースされた『ゼルダの伝説のタクト』であることは間違いありません。さらに最近では、Real Time Worlds によるCrackdown が現実と漫画の融合をもたらしました。この手法の目的は、異なるレンダリングを取得することですが、場合によっては、テクスチャが存在しない場合が多いため、テクスチャの処理能力を節約することもあります。

セルロイドシェーディングについて詳しく解説

リアルタイム 3D のためのセルロイド シェーディング技術

リアルタイム 3D セルロイド シェーディングを実現するには、さまざまな方法があります。これらのメソッドの中には、すべてのグラフィックス カードに存在する基本機能を使用するものもありますが、ピクセル シェーダーなど、最近のカードでのみ利用可能な拡張機能を使用するものもあります。これらすべての方法には、3D モデルの輪郭のトレースと影のしきい値処理 (つまり、一連のグレー レベルによるグラデーション シャドウの置き換え) という 2 つの効果が追加されるという共通点があります。このレンダリング モードでは、リアリズムは低下しますが、オブジェクトを複数の段階でレンダリングする必要があるため、リソース (CPU と GPU の両方) の点で基本的な表示よりも高価になります。

3 つのステップでのセルロイド シェーディングの例: 輪郭、ベース テクスチャ、シャドウのしきい値処理。

輪郭追跡

3Dオブジェクトの輪郭をトレースするには 2 つの方法があります。 1 つ目は、オブジェクトの背面の輪郭のみを太い黒い線の形で表示するものです。背面の表示は、背面カリング(通常の 3D レンダリングでオブジェクトの前面のみを描画できるようにする最適化機能) を逆にするだけで、グラフィック カードによって管理されます。このステップが完了したら、以前に表示されていた背面が輪郭として現れるように、オブジェクトを通常どおりに再表示する必要があります。この方法には実装が簡単であるという利点がありますが、大きな欠点は、オブジェクトが遠ざかると輪郭が大きくなるような錯覚を与えることです。実際には、線の太さは一定のままです。

輪郭トレースは、2 つのほぼ同一の 3D オブジェクト、つまりオブジェクト自体とそのエンベロープ (最初のオブジェクトを単に拡大するだけでは生成できません) を使用して実行することもできます。次に、封筒の裏面を黒で表示し、次にオブジェクトを表示することによって輪郭が取得されます。エンベロープはオブジェクトよりわずかに大きいため、エンベロープの端が見えます。ゲーム XIII で使用されているこの方法は、距離に応じた拡大を行わずに、以前の方法よりも正確な輪郭を生成しますが、オブジェクトとそのエンベロープを保存するためにより多くのメモリを必要とします。

シャドウのしきい値

このステップでは、オブジェクトの前面が照明を受けずに表示されるため、影が除去され、オブジェクトのテクスチャに最大の明るさが与えられます。このテクスチャには 2 つのレイヤーが必要です。最初のレイヤーにはオブジェクトのテクスチャが含まれます。 2 番目には、シャドウのしきい値処理を可能にするグレー レベルが含まれています。この 2 番目のレイヤーは半透明なので、オブジェクトの元のテクスチャに重ねられます。最初のレイヤーのテクスチャ座標は固定されていますが、2 番目のレイヤーの座標はフレームごとに再計算されます。オブジェクトの各頂点について、2 番目のテクスチャの座標は、頂点の法線ベクトル​​ベクトルによって形成される角度に依存します。角度が 180° の場合、頂点は正面から来る光線によって照らされるため、この頂点のテクスチャ座標を最大グレー レベル、つまり(したがって透明) に配置します。角度が 90° の場合、ライトはオブジェクトに影響を与えずに「かすめ」ているため、テクスチャ座標を黒に配置します。これら 2 つの極端な値の間には、しきい値処理されたシャドウ効果を生成するさまざまなレベルのグレーが表示されます。

シャドウマップ.png
影の生成に使用されるテクスチャの例。

この方法ではマルチレベル テクスチャを使用します。これには、グラフィック カード上に適切な拡張機能 (OpenGL の GL_ARB_multitexture など) が必要です。この拡張機能は、2 つのステップでオブジェクトを表示することによって回避できます。最初にオブジェクトとそのテクスチャを表示し、次に同じオブジェクトをグレースケール テクスチャ (半透明) のみで表示します。欠点は、2 つのパスに分割すると計算時間が増加することです。

ピクセルシェーダーの使用

最近の十分に強力なグラフィックス カードでは、セルロイド シェーディングにピクセル シェーダを使用できます。これらを使用すると、CPU が特定の計算から解放されますが (前述の方法を参照)、それでも GPU リソースを要求します。実際、輪郭のしきい値処理とトレースには画像のピクセルごとに計算が必要ですが、シェーダーを使用しない方法はオブジェクトのはるかに少ない頂点でしか機能しません。シャドウのしきい値処理は、フラグメントシェーダによって実行されます。各フラグメント (ピクセル) の明るさは、光と考慮されているの法線との間の角度によって異なります。

  1. تظليل كرتوني – arabe
  2. Cel shading – catalan
  3. Cel Shading – allemand
  4. Cel shading – anglais
  5. Sombreado plano (animación) – espagnol
  6. سایه‌زنی سل – persan

セルロイドシェーディングについて詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。