コンピュータグラフィックスにおいて、詳細度(LOD )とは、 3D モデル表現の複雑さを指します。[ 1 ] [ 2 ] [ 3 ] LOD は、モデルがビューアから遠ざかるにつれて、またはオブジェクトの重要度、視点相対速度、位置などの他の指標に応じて低下させることができます。LOD 技術は、グラフィックスパイプラインステージ(通常は頂点変換)のワークロードを減らすことで、レンダリングの効率を高めます。モデルの視覚的な品質が低下しても、遠くにある場合や高速で移動している場合のオブジェクトの外観への影響が小さいため、多くの場合、気づかれません。
LODはほとんどの場合、ジオメトリの詳細にのみ適用されますが、その基本概念は一般化できます。近年では、ピクセルの複雑さを制御するために、シェーダー管理もLOD技術に取り入れられています。ディテールレベル管理の一種は、ミップマッピングという名称で長年にわたりテクスチャマップに適用されており、レンダリング品質の向上にも貢献しています。
オブジェクトが基となるLODアルゴリズムによって簡略化される場合と、3Dモデラーが手動でLODモデルを作成する場合の両方において、 「オブジェクトがLOD化された」と言うのが一般的です。
起源3DコンピュータグラフィックスにおけるLODアルゴリズムの起源は、1976年10月号のCommunications of the ACMに掲載されたJames H. Clark氏の記事に遡ることができます。当時、コンピュータは巨大で希少な存在であり、グラフィックスは研究者主導で開発されていました。ハードウェア自体も、アーキテクチャ面でも性能面でも全く異なっていました。そのため、今日のアルゴリズムとは多くの相違点が見られる一方で、多くの共通点も存在します。
元のアルゴリズムは、ここで議論する内容よりもはるかに汎用的なアプローチを示していました。ジオメトリ管理に利用可能なアルゴリズムをいくつか紹介した後、 「レンダリングされる環境を構造化する」ことで最も大きな成果が得られ、より高速な変換とクリッピング操作を活用できるようになったと述べられています。
同様の環境構造化手法は、様々な詳細を制御することで不要な計算を回避しつつ、十分な視覚品質を実現する方法として提案されている。
例えば、正十二面体は十分に離れたところから見ると球体のように見えるため、その距離以上から見る限りは球体としてモデル化できます。しかし、より近くから見る必要がある場合は、正十二面体のように見えます。この問題を解決する一つの方法は、必要な限りの詳細さで定義することです。しかし、そうすると、遠距離での表現に必要な詳細さをはるかに超えることになり、そのようなオブジェクトが多数存在する複雑な環境では、可視表面アルゴリズムが効率的に処理するには多角形(またはその他の幾何学的プリミティブ)が多すぎることになります。
提案されたアルゴリズムは、変換とより詳細なオブジェクトへの遷移の両方をアークにエンコードするツリーデータ構造を想定しています。このようにして、各ノードはオブジェクトをエンコードし、高速ヒューリスティックに従って、ツリーは各オブジェクトに詳細情報を提供する葉まで下降します。葉に到達したとき、より詳細な情報が必要な場合は、 Catmullの再帰的細分化などの他の方法を使用できます。。
しかし、重要な点は、複雑な環境においては、環境内の様々な物体に関して提示される情報の量は、それらの物体が視野に占める割合に応じて変化するということである。
この論文では、クリッピング(カリングと混同しないように注意が必要だが、しばしば類似している)、グラフィカルワーキングセットに関する様々な考察とそのパフォーマンスへの影響、レンダリング速度を向上させるための提案アルゴリズムと他のアルゴリズムとの相互作用について紹介する。
上記で紹介したアルゴリズムは、詳細レベルの管理手法を幅広く網羅していますが、実際のアプリケーションでは、レンダリングする情報に合わせてカスタマイズされた特殊な手法が用いられるのが一般的です。状況の要件に応じて、主に2つの手法が使用されます。
最初の方法である離散レベルオブディテール(DLOD)では、元のジオメトリの複数の離散バージョンを作成し、それぞれジオメトリの詳細度を下げていきます。実行時には、必要に応じて詳細度を下げたモデルをフルディテールのモデルに置き換えます。レベルが離散的であるため、あるモデルを別のモデルに置き換える際に、視覚的な違和感が生じる場合があります。これは、遷移中にアルファブレンドやモーフィングを行うことで軽減できます。
2つ目の手法である連続レベルオブディテール(CLOD)は、幾何学的ディテールの連続的に変化するスペクトルを含む構造を利用します。この構造をプローブすることで、状況に応じて適切なディテールレベルをスムーズに選択できます。この手法の大きな利点は、ディテールを局所的に変化させることができる点です。例えば、大きな物体の手前側は高精細に表示しつつ、奥側のディテールは同時に低減することができます。
どちらの場合も、LOD(詳細度レベル)は、詳細度の低下によってどれだけの詳細度が失われるかを判断するためのヒューリスティックに基づいて選択されます。例えば、フルディテールモデルに対するLODの幾何学的誤差を評価することによって行われます。オブジェクトは、ヒューリスティックを満たすために必要な最小限の詳細度で表示されます。このヒューリスティックは、許容できるレベルの視覚的品質を維持しながら、パフォーマンスを最大化するために、幾何学的詳細度を可能な限り最小限に抑えるように設計されています。

離散LOD(DLOD)の基本概念は、同一オブジェクトを表現するための様々なモデルを提供することです。これらのモデルを取得するには、多くの場合複雑で、多くのポリゴン削減技術の対象となる外部アルゴリズムが必要です。後続のLODアルゴリズムは、これらのモデルが既に利用可能であることを前提としています。
DLODアルゴリズムは、メモリに容易に収まる小規模なデータセットを扱う、パフォーマンス重視のアプリケーションでよく使用されます。アウトオブコアアルゴリズムも使用できますが、情報粒度がこの種のアプリケーションには適していません。この種のアルゴリズムは、処理回数が少ないため、一般的に動作させやすく、パフォーマンスの向上とCPU使用率の低減の両方を実現します。
DLOD 手法は、複雑なアニメーション手法を含む可能性のある「スタンドアロン」の移動オブジェクトによく使用されます。ジオミップマッピングには別のアプローチが使用されます。地形レンダリングアルゴリズムとして広く用いられているのがgeomipmappingです。これは、グラフィック的にもトポロジー的にも「オブジェクト」メッシュとは異なる地形メッシュに適用できるためです。誤差を計算してそれに基づいてメッシュを単純化するのではなく、geomipmappingは固定の縮小方法を採用し、導入された誤差を評価して、誤差が許容範囲内となる距離を計算します。このアルゴリズムは単純ながら、十分なパフォーマンスを発揮します。
簡単な例として、球体を考えてみましょう。離散的なLODアプローチでは、異なる距離で使用するモデルを一定数キャッシュします。モデルは数学的な定式化によって容易に手続き的に生成できるため、表面上に配置された異なる数のサンプル点を使用するだけで、必要なさまざまなモデルを生成できます。この処理はLODアルゴリズムではありません。
現実的な変換バウンドシナリオをシミュレートするには、専用のアプリケーションを使用できます。シンプルなアルゴリズムと最小限のフラグメント操作を使用することで、CPUバウンドが発生しないようにします。プログラムは各フレームで各球体の距離を計算し、この情報に基づいてモデルプールからモデルを選択します。概念を分かりやすく示すために、各モデルが使用される距離はソースコードにハードコーディングされています。より高度な方法としては、選択された使用距離に応じて適切なモデルを計算する方法があります。
OpenGLは、小さなバッチ処理を効率的に管理し、各モデルを表示リストに格納することで通信オーバーヘッドを回避できるため、レンダリングに使用されます。さらに、理想的には無限遠に配置された2つの指向性光源を適用することで、頂点負荷を軽減します。
以下の表は、LOD(レベル・オブ・ディテール)を考慮したレンダリングと、フルディテール(総当たり)方式のパフォーマンスを比較したものです。
ハードウェアは大量のディテール処理に特化しているため、低ポリゴンオブジェクトのレンダリングでは最適なパフォーマンスが得られない場合があります。HLODは、異なるオブジェクトをグループ化することでこの問題を回避します。これにより、効率性が向上するとともに、近接性も考慮に入れることができます。HLODはシーングラフのブランチ全体を表すため、HLODをレンダリングすることで、レンダラーはそのノードの子孫をスキップし、大きなシーンの全体を一度に簡略化できます。[ 4 ] [ 5 ]
LODは3Dビデオゲームで特に役立ちます。ビデオゲーム開発者はプレイヤーに広大な世界を提供したいと考えていますが、ハードウェア、フレームレート、ビデオゲームグラフィックスのリアルタイム性によって常に制約を受けています。1990年代に3Dゲームが登場した当初、多くのビデオゲームは遠くの構造物やオブジェクトをレンダリングしませんでした。近くのオブジェクトのみがレンダリングされ、遠くの部分は徐々にフェードアウトし、実質的に遠景の霧を実装していました。LODレンダリングを使用するビデオゲームは、この霧の効果を回避し、より広い領域をレンダリングできます。3DビデオゲームにおけるLODレンダリングの初期の注目すべき例としては、『The Killing Cloud』、『Spyro the Dragon』、『Crash Bandicoot: Warped』、『Unreal Tournament』 、 『Serious Sam: The First Encounter』などがあります。現代のほとんどの3Dゲームは、LODレンダリング技術を組み合わせて使用しており、大きな構造物には異なるモデルを使用し、草や木などの環境の詳細には距離カリングを使用しています。その効果は、たとえばプレイヤーキャラクターが仮想地形の上空を飛行したり、遠距離を見るためにスナイパースコープを使用したりする場合など、まだ目立つことがあります。特に草や葉は近づくと飛び出してくるように見え、これはフォリッジカリングとも呼ばれます。[ 6 ] LODは、フラクタル地形をリアルタイムでレンダリングするためにも使用できます。 [ 7 ] Unreal Engine 5のNaniteシステムは、基本的にオブジェクト全体ではなくメッシュ内の詳細レベルを実装します。
LOD(詳細度レベル)は、 GISや3D都市モデルにおいて同様の概念として用いられています。これは、現実世界の地物がどれだけ詳細にマッピングされているか、そしてモデルが現実世界の地物にどれだけ忠実であるかを示す指標です。幾何学的複雑さに加えて、空間的・意味的な整合性、テクスチャの解像度、属性といった他の指標も、モデルのLODにおいて考慮されることがあります。標準規格であるCityGMLには、最も代表的なLOD分類の一つが含まれています。
GISにおける「LOD」のアナロジーは、一般化と呼ばれます。