[[cg:start|CG用語集トップ]] > [[cg:rendering:start|第3章 レンダリング]] ====== レイキャスティング法 ====== ===== 概要 ===== レイキャスティング法は、画面の各画素からボリュームデータ内へレイを発生させ、そのレイに沿って値をサンプリングしながら画像を作る手法である。ボリュームレンダリングの直接法として使われ、空間内の濃度や密度を半透明に重ねて表示できる。 {{:cg:figures:chapter03:fig_3_41_ray_casting_volume_rendering.png?600|レイキャスティングによるボリュームレンダリングの原理}} ===== 詳しい説明 ===== レイキャスティング法では、画面上の1画素に対応するレイを考える。そのレイがボリューム内を通過する位置で、[[cg:modeling:volume_data|ボリュームデータ]]の値を一定間隔で調べる。得られた値は[[cg:rendering:transfer_function|トランスファファンクション]]によって色や不透明度に変換され、奥から手前、または手前から奥へ積み重ねられる。 この方法では、物体表面を明示的に取り出さなくても、内部の濃淡や層構造を画像として表現できる。ただし、画素ごとに多くのサンプリングを行うため、計算量が大きくなりやすい。[[cg:rendering:ray_tracing_algorithm|レイトレーシング法]]と名前は似ているが、ボリュームデータの可視化では、空間内の値を積算する点が重要である。 ===== CG制作との関係 ===== CG制作では、雲、煙、炎、医療画像、密度分布などの表現で考え方が役立つ。形状の面だけではなく、空間内の値そのものを描くため、内部の濃淡を含む表現に向いている。 ===== ゲーム開発との関係 ===== ゲームではリアルタイム性が必要なため、サンプリング回数を減らしたり、低解像度で処理したりする工夫が必要になる。レイを進めながら値を集める考え方は、ボリューム雲や霧、範囲エフェクトの理解につながる。 ===== 制作・実装での例 ===== サンプル間隔を小さくすると細かい構造を拾いやすいが、処理負荷が高くなる。逆に間隔を大きくすると高速になるが、層が粗く見えたり、薄い構造を見落としたりする。 ===== 検定対策ポイント ===== レイキャスティング法は、ボリュームレンダリングの直接法として覚える。画素ごとにレイを出し、ボリューム内をサンプリングし、色と不透明度を積算して画像を作る、という流れが重要である。 ===== 関連用語 ===== * [[cg:rendering:volume_rendering_no238|ボリュームレンダリング]] * [[cg:rendering:transfer_function|トランスファファンクション]] * [[cg:rendering:ray_marching_algorithm|レイマーチング法]] * [[cg:modeling:voxel|ボクセル]] * [[cg:modeling:volume_data|ボリュームデータ]] ===== タグ ===== * CGエンジニア検定 * 第3章 ---- [[cg:rendering:start|← 第3章 レンダリング の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]