[[cg:start|CG用語集トップ]] > [[cg:rendering:start|第3章 レンダリング]] ====== スキャンライン法 ====== ===== 概要 ===== スキャンライン法は、画面を走査線ごとに処理し、各線上でどの面が見えるかを決める隠面消去の手法である。画面全体を一度に扱わず、線単位で処理する。 {{:cg:figures:chapter03:fig_3_4_scanline_algorithm.png?600|スキャンラインアルゴリズム}} {{:cg:figures:chapter03:fig_3_5_scanline_drawing_process.png?600|スキャンライン法の描画過程}} ===== 詳しい説明 ===== スキャンライン法では、投影面を水平な[[cg:rendering:scanline|スキャンライン]]に分ける。各スキャンラインについて、ポリゴンと交差する区間を求め、その区間でどのポリゴンが手前にあるかを判定する。スキャンラインごとに処理するため、必要なデータを限定しやすく、メモリ使用量を抑えられる。一方で、効率よく実装するには、隣り合う画素や線で似た性質が続く[[cg:rendering:coherence|コヒーレンス]]を利用する必要がある。 ===== CG制作との関係 ===== CG制作では直接操作する用語ではないが、立体の前後関係を画面上で正しく表すための古典的な可視面判定として理解しておくとよい。レンダリングアルゴリズムの歴史的な基本でもある。 ===== ゲーム開発との関係 ===== ゲーム開発では、現代のGPUではZバッファ法が主流だが、スキャンライン法の考え方は、画面を行単位や領域単位で処理する発想の基礎になる。ソフトウェアレンダラを学ぶときにも重要である。 ===== 検定対策ポイント ===== スキャンライン法は、[[cg:rendering:scanline|スキャンライン]]単位で可視部分を決める方法である。[[cg:rendering:depth_sort_algorithm|奥行きソート法]]のようにポリゴン全体を並べる方法とは処理単位が違う。 ===== 関連用語 ===== * [[cg:rendering:scanline|スキャンライン]] * [[cg:rendering:coherence|コヒーレンス]] * [[cg:rendering:hidden_surface_removal_visible_surface_determination|隠面消去]] * [[cg:rendering:depth_sort_algorithm|奥行きソート法]] * [[cg:rendering:z_buffer_algorithm|Zバッファ法]] ===== タグ ===== * CGエンジニア検定 * 第3章 ---- [[cg:rendering:start|← 第3章 レンダリング の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]