【CG】パストレーシング入門で参考にした日本語資料

先日C++とQtで基礎的なCPUパストレ―サーを書いてみました。こんな感じです。

f:id:y_nsk:20200513002734p:plain

サポートした機能は主に以下です。

  • モンテカルロ積分によるパストレーシング
  • 完全拡散面、完全鏡面、ガラス
  • Image Based Lighting
  • Bounding Volume Hierarchy
  • Next Event Estimation
  • ( FBXインポート )

これらを実装する際に参考にした日本語の資料をまとめます。資料を作成してくださった方々には心から感謝を申し上げます。(レイトレを既に触られている方々にはよく知られている資料だと思います)

Photorealism

booth.pm

基礎的なレイトレーシングからパストレーシング、さらにIBL(Image Based Lighting)、被写界深度まで網羅しています。入門用に非常に丁寧に記述されており、分かりやすいです。

数学的、物理的にも正確な記述がなされているため、理論面と実装面を同時に学習できます。本当にお世話になりました。また、ソースコードも各章ごとに付属しており、簡単に動かしてみることが可能です。

Boothで1000円で販売されていますが、明らかにそれ以上の価値があると思います。

作者は飲茶Wizさんです。ありがとうございました。

飲茶Wiz🍵 (@yumcyawiz) | Twitter

edupt

github.com

www.slideshare.net

入門者のための物理ベースレンダラです。ソースコードが公開されていて、丁寧な日本語コメントもつけられているので非常に勉強になりました。

さらに丁寧な解説スライドも公開されているため、コードと一緒に読むとよさそうです。

作者はholeさんです。ありがとうございました。

hole (@h013) | Twitter

memoRANDOM

rayspace.xyz

レンダリングに関するさまざまな技術を非常に詳しく記述されているサイトです。理論面を学ぶために参考にさせていただきました。図も豊富に載っているので、一見複雑な数式も理解しやすくなっています。

特に入門者としてはモンテカルロ積分、パストレーシング、Next Event Estimationなどのページなどがとても参考になりました。

モンテカルロ法 - Computer Graphics - memoRANDOM

レンダリング方程式1 - Computer Graphics - memoRANDOM

パストレーシング - Computer Graphics - memoRANDOM

パストレーシング実装 - Computer Graphics - memoRANDOM

作者はShockerさんです。ありがとうございました。

Shocker (@Shocker_0x15) | Twitter

BVHのはなし

shinjiogaki.github.io

Bounding Volume Hierarchyについて、Surface Area Heuristicなどから発展的な内容まで解説されている記事です。発展的内容は私のような初心者には難しかったのですが、基本的な理論の学習のためにお世話になりました。

作者はShinji Ogakiさんです。ありがとうございました。

Shinji Ogaki (@ShinjiOgaki) | Twitter

おわり

その他にも多くの方が素晴らしい記事やコード、サービスを作ってくださっています。私はまだ触れていないのですが、「はじめようレイトレーシング」というサービスも面白そうです。

私は基本中の基本までしか実装していませんが、綺麗な絵が出たり、大幅に高速化できたりと非常に楽しい経験でした。