threejs-raymarched-space-effects について
曲がった空間や境界のある空間エフェクトで、数値的なレイ積分を行う Three.js スキルです。ブラックホールやワームホールの描画に向け、積分、サンプリング、安定性の手法を説明します。
主な機能
- 01エフェクト空間変換とカメラレイ
- 02早期終了を備えた有界レイ積分
- 03薄い構造との連続交差判定
- 04フットプリントを考慮した背景サンプリング
- 05積分診断と安定性の指針
活用シーン
- 01ブラックホールのレンズ効果と円盤の描画
- 02ワームホール通過エフェクトの構築
- 03レンズ化した星野のエイリアシング低減
- 04レイ経路と終了条件の診断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scottstts/ threejs-awesome-graphics-agent-skills --skill threejs-raymarched-space-effectsインストール後、Claude Code で/threejs-raymarched-space-effectsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/curved-ray-accretion-volume/curved-ray-effect.jsexamples/schwarzschild-geodesic-black-hole/geodesic-black-hole-effect.jsexamples/traversable-wormhole-transit/celestial-spheres.jswormhole-effect.jsreferences/lensed-celestial-spheres.mdcurved-ray-integrators.md詳細
レイマーチングによる宇宙エフェクト
これらのエフェクトは、明示的な積分状態を持つ数値レンダラーとして扱ってください。見た目の特徴は、座標の選択、ステップポリシー、そして光線と発光構造の相互作用によって決まります。
このスキルには、説明的なガイダンスに加えて、参考になるサンプルやアセットが含まれています。よく学び、参照し、場合によってはそのまま活用してください。関連性がある場合は十分に使い、むやみに読み飛ばさないでください。
ワークフロー
- エフェクト空間の変換とカメラレイを定義します。
- 物理的、物理に着想を得た、または純粋に芸術的な屈曲モデルを選びます。
- 積分領域を限定します。
- レイの位置、方向、スループット、累積放射輝度を追跡します。
- 円盤、殻、スロート、またはイベント境界との交差を検出します。
- 積分の終了後にのみ背景をサンプリングし、点サンプリングではなくレイ束のフットプリントでフィルタリングします。
- 軌跡、ステップ数、終了理由の診断機能を追加します。
2 種類のワームホールのスロートモデル、スロートを通過する観測者の輸送、芸術的な曲線レイ降着積分、円盤の合成、実装上の不具合については、references/curved-ray-integrators.md を参照してください。
フットプリントでフィルタリングした空、フラックスを維持する恒星の点像分布、塵による減光、ディスプレイのクリッピング下での明るい光源、プログレッシブ累積、コンパクトな光源に必要なブルームカーネルについては、 references/lensed-celestial-spheres.md を参照してください。
逆二乗のステアリングループ、薄い円盤の密度、手前から奥への累積、決定論的な恒星環境、積分器の診断機能については、 曲線レイ降着ボリュームを参照してください。
RK2 によるヌル測地線の積分、補間された赤道円盤との交差、ドップラー効果と赤方偏移を考慮した円盤の発光、重力レンズ効果のあるプロシージャルなディープフィールド、HDR ブルーム合成については、 Schwarzschild 測地線ブラックホールエフェクトを参照してください。
縮約された測地線系の適応型 RK4 積分、スロートを通じて平行移動される観測者フレーム、外部領域の選択、プログレッシブ Halton 累積、13 タップのブルームピラミッドについては、 通過可能なワームホールの通過を参照してください。その 天球 は、フットプリントでフィルタリングした銀河の空、解像された恒星レイヤー、レンズ効果のある光線が到達する解析的なリング惑星を備えた、単独で使用できる GLSL チャンクです。
制約
- UV の渦巻きを「重力レンズ効果」と呼ばないでください。
- 反復回数に上限を設け、早期終了を可能にしてください。
- 薄い構造との交差判定には、連続的な交差テストを使用してください。
- 数値安定性がフレームレートに左右されないようにしてください。
- 積分器と降着円盤またはワームホール内部のシェーディングを分離してください。
- 計量に重力レンズ効果の肩のような狭い特徴がある場合は、全体で一定の値ではなく、局所的な曲率スケールに基づいてステップサイズを決めてください。
- 背景はレイ束のフットプリントでフィルタリングしてください。レンズ効果のあるマップは立体角を大幅に圧縮するため、画像で最も興味深い場所で点サンプリングを行うとエイリアシングが発生します。
- 上限に達したレイに、明確な結果を定義してください。退出方向は任意になるため、ノイズ状のちらつきを生じさせるのではなく、平均放射輝度の経路に振り分けてください。
- 領域にグローバルなデカルト座標系のチャートが存在しない場合は、デカルトカメラではなく輸送フレームを使用してください。
- ヒーロービュー以外には、より低コストな近似を用意してください。
適用範囲
通常のパーティクル、トレイル、プラズマ、イベントエフェクトには $threejs-procedural-vfx を使用してください。このスキルの対象は、曲がった空間または境界で区切られた空間エフェクト領域を通る、ピクセル単位の数値レイ積分です。
ワームホールのサンプルに含まれるプログレッシブ累積とブルームピラミッドは、積分コストの高さから、このレンダラーが担います。通常のジオメトリ全体に適用するシーン全体の HDR ブルームパスには $threejs-bloom を使用し、露出測光、トーンマッピングの管理、LUT によるグレーディングには $threejs-exposure-color-grading を使用してください。