10月11日(金)~10月13日(日)に熱海の初島で開催されたレイトレ合宿10に参加しました。
私はポータルをテーマにしたアニメーションを作成しました。
前半はプリミティブな屋内シーン、後半はレイマーチングを用いた複雑なジオメトリーの屋外シーンと、対照的な2つのシーンを作成しました。
水銀のような不思議な球体がポータルで2つのシーンを移動するという、少しストーリー性のあるアニメーションを目指しました。
自作のレンダラーで 256秒の制限時間 でレンダリングして同率6位(22人中)をいただきました!
次の動画は合宿運営側で制限時間内にレンダリングしたものです。
#レイトレ合宿 10に参加して、同率6位でした!
— がむ (@gam0022) October 13, 2024
添付の動画は、制限時間256秒で実際にレンダリングされたものです。
ポータル用のBSDFを実装し、レンダラー本体のポータル専用処理を最小限に抑えました。
今年もレイマーチングとポリゴンが混在するシーンに対応しました!
みなさまお疲れ様でした! pic.twitter.com/fzaxSYTA6C
時間制限なしで、「4K解像度 + 0.5倍速 + 最後のフェードアウト演出あり」でレンダリングした動画をYouTubeにアップロードしました。
レイトレ合宿とは?
レイトレ合宿は、オフラインレンダリングのオフライン集会です。
この合宿の本戦では、参加者が自作のオフラインレンダラーを用いて、美しいレンダリング画像を競い合います。 参加者は自分の技術力と創造力を駆使して、他にはない独自のレンダラーを開発します。
毎年レンダリングの制限時間が短縮されるため、その制限の中でどれだけ高品質な動画(もしくは画像)を生成できるかが試されます。
合宿は本戦だけでなく、セミナーやレクリエーションも充実しており、参加者同士の交流や知識の共有も行われます。 セミナーでは最新の技術動向やトレンドが紹介され、レクリエーションではレイトレに関連するユニークな内容が催されます。
なお、開催地は毎年ランダムにサンプリングされます。 去年のお寺での質素な合宿とは対照的に、今年は熱海の初島のリゾートホテルでのラグジュアリーな合宿でした。分散は高そうです。
去年のレポートはこちらです。
天候にも恵まれて、島や海の風景はとても綺麗でした。
当日の詳細な様子については、@TTRS_Yoshi_CGさんによるレポートがとても参考になります。 ぜひ合わせて読んでください。
はてなブログに投稿しました
— Yoshi’s Dreann (@TTRS_Yoshi_CG) October 16, 2024
レイトレ合宿10参加記 - TTRS_Yoshiのブログ https://t.co/mMWUlTnqWK#はてなブログ #レイトレ合宿
本戦の自作レンダラーの紹介
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を実験していた様子です。
Blender Geometry Nodes 完全理解!(大嘘) pic.twitter.com/jQEeCpACL8
— がむ (@gam0022) October 1, 2024
後半の屋外シーンのレイマーチングの高速化について
レイマーチングではBVHなどの空間分割による交差判定の高速化ができないため、速度面ではかなり不利です。
後半のシーンを屋外にした理由は、屋外シーンなら少ないサンプリングでも高周波ノイズが目立たないだろうという思惑があったためです。
昨年実装した[Bán & Valasek 23] Automatic Step Size Relaxation in Sphere Tracingについては、シーンとの相性が悪く、むしろ速度が落ちてしまったため、泣く泣く無効化しました。同著者のレイマーチングに関する新しい論文は今年は出ていないようでした。
レイマーチングのプリミティブごとに衝突条件を調整したり、epsを距離に応じてアダプティブに変更したりと地道なチューニングを行った結果、ノイズの少ない結果を得ることができました。
本戦の感想
本戦について、今年も色々なアプローチや切り口に挑戦されている方が多く、個性を感じるレンダラーが多かったです。
個人的に印象的だったのは、次の3作品でした。
Shockerさん:ボリュームメトリック・コースティクス
#レイトレ合宿 10終わりました~!
— Shocker (@Shocker_0x15) October 13, 2024
ボリューメトリック・スペクトラルなLVC-BPTを実装して指向性光源による光の経路の可視化・コースティクスのレンダリングを行いました。
1位でした!https://t.co/gycurLPqsW pic.twitter.com/afs0U4TeZ9
Shinji Ogakiさん:Geometry Processing NodesによるFur Generator
#レイトレ合宿 (Ray Tracing Camp) is an event where participants use their own renderer to generate animations within 256 seconds, competing on skill and the quality of their work.
— Shinji Ogaki (@ShinjiOgaki) October 15, 2024
(https://t.co/9Bj44pqBvo)
Here is my submission🙂 pic.twitter.com/uMD1wOcrEE
Samuel Huang(初参加!)さん:ポータルと本格的に作り込まれたエディター環境
セミナー
今回のレイトレ合宿10では、参加者全員(24人!)がセミナーを発表をしました。
私は「つぶやきGLSL解読!」という内容で発表を行いました。
このセミナーでは、GLSLのコードをリアルタイムで編集しながら口頭で解説する形式を取りました。
スライド資料は補助的に使っただけなので、スライドの情報だけでは伝わらない部分が多いと思いますが、雰囲気だけでも伝われば幸いです。
セミナーの感想
参加者のバックグラウンドもさまざまだったため、さまざまな分野の興味深い話を聞くことができて、非常に楽しかったです。
私は以下の3つの発表に票を入れました。
知られざるNaNの世界 by hole(🏆 ベストプレゼンター賞)
NaN自体は広く知られていますが、詳しい情報については自分も含めてほとんどの人が知らないことが多かったため、非常に楽しめる発表でした。
発表中に「へぇ~」と心の中で20回くらい叫んでしまいました。
レイトレ合宿10でNaNとInfについての話をしました。
— hole (@h013) October 15, 2024
qNaNとsNaNの違いやNaN-Boxingといった、知ってる人にとっては常識だけど知らない人も多い、みたいな話題を取り上げました。
僕自身、まだまだ勉強中なので突っ込みください!https://t.co/r05vnreh1h
GPU Hash Tableについて by Nishiki
Overlapped Multi-View Rendering by Samuel Huang
ポータルの実装についての発表でした。
(スライドは現時点では非公開)
NaNを讃える歌 “Silent NaN”
1日目のセミナーの後、唐突に非常に眩しいケミカルライトが配られ、「NaNを讃える歌 “Silent NaN”」が流れました。
ペンライトを振りながらNaNを讃える歌を口ずさむ集団は、異様な光景で非常にシュールでした。
それに加えて、曲のクオリティも異常に高く、とても良い曲だなと思いました。
今回の #レイトレ合宿 では @ykozw88 さんといっしょに"AI"の力を借りてNaNを讃える歌 "Silent NaN" をつくりましたhttps://t.co/oGPaefork2
— hole (@h013) October 14, 2024
"No solution, just a NaN star."、"Live with ambiguity."あたりがお気に入りの歌詞です。
#レイトレ合宿 pic.twitter.com/7u0dgH8O5h
— ハガ (@hagat) October 11, 2024
スポンザのジグソーパズル
レイトレ合宿では、毎年ユニークなレクリエーションが開催されます。
今年のレクリエーションは「Sponzaのジグソーパズル」でした。
レクリエーションの内容は直前まで秘密にされていたため、参加者は「一体何が起きるんだろう?」という気持ちで臨むことになりました。
昨年は難易度が高すぎる「マテリアル神経衰弱」、過去には本格的な「レイトレ検定」などが開催されました。
今年は各チーム3人に分かれ、チーム対抗で「500ピースのSponzaのジグソーパズル」を1時間で組み立てるというものでした。
Sponzaは旗の部分は色がついているものの、影など同じような色の領域も多いため、ジグソーパズルとしての難易度は高めです。
500ピースのパズルを1時間で組み立てることは不可能だったので、勝敗は完成したピースの数で決めることになりました。
私たちのチームと優勝チームのピース数はほぼ同じだったのですが、最終的には私がチーム代表としてじゃんけんをし、敗北しました… 😭
今年は惜しいところまで勝ち進めていたので、非常に残念でした。
Sponzaのジグソーパズル🧩難しすぎる😱 #レイトレ合宿 pic.twitter.com/NBhu0qc5mC
— がむ (@gam0022) October 12, 2024
Yoshi’s Dreamさんは帰宅後に7時間かけて完成させていました!
Crytek Sponzaパズル(500 pieces)完成!
— Yoshi’s Dreann (@TTRS_Yoshi_CG) October 14, 2024
所要時間: 7時間 #レイトレ合宿 pic.twitter.com/0QxcQ1uvw9
全体の感想
今年も参加者の方々から多くの刺激を受けることができました!
本戦やセミナーで様々な知識を吸収できたことはもちろん、今年のレクリエーションもレイトレに関連したユニークな内容で非常に楽しめました。
素晴らしいイベントを開催してくださった運営の方々、そして他の参加者の皆さん、本当にありがとうございました!
初島~熱海の観光
最後にレイトレ合宿に関する主に私のツイートをまとめます。
今回の初島のホテルは、海や夜空の景色が絶景で、料理もとても美味しかったので、最高でした!
温泉シャーク♨️🦈 #レイトレ合宿 pic.twitter.com/F8GEuF5Pr3
— がむ (@gam0022) October 11, 2024
ラーメンとザンギ食べる #レイトレ合宿 pic.twitter.com/LOrmEjZDO6
— がむ (@gam0022) October 11, 2024
リサとガスパール #レイトレ合宿 pic.twitter.com/PPPDzZGGRp
— がむ (@gam0022) October 11, 2024
部屋が広い!海が見える! #レイトレ合宿 pic.twitter.com/uRpABVdR4W
— がむ (@gam0022) October 11, 2024
絶景を背景にセミナー中🌅 #レイトレ合宿 pic.twitter.com/vwFIYI12YM
— がむ (@gam0022) October 11, 2024
#レイトレ合宿 pic.twitter.com/7u0dgH8O5h
— ハガ (@hagat) October 11, 2024
— がむ (@gam0022) October 11, 2024
景色が最高すぎる #レイトレ合宿 pic.twitter.com/KBGu7g02oX
— がむ (@gam0022) October 11, 2024
朝食 #レイトレ合宿 pic.twitter.com/eZ5P1ZPvuT
— がむ (@gam0022) October 11, 2024
昼ごはん #レイトレ合宿 pic.twitter.com/9OaLyMUiyj
— がむ (@gam0022) October 12, 2024
天気が良いので散歩が気持ちいい #レイトレ合宿 pic.twitter.com/Yw2LGzJK5G
— がむ (@gam0022) October 12, 2024
Sponzaのジグソーパズル🧩難しすぎる😱 #レイトレ合宿 pic.twitter.com/NBhu0qc5mC
— がむ (@gam0022) October 12, 2024
本線開始! #レイトレ合宿 pic.twitter.com/jocWrgrieF
— がむ (@gam0022) October 12, 2024
アウトドアレイトレ合宿すごすぎる🚣 #レイトレ合宿 pic.twitter.com/QlcE3a72xX
— がむ (@gam0022) October 12, 2024
おはようございます🌞 #レイトレ合宿 pic.twitter.com/lxNak7HakI
— がむ (@gam0022) October 12, 2024
— がむ (@gam0022) October 12, 2024
セミナー最終日! #レイトレ合宿 pic.twitter.com/GWcTN1O2RG
— がむ (@gam0022) October 12, 2024
朝食ビュッフェ #レイトレ合宿 pic.twitter.com/ObzeXIvnnb
— がむ (@gam0022) October 12, 2024
最後のセミナーが始まっています #レイトレ合宿 pic.twitter.com/xSxlsyyKOZ
— がむ (@gam0022) October 13, 2024
閉会式 #レイトレ合宿 pic.twitter.com/iRUy14mA6P
— がむ (@gam0022) October 13, 2024
#レイトレ合宿 10に参加して、同率6位でした!
— がむ (@gam0022) October 13, 2024
添付の動画は、制限時間256秒で実際にレンダリングされたものです。
ポータル用のBSDFを実装し、レンダラー本体のポータル専用処理を最小限に抑えました。
今年もレイマーチングとポリゴンが混在するシーンに対応しました!
みなさまお疲れ様でした! pic.twitter.com/fzaxSYTA6C
6位の賞品です!🎁
— がむ (@gam0022) October 13, 2024
コンピューターが使えなくなったときに役立ちそう(?)🤔#レイトレ合宿 pic.twitter.com/WEz85okmOD
#レイトレ合宿 pic.twitter.com/3k2LmCUYo5
— がむ (@gam0022) October 13, 2024
お昼とおやつ #レイトレ合宿 pic.twitter.com/O2WsX58K3q
— がむ (@gam0022) October 13, 2024
私は延泊したので、ここからは延長戦です。
— がむ (@gam0022) October 14, 2024
バー🍷 pic.twitter.com/IsCHTNw7sy
— がむ (@gam0022) October 14, 2024
iPhoneで撮影できるほど星もよく見えました。
iPhone 14で撮影した星空🌌
— がむ (@gam0022) October 13, 2024
人工的な光源がなく、空気が綺麗で、天気が良かったので肉眼でも同じくらい星が見えました。#レイトレ合宿 pic.twitter.com/rqo99NG0oa
朝食#レイトレ合宿 延長戦 pic.twitter.com/H56Q6kh7kr
— がむ (@gam0022) October 14, 2024
— がむ (@gam0022) October 14, 2024
密漁禁止🈲⚠️ pic.twitter.com/G6DzzAncXP
— がむ (@gam0022) October 14, 2024
写真だと分かりづらいですが、船の通った後の海面が周囲より明るい青色になる現象に気が付きました。 まだまだCGで再現しきれていないネタは多そうだなという発見がありました。
さよなら初島👋 #レイトレ合宿 pic.twitter.com/F5hEMEqeGB
— がむ (@gam0022) October 14, 2024
近距離でカモメを撮影できました。
🐦 #レイトレ合宿 pic.twitter.com/JgcEnw60Pz
— がむ (@gam0022) October 14, 2024
スコット本店 pic.twitter.com/2Nq2U90dnh
— がむ (@gam0022) October 14, 2024
東京に戻る前にMOA美術館に行きました。
MOA美術館から初島が見える #レイトレ合宿 pic.twitter.com/FPmNJWvpB8
— がむ (@gam0022) October 14, 2024
— がむ (@gam0022) October 14, 2024
花弁が貝殻になってるこっちの方が分かりやすそう pic.twitter.com/YWI1Z9Prcd
— がむ (@gam0022) October 14, 2024
MOA美術館、建築も見応えがあった pic.twitter.com/jFNCj0huYF
— がむ (@gam0022) October 14, 2024
NEW ガッパ pic.twitter.com/bxMCkvFFSJ
— がむ (@gam0022) October 14, 2024
初島は東京からアクセスが良く、海がとても綺麗だったので、また行きたいと思いました。