レイトレ合宿10でポータルをテーマにしたアニメーションを作成しました

10月11日(金)~10月13日(日)に熱海の初島で開催されたレイトレ合宿10に参加しました。

私はポータルをテーマにしたアニメーションを作成しました。

前半はプリミティブな屋内シーン、後半はレイマーチングを用いた複雑なジオメトリーの屋外シーンと、対照的な2つのシーンを作成しました。

水銀のような不思議な球体がポータルで2つのシーンを移動するという、少しストーリー性のあるアニメーションを目指しました。

自作のレンダラーで 256秒の制限時間 でレンダリングして同率6位(22人中)をいただきました!

次の動画は合宿運営側で制限時間内にレンダリングしたものです。

時間制限なしで、「4K解像度 + 0.5倍速 + 最後のフェードアウト演出あり」でレンダリングした動画をYouTubeにアップロードしました。

レイトレ合宿とは?

レイトレ合宿は、オフラインレンダリングのオフライン集会です。

この合宿の本戦では、参加者が自作のオフラインレンダラーを用いて、美しいレンダリング画像を競い合います。 参加者は自分の技術力と創造力を駆使して、他にはない独自のレンダラーを開発します。

毎年レンダリングの制限時間が短縮されるため、その制限の中でどれだけ高品質な動画(もしくは画像)を生成できるかが試されます。

合宿は本戦だけでなく、セミナーやレクリエーションも充実しており、参加者同士の交流や知識の共有も行われます。 セミナーでは最新の技術動向やトレンドが紹介され、レクリエーションではレイトレに関連するユニークな内容が催されます。

なお、開催地は毎年ランダムにサンプリングされます。 去年のお寺での質素な合宿とは対照的に、今年は熱海の初島のリゾートホテルでのラグジュアリーな合宿でした。分散は高そうです。

去年のレポートはこちらです。

天候にも恵まれて、島や海の風景はとても綺麗でした。

当日の詳細な様子については、@TTRS_Yoshi_CGさんによるレポートがとても参考になります。 ぜひ合わせて読んでください。

本戦の自作レンダラーの紹介

GPUレンダラーをOptiXで開発しました。レンダラーの名前はredflashです。

こちらがレンダラーのプレゼン資料です。

レンダラーのGitHubリポジトリはこちらです。

本戦の実行環境

レイトレ合宿10の本戦では、AWSのEC2環境上で自作のレンダラーを実行する必要があります。インスタンスタイプの選択肢は以下の通りです。

  • GPUレンダラーの場合: g5.xlarge(私はこちらを選択)
  • CPUレンダラーの場合: c7i.metal-48xl

昨年は2台のインスタンスが利用できましたが、今年はシンプルに1台構成に戻りました。

1台に戻った理由は聞いていませんが、レンダラーの実行が複雑すぎたからかもしれません。

詳細なレギュレーションはこちらに記載があります。

ポータルの実装

今年は「ポータル」をテーマに選びました。

他の人と被らなそうな、ビジュアル的にも面白いテーマを選んだつもりでしたが、3位のSamuelさんとテーマが被ってしまったのは予想外でした。

ポータルの実装方法としてはシンプルなアプローチを取りました。2つのシーンを用意し、レイがポータルを通過することでシーンをトグルさせるようにしました。

ポータル用のBSDFを用意し、シーンの切り替えはBSDF内で行うことで、レンダラー本体のポータル専用処理を最小限に抑えました。

箇条書きにすると、以下の流れです。

  • シーンを2つ用意
    • OptiXのSceneGraphを2つ用意
    • scene0(前半の屋内)とscene1(後半の屋外)
  • rtPayload構造体にscene_idを定義
    • scene_idでトレースするシーンを切り替え
  • ポータル用の特殊なBSDFを用意
    • レイは直進させる
    • scene_idを0と1で反転させる
    • BSDF実装の補足
      • closest_hit 関数の定義は共通
      • BSDFのサンプル方向・pdf計算をCallableProgramで切り替えできる設計

この手法はとくに参考にしたものはなく、脳内のアイデアをそのまま実装したところ、2日程度で実現できました。

2つのシーン間でレイが接続されているため、外の景色が床のエリアライトとして反映されます。こちらはスライド用にレンダリングした画像です。

ポータルのエリアライト

前半の屋内シーンについて

デノイザーを活用しているとはいえ、ノイズがほとんどない綺麗なレンダリング結果にできました。その点については非常に満足しています。

屋内シーンのエリアライトについては、当初LTC(Linearly Transformed Cosines)の利用も検討しましたが、 通常のパストレーシングでも十分に綺麗にレンダリングできることが分かったため、今回はLTCを使用しませんでした。

ポリゴン数の少ないシンプルなシーンにしたため、レイのサンプリング回数を十分に稼ぐことができました。

前半シーンのライトのアニメーション

部屋のMeshなどはBlenderのGeometry Nodesを使用してPlaneを押し出すことで簡単に作成しました。

レイトレ合宿とは関係ありませんが、BlenderのGeometry Nodesを実験していた様子です。

後半の屋外シーンのレイマーチングの高速化について

レイマーチングではBVHなどの空間分割による交差判定の高速化ができないため、速度面ではかなり不利です。

後半のシーンを屋外にした理由は、屋外シーンなら少ないサンプリングでも高周波ノイズが目立たないだろうという思惑があったためです。

昨年実装した[Bán & Valasek 23] Automatic Step Size Relaxation in Sphere Tracingについては、シーンとの相性が悪く、むしろ速度が落ちてしまったため、泣く泣く無効化しました。同著者のレイマーチングに関する新しい論文は今年は出ていないようでした。

レイマーチングのプリミティブごとに衝突条件を調整したり、epsを距離に応じてアダプティブに変更したりと地道なチューニングを行った結果、ノイズの少ない結果を得ることができました。

最後のカット

本戦の感想

本戦について、今年も色々なアプローチや切り口に挑戦されている方が多く、個性を感じるレンダラーが多かったです。

個人的に印象的だったのは、次の3作品でした。

Shockerさん:ボリュームメトリック・コースティクス

Shinji Ogakiさん:Geometry Processing NodesによるFur Generator

Samuel Huang(初参加!)さん:ポータルと本格的に作り込まれたエディター環境

動画リンク

セミナー

今回のレイトレ合宿10では、参加者全員(24人!)がセミナーを発表をしました。

私は「つぶやきGLSL解読!」という内容で発表を行いました。

このセミナーでは、GLSLのコードをリアルタイムで編集しながら口頭で解説する形式を取りました。

スライド資料は補助的に使っただけなので、スライドの情報だけでは伝わらない部分が多いと思いますが、雰囲気だけでも伝われば幸いです。

セミナーの感想

参加者のバックグラウンドもさまざまだったため、さまざまな分野の興味深い話を聞くことができて、非常に楽しかったです。

私は以下の3つの発表に票を入れました。

知られざるNaNの世界 by hole(🏆 ベストプレゼンター賞)

NaN自体は広く知られていますが、詳しい情報については自分も含めてほとんどの人が知らないことが多かったため、非常に楽しめる発表でした。

発表中に「へぇ~」と心の中で20回くらい叫んでしまいました。

GPU Hash Tableについて by Nishiki

Overlapped Multi-View Rendering by Samuel Huang

ポータルの実装についての発表でした。

(スライドは現時点では非公開)

NaNを讃える歌 “Silent NaN”

1日目のセミナーの後、唐突に非常に眩しいケミカルライトが配られ、「NaNを讃える歌 “Silent NaN”」が流れました。

ペンライトを振りながらNaNを讃える歌を口ずさむ集団は、異様な光景で非常にシュールでした。

それに加えて、曲のクオリティも異常に高く、とても良い曲だなと思いました。

スポンザのジグソーパズル

レイトレ合宿では、毎年ユニークなレクリエーションが開催されます。

今年のレクリエーションは「Sponzaのジグソーパズル」でした。

レクリエーションの内容は直前まで秘密にされていたため、参加者は「一体何が起きるんだろう?」という気持ちで臨むことになりました。

昨年は難易度が高すぎる「マテリアル神経衰弱」、過去には本格的な「レイトレ検定」などが開催されました。

今年は各チーム3人に分かれ、チーム対抗で「500ピースのSponzaのジグソーパズル」を1時間で組み立てるというものでした。

Sponzaは旗の部分は色がついているものの、影など同じような色の領域も多いため、ジグソーパズルとしての難易度は高めです。

500ピースのパズルを1時間で組み立てることは不可能だったので、勝敗は完成したピースの数で決めることになりました。

私たちのチームと優勝チームのピース数はほぼ同じだったのですが、最終的には私がチーム代表としてじゃんけんをし、敗北しました… 😭

今年は惜しいところまで勝ち進めていたので、非常に残念でした。

Yoshi’s Dreamさんは帰宅後に7時間かけて完成させていました!

全体の感想

今年も参加者の方々から多くの刺激を受けることができました!

本戦やセミナーで様々な知識を吸収できたことはもちろん、今年のレクリエーションもレイトレに関連したユニークな内容で非常に楽しめました。

素晴らしいイベントを開催してくださった運営の方々、そして他の参加者の皆さん、本当にありがとうございました!

初島~熱海の観光

最後にレイトレ合宿に関する主に私のツイートをまとめます。

今回の初島のホテルは、海や夜空の景色が絶景で、料理もとても美味しかったので、最高でした!

私は延泊したので、ここからは延長戦です。

iPhoneで撮影できるほど星もよく見えました。

写真だと分かりづらいですが、船の通った後の海面が周囲より明るい青色になる現象に気が付きました。 まだまだCGで再現しきれていないネタは多そうだなという発見がありました。

近距離でカモメを撮影できました。

東京に戻る前にMOA美術館に行きました。

初島は東京からアクセスが良く、海がとても綺麗だったので、また行きたいと思いました。

comments powered by Disqus

gam0022.net's Tag Cloud