Skip to content
Copied!
published on 2026-09-17

13. これから

Ray Tracing: The Rest of Your Life (v3.2.3): 13 The Rest of Your Life / 3.13 これから

「週末レイトレーシング」三部作の最終章です。本書では少人数のプロダクション用レイトレーサーを実装するための基礎知識を学びました。あとは残りの人生をかけてレイトレーシングに取り組んでいく時間です。

本書を通じて実装したもの

第3編で積み上げたものを振り返ります。

モンテカルロ積分の基礎(第2〜5章)

  • 一次元 MC 積分と球面方向の MC 積分
  • 重点サンプリング:密度の高い方向を多くサンプリングして分散を削減する

PDF の階層設計(第6〜10章)

クラス役割
CosinePdfLambertian 散乱のコサイン重み付き方向生成
HittablePdf光源形状に向けた幾何サンプリング
MixturePdf2 つの PDF を 1:1 で混合

アーキテクチャの整理(第11〜12章)

  • ScatterRecord enum で鏡面散乱と拡散散乱を型安全に区別
  • PDF の構築責任をレンダラーからマテリアルへ移動
  • アルミ箱とガラス球を含むコーネルボックスシーンで動作確認

残された課題

原著は次のトピックを今後の発展として挙げています。

速度の改善

  • 現在の実装はシングルスレッドのシリアル実行
    → 今後の展開:rayon を使ったスキャンライン単位の並列化

サブピクセルサンプリングの改善

  • ランダムサンプリングの代わりに Halton 数列などの準乱数列を使うと収束が速くなる

三角形メッシュのサポート

  • 現在の primitives は球・矩形・直方体のみ
  • 一般的なレンダラーは .obj / .gltf などから三角形メッシュを読み込む

マイクロファセット BRDF

  • Metal の fuzz は簡易モデル
  • GGX や Beckmann などのマイクロファセット分布を使うとより物理的に正確な金属・ガラスを表現できる

媒質(ボリューム)の発展

  • 第2編の ConstantMedium は均質な媒質のみ
  • 不均質媒質(煙,雲,炎)には経路長サンプリング(delta tracking)が必要

まとめ

本シリーズを通じて,Rust で完全動作するレイトレーサーを一から実装しました。
WebAssembly として配信しているため,すべてのデモはブラウザ上で実行できます。

物理ベースレンダリング(PBR)・双方向散乱分布関数(BSDF)・フォトンマッピング・パストレーシングの収束加速など,さらに深く探求したい方は以下の資料が出発点になります:

  • Physically Based Rendering: From Theory to Implementation(Pharr, Jakob, Humphreys)
  • Advanced Global Illumination(Dutré, Bekaert, Bala)
  • Pixar's RenderMan 関連論文

「週末レイトレーシング」が示したシンプルな原理から,プロダクション品質のレンダラーへの道のりは長いですが,基礎はすでに揃っています。