miniRT

C言語で実装したレイトレーサー

CRay TracingGraphics

概要

C言語でレイトレーシングエンジンを実装する2人チームによるプロジェクト。カメラからピクセルごとにレイを飛ばし、シーン内のオブジェクトとの交差判定を行い、Phongライティングモデルで色を決定する。球体、平面、円柱の3種のプリミティブオブジェクトに対応し、Diffuse、Mirror、Metal、Glassの4種マテリアルを実装。再帰レイトレーシングにより、鏡面反射やガラスの屈折といった光学効果を実現した。

miniRTminiRTminiRT

苦労・工夫した点

最も苦労したのは、数学の方程式をコードに置き換えるプロセスだった。レイと球体の交差判定では二次方程式を解く必要があり、レイと平面の交差ではベクトルの内積を使った幾何学的な計算が必要になる。教科書の数式をそのままコードにしても正しく動かないことが多く、まず自分の手で方程式を解いて納得感を得てからコードに落とし込むようにした。特にPhongライティングの各成分(環境光、拡散反射、鏡面反射)の計算では、それぞれの数式が何を表しているのかを物理的に理解することが、正しい実装につながった。 minishellに続く2回目のペア開発で、前回の経験を活かしてGitHubのPRベースのワークフローをスムーズに運用できた。担当をレンダリング側とパーサー側に分離し、共有ヘッダのインターフェースを通じて統合する設計はminishellと同様の構造だが、今回はより自然に役割分担ができた。

ポイント

レイ生成 → 交差判定 → ライティングの3段階パイプライン設計。入力であるシーンファイルのパースから、カメラによるレイ生成、各プリミティブとの交差判定、Phongモデルによるライティング計算まで、処理が明確なステージに分かれている。各ステージが独立した責務を持つことで、新しいプリミティブやマテリアルの追加が容易な拡張性のある構造になっている。実際に、必須要件のDiffuseマテリアルに加えてMirror、Metal、Glassの3種を追加で実装できたのは、この設計による。

他のプロジェクト

Urban Reflection

「JUMPSTARTER 2023 Tech by the Harbour」(香港)のアートインスタレーション

Art InstallationCommission

TOTO Technical Center Tokyo

TOTOテクニカルセンター東京のデジタルコンテンツ

Interactive SignageApp DevelopmentCommission

Recursive Orchestra

Live StageAICommission

HOTORIUM

安川メカトレック末松九機株式会社新社屋のアトリウム空間演出

Art InstallationCommission

AIR HUB TOKYO "Clean Air Vision”

パナソニック「AIR HUB TOKYO」のビジュアルサイネージ、タブレットアプリ

Interactive SignageApp DevelopmentCommission

Reflective tree

六本木ヒルズ・ウエストウォークのクリスマスインスタレーション

Art InstallationKineticCommission

sonus-oleum

Live StageArt InstallationOriginal

WOW 25th Anniversary Exhibition - Unlearning the Visuals

ビジュアルデザインスタジオWOWの設立25周年を記念した展覧会

ExhibitionArt InstallationOriginal

ft_transcendence

ブラウザで動作するリアルタイムオンラインお絵描き当てゲーム

Web AppTypeScriptReactFastityNetworkGame

Yakushiji Hikari Kyoya -inori-

meme nippon project新作歌舞伎舞踊の映像演出

Live StageCommission

ft_irc

C++98で実装したIRCサーバー

C++IRCNetwork

Celvoke 2022 S/S Key visual

Celvoke 2022 S/S Makeup Collectionキービジュアル

VFXCommission

Minishell

Bashの仕様に基づくシェルの再実装

CShell

NEM-PA Series M.2 2280 Gaming SSD

NEM-PA Series M.2 2280 Gaming SSDの初公開映像

Full-CG VideoCommission

Fluctuation landscape

The MixC(上海)の常設インスタレーション

Art InstallationCommission

Contour

ボリュメトリクスを用いたWOWオリジナルショートムービー

Full-CG VideoCommission

CodeHero by shibajuku

HTML + CSSリファレンスサイト

WebsiteHTMLCSS

Virtual Event Platform Concept movie

ドコモの独自仮想空間「Virtual Event Platform」コンセプト映像

Live ActionVFXCommission

Moment

風の計測結果を3次元データに変換した彫刻作品

Art InstallationC++SimulationCAD

SFC Creative Week

大学のキャンパスを活用して学生主導で企画実施した展示会

Exhibition