レイトレ合宿11 レンダラー紹介スライド 「kanahebi」

273 Views

November 20, 25

スライド概要

2025年 11月14日(金)~11月16日(日) に開催されたレイトレ合宿11で発表した資料です。

レイトレ合宿11: https://sites.google.com/view/rtcamp11
投稿した動画: https://youtu.be/rN8LZkK_VHA

profile-image

3DCGに興味があります。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

レイトレ合宿11 「kanahebi」 折登 樹

3.

kanahebi - OpenUSD(Meshのみ)対応Hydraレンダラー 小さなHydraレンダラーということでトカゲの名前にした - ※Hydraは伝説上の首がたくさんあるでかいヘビやトカゲみたいなやつ

4.

提出動画 - 解像度: fps: 総フレーム数: サンプル数: 1920x1080 24 220フレーム 256spp

5.

利用ライブラリ - CUDA Toolkit 13.0 - - NVIDIA OptiX 9.0 - - ベクトルや行列の数学ライブラリ stb - - 乱数代わりに使える低食い違い量列を生成する / 適当に使ってるので使い方あってるか分からん glm - - .usdファイルの読み込み / Hydra APIの実装 openqmc - - CUDA用Ray Tracing Engine OpenUSD - - NVIDIA GPUプログラミング 画像保存 / 読み込み CLI11 - コマンドライン引数のパース

6.

シーンファイル - 以下のソフトを使って自作した Blender - - りんごの3Dモデルを作成 Houdini - りんごのテクスチャの作成 - Copernicus のノードを利用 流体シミュレーション OpenUSDのステージを構築し .usdへの書き出し

7.

実装したもの - レンダラー本体 - レンダリングは純粋なパストレーシングのみ - NEEもMISも実装されていない pureなBSDFサンプリング メッシュのエリアライトのみ対応 マテリアルはUsdPreviewSurfaceのパラメータを元に適当な PBR的なやつ - GeneralizedSchlickBsdfとNormalizedLambertBsdfをレイヤーした - GeneralizedSchlickはMaterialXでも利用されてる以下のフレネルを利用した マイクロファセット BSDF - - - https://renderwonk.com/publications/wp-generalization-adobe/gen-adobe.pdf 通常のSchlickのフレネルよりグレージング角での明るさの沈み込みが表現できるとか 水のためにUsdPreviewSurfaceのOpacityをTransmissionとして利用している

8.

実装したもの - HydraレンダラーAPIの実装 - - CLI - - Hydra APIでMesh情報の読み込み Hydra APIでUsdPreviewSurfaceのマテリアルの読み込み Hydraレンダラーを呼び出して OpenUSDのファイルをレンダリングする レンダリング結果を画像に書き出す Blender / Houdini向けHydraレンダラープラグイン

9.

OpenUSDのレンダリングへの部分的対応 - Hydra API経由でOpenUSDの情報の一部を取得しレンダリングした - 対応しているのは Mesh / GeomSubsetとUsdPreviewSurfaceマテリアル - Meshのsubdivision surfaceなどには対応していない OpenUSDに書き込まれた RenderSettingsも読み込むようになっている InstancerやLightやVolumeなどその他の情報には対応していない

10.

Hydraレンダラープラグイン - Hydraはレンダラー版Language Server Protocol (LSP) みたいなもの - DCCツールとレンダラーの組み合わせの数だけ実装が必要だった HydraでAPIを共通化することで必要な実装が減るというもの - 多くのツールやレンダラーに対応している様子をHydraの首の多さに例えているらしい?

11.

Hydraレンダラープラグイン - Hydraレンダラープラグインをビルドすることで 既存のDCCツールのレンダラーとして自作レンダラーを使える - 今回はBlender 4.5 LTSとHoudini 21.0向けのプラグインをビルドした

12.

自作レンダラー!

13.

自作レンダラー!

14.

Hydraレンダラープラグイン - シーンの作成にはHoudiniの Hydraプラグインを大いに活用した - シーンを少し編集して すぐにレンダリングを確認できるのが 非常に便利

15.

シーンファイルについて - 今回のシーンは以下の条件を満たすように作られました - 今回ただのパストレしか実装できなかったのでボロが出ないシーン - - 水は完全鏡面反射屈折で、りんごも水に濡れた想定でラフネスを低く - →BSDFサンプリングのみでもなんとかなる 周囲を壁で囲ったりしないですぐ外に RayをMissさせる - →複数バウンスがほとんど発生しない / 分散を大きく低減できる エリアライトは大きめに OpenUSDのジオメトリに対応したので 複雑なジオメトリアニメーションを扱ってみたい - 今回のレンダラーは OpenUSD対応が売りなので それを活かしたシーンにしたい 流体アニメーションを書き出して見た目のインパクトを出す

16.

感想 - 1ヶ月ちょっとくらいでOpenUSDの組み込みをやっていたら 全然時間が足りなくなった - - 肝心のレイトレがただのパストレしか実装できていない OpenUSDもMesh以外のデータを取得して使ったり出来なかったので もろもろ不完全燃焼 来年はよりちゃんとしたOpenUSD対応 / MaterialX対応などなど 目指していきたい