threejs-renderers について
threejs-renderersは、three.jsのレンダラー設定、サイズ、色管理、レンダーターゲット、性能確認を扱うエージェント向けスキルです。公式ドキュメントに沿った指針を示し、ポストプロセス、読み込み、WebXRを扱う関連スキルとの範囲も区別します。
主な機能
- 01WebGLRendererとWebGPURendererの設定
- 02キャンバスサイズとピクセル比の調整
- 03色空間とトーンマッピングの指針
- 04レンダーターゲットの選択と解放
- 05renderer.infoによる性能確認
活用シーン
- 01three.jsシーンのレンダラー設定
- 02色空間やトーンマッピングの問題調査
- 03オフスクリーン描画とレンダーターゲットの設定
- 04開発中のレンダリング統計の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-renderersインストール後、Claude Code で/threejs-renderersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/workflow-renderer-resize.mdreferences/official-sections.md詳細
このスキルを使用するタイミング
ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください。
WebGLRendererまたはWebGPURendererの作成、setSize、setPixelRatio、setAnimationLoop- カラーマネジメント:
outputColorSpace、toneMapping、レンダラーのプロパティを使った露出に相当する動作 - レンダラー側での
WebGLRenderTarget、WebGLCubeRenderTarget、MRT、読み戻し、レンダー・トゥ・テクスチャの設定 - プロファイリング用の
Info(render、triangles、calls);ドキュメントインデックスを参照する場合のCanvasTarget/ストレージテクスチャ
重要:このスキルと関連スキルの使い分け
| トピック | 使用するスキル |
|---|---|
| 全画面パス、ブルーム、SSAO、コンポーザーチェーン | threejs-postprocessing |
VR/AR セッション、XRButton、ハンドモデル | threejs-webxr |
| ノードベースのフレームグラフ/TSL ポストスタック | threejs-node-tsl + レンダラーの有効化 |
| アセットの読み込み | threejs-loaders |
トリガーとなるフレーズの例:
- 「WebGLRenderer」、「WebGPURenderer」、「setPixelRatio」、「toneMapping」、「WebGLRenderTarget」
- 「レンダラー」、「ピクセル比」、「トーンマッピング」、「オフスクリーンレンダリング」
このスキルの使用方法
- API の選択:幅広い互換性が必要な場合は
WebGLRendererを、プロジェクトのルールに従って WebGPU とノード/TSL スタックを対象とする場合はWebGPURendererを使用します。 - サイズ:パフォーマンスを考慮して適切な上限を設定し、描画バッファーのサイズをキャンバスの CSS サイズ ×
devicePixelRatioに合わせます。 - カラー:テクスチャやマテリアルと一貫性を持たせて
outputColorSpace/toneMappingを設定します(threejs-textures、threejs-materials と相互参照してください)。 - ループ:WebXR に対応したループには
setAnimationLoopを優先し、それ以外の場合はrequestAnimationFrameを使用します。 - レンダーターゲット:環境や反射の要件に応じて
WebGLRenderTargetとキューブ/3D/配列の各バリアントを選択します。再作成時に dispose することを明記してください。 - オーバーレイ UI:アドオンから
CSS2DRenderer/CSS3DRendererをインポートし、メインレンダラーとサイズを同期します。 - プロファイリング:開発ビルドでのみ
renderer.infoを読み取り、高いピクセル比とオーバードローによる負荷について説明します。 - WebXR フック:レンダラーで XR を有効にしますが、セッション管理は threejs-webxr に委ねます。
examples/workflow-renderer-resize.md を参照してください。
ドキュメントマップ(公式)
| ドキュメントのセクション | 代表的なリンク |
|---|---|
| コアレンダラー | https://threejs.org/docs/WebGLRenderer.html |
| WebGPU | https://threejs.org/docs/WebGPURenderer.html |
| レンダーターゲット | https://threejs.org/docs/WebGLRenderTarget.html |
| コアポストプロセッシング(クラス) | https://threejs.org/docs/PostProcessing.html |
| アドオンのレンダラー | https://threejs.org/docs/CSS2DRenderer.html |
クラスへのその他のリンク:references/official-sections.md。
対象範囲
- **対象:**レンダラーの作成、サイズ設定、カラー/トーン、ターゲット、Info、アドオンの CSS/SVG レンダラー、XR の高レベルな有効化のみ。
- **対象外:**個別のコンポーザーパス(threejs-postprocessing);XR 入力(threejs-webxr);ファイル I/O(threejs-loaders)。
よくある落とし穴とベストプラクティス
- 上限のない DPR はフィルレートを消費します。高密度なシーンでは
setPixelRatio(Math.min(devicePixelRatio, 2))で上限を設定してください。 - sRGB テクスチャと誤った
outputColorSpaceを組み合わせると、色あせや黒つぶれが発生します。 - レンダーターゲットや全画面クワッドの
dispose()を忘れると、ホットリロード時に GPU メモリがリークします。 WebGPURendererの機能セットは急速に変化します。回答には、必ず最新のドキュメントに記載されたバージョン上の注意を引用してください。
ドキュメントとバージョン
WebGLRenderer、WebGPURenderer、およびカラーマネジメントのデフォルト設定は、リリースごとに変化します。ユーザーが使用する three.js の系統に合わせて、three.js docs の Renderers セクションを参照してください。WebGPU とノードのスタックには、より新しいマイナーバージョンが必要な場合があります。コンストラクターのデフォルト設定を記憶するのではなく、クラスのページにリンクしてください。
エージェントの回答チェックリスト
このスキルを使用して回答する際は、次の点を優先してください。
- 公式のレンダラーまたはレンダーターゲットのページ(
WebGLRenderer、WebGLRenderTargetなど)へのリンクを示します。 - 色がおかしく見える場合は、
outputColorSpace/toneMappingを threejs-textures および threejs-materials に関連付けて説明します。 renderer.xr.enabledに言及した後、XR セッションの詳細について threejs-webxr を案内します。- ティアダウンまたはホットリロード時に、レンダーターゲットとレンダーリストの
dispose()に言及します。 - オーバーレイが対象となる場合は、Addons → Renderers(
CSS2DRenderer、…)を引用します。
参考資料
- https://threejs.org/docs/WebGLRenderer.html
- https://threejs.org/docs/WebGPURenderer.html
- https://threejs.org/docs/#Renderers
- https://threejs.org/docs/Info.html
キーワード
英語: webglrenderer, webgpurenderer, rendertarget, pixelratio, tonemapping, outputcolorspace, css2d, css3d, three.js
日本語: WebGLRenderer、WebGPU、レンダーターゲット、ピクセル比、トーンマッピング、出力色空間、レンダラー、three.js