コーポレートプロジェクト
Rapid Render: リアルタイム 3D 製品コンフィギュレーター
Unity + V-Ray を備えたハイブリッド 3D コンフィギュレーター。 glTF/Draco アセット パイプラインと WebGL パフォーマンスの最適化。
ENGINEERING IMPACT
測定可能な範囲と成果
- レンダリングアプローチ
- ハイブリッドリアルタイム/オフライン
- アセットライン
- glTF + ドラコ
- 配達面
- WebGLコンフィギュレーター
同じ製品フローで速度と写実的な出力品質のバランスをとりました。
3D 製品データを Web エクスペリエンスにもたらす、最適化されたデータ パイプライン。
ブラウザーでのリアルタイムの製品検出用。
簡単な概要
- 役割: ソフトウェア開発者 (コア 3D エンジン、アセット パイプライン、V-Ray SDK 統合)
- 期間:2021年2月~2022年1月
- プラットフォーム: Unity WebGL + デスクトップ
- コアテクノロジー: Unity 2020 LTS、URP、C#、Python、V-Ray SDK、glTF、Draco
- 出力タイプ: リアルタイム WebGL プレビュー、1080p オフライン レンダリング、JSON シーン エクスポート
- 検証された証拠: オープンソース: DracoPy Pull Request #17。パフォーマンス: WebGL ロード <3 秒 / 60 FPS - テスト: [device_class]、[browser]、[scene: tri_count=[tri_count]、texture_count=[texture_count]、avg_asset_mb=[avg_asset_mb]]。オフライン レンダリング: V-Ray 1080p ~15 分- 設定: [サンプル]、[ノイズ除去]、[マシン/仕様]、[render_farm?]
RapidRender 3D 構成およびレンダリング エンジン
RapidRender のコア 3D エンジンは Sugar Technology 内で開発しました。 Unity のリアルタイム レンダリング機能と V-Ray のプロダクション品質のレイ トレーシング アプローチを組み合わせることで、同じプラットフォーム上でインタラクティブなデザインと高品質の最終出力の両方を生成するハイブリッド構造を確立しました。
問題と制約
- WebGL で重いシーンを短い読み込み時間で開くことを目標とします。
- 異種の 3D アセット形式を単一の標準に正規化する必要性。
- リアルタイム プレビューとオフラインの写実的な出力の間の視覚的な一貫性を期待します。
- レンダリング ジョブのキューイングとオフライン パイプラインの遅延コスト。
- ブラウザ/GPU の多様性とパフォーマンスの制約。
ソリューションの概要
Unity のリアルタイム シーンの制作 + V-Ray のオフライン レンダリングというハイブリッド パイプラインを設計しました。 Unity シーンは、JSON 中間形式を介して Python を使用して V-Ray SDK にインポートされました。 glTF/Draco アセット パイプラインにより Web パフォーマンスを維持しながら、品質の一貫性が実現されました。
アーキテクチャの概要
- Unity シーン -> JSON 相互運用 -> Python -> V-Ray SDK -> 1080p レンダリング出力。
- WebGL ランタイム: Unity ビルド + 非同期アセット ストリーミング + コントロール パネルの統合。
- ステージ スキーマと JSON シリアル化およびバージョン管理との下位互換性を維持します。
アセット パイプライン (glTF/glb + Draco)
- さまざまなメーカーのフォーマットが glTF/glb に正規化されています。 UV アンラップ、テクスチャ ベイク、メタデータの挿入は自動化されています。
- データの一貫性は、Pygltflib ベースの検証とルール セットによって保証されました。
- UnityGLTF で実装された非同期読み込みとプログレッシブ ストリーミング。
- Draco 圧縮による最適化された WebGL 配信サイズ。
パフォーマンスと最適化
- マテリアル、ガラス、アウトラインの効果は、シェーダー グラフとカスタム HLSL シェーダーを使用して生成されました。
- ドローコールのバッチ処理、GPU インスタンス化、テクスチャ アトラス化、LOD 戦略が実装されました。
- 反復的なパフォーマンス調整は、Unity Profiler + Frame Debugger を使用して行われました。
V-Ray パイプライン (レンダリング ジョブ)
- Unity シーンは JSON としてエクスポートされます。 Python を使用して V-Ray SDK に移植されました。
- カメラ/ライト/マテリアルのマッピングを保持することで、オフライン出力の一貫性が実現されました。
- 適応サンプリングとノイズ除去により、品質と時間のバランスが確立されました。
- レンダリング ジョブはキューに入れられ、自動スクリプトで管理されました。
オープンソースへの貢献 (検証済みの証拠)
PR #17 を準備しました。これは、DracoPy にテクスチャ座標と通常のサポートを追加します。この貢献はオープンソース コミュニティで受け入れられ、メイン ブランチに統合されました。
効果/結果
- WebGL シーンの読み込み時間 - <3 秒 - コンテキスト: [device_class]、[browser]、[scene: tri_count=[tri_count]、texture_count=[texture_count]、avg_asset_mb=[avg_asset_mb]]、測定: [profiling_tool]。
- リアルタイムの流動性 - 60 FPS - コンテキスト: [device_class]、[resolution]、[scene: tri_count=[tri_count]]、測定: [profiler]。- オフライン レンダリング時間 - 1080p ~15 分 - 設定: [サンプル]、[ノイズ除去]、[マシン/スペック]、[render_farm?]。
- Draco 圧縮効果 - (追加できるメトリック: パケット サイズ削減率) - メトリック: [build_size_report]。
- アセット検証エラー - (メトリクスを追加可能) - 測定: パイプライン検証ログ。
技術スタック (カテゴリ)
- エンジン: Unity 2020 LTS、URP、シェーダー グラフ
- 言語: C#、Python 3.8、Cython
- レンダリング: V-Ray 5、V-Ray SDK、HDRI、IES
- フォーマット: glTF 2.0、glb、Draco、Assimp
- Web: WebGL、WebAssembly、gzip/Brotli、CDN
- データ/相互運用: JSON、Newtonsoft.Json
- ツール: Visual Studio、PyCharm、Unity エディター、Git
よくある質問
Unity + V-Ray ハイブリッド アプローチを採用する理由は何ですか?
同じプラットフォーム上でリアルタイムのインタラクションとオフラインの写真のようにリアルな出力のニーズを満たすため。
glTF/glb が選ばれた理由は何ですか?
それは、Web 互換性、幅広いツールのサポート、安定した標準化を提供するためです。
ドラコが批判的なのはなぜですか?
WebGL でのロード時間とパケット サイズを削減します。
WebGL では 60 FPS はどのように維持されましたか?
バッチ処理、インスタンス化、LOD、シェーダーの最適化、プロファイラーベースのチューニングを備えています。
レンダー ファーム ジョブ オーケストレーションはどのように管理されましたか?
優先順位付け/再試行フローは、Python スクリプトとジョブ キュー アプローチを使用して確立されました。
バージョン管理と移行はどのように管理されましたか?
JSON スキーマのバージョン管理と自動移行スクリプトを使用します。
資産パイプラインの品質はどのように保証されますか?
Pygltflib 検証とメタデータ ルールを使用します。
関連プロジェクト
- Kayra Export: マーケットプレイスおよび電子商取引プラットフォーム
- ABC ロジスティクス: リアルタイム GIS 追跡プラットフォーム- Dunelm: LiDAR 対応 AR「室内ビュー」エクスペリエンス
プロジェクトの紹介
- 会社名: シュガーテクノロジー
- 役職: ソフトウェア開発者
- 部門: 建築およびインテリア デザイン テクノロジー
- プラットフォーム: Unity WebGL およびデスクトップ
- コア テクノロジー: Unity 3D、C#、Python、V-Ray
- 3D フォーマット: glTF/glb、Draco 圧縮
- オープンソース: DracoPy テクスチャ座標と法線のサポート (PR #17)
- 期間: 2021 年 2 月 – 2022 年 1 月
- 場所: イスタンブール、トルコ
- GitHub 貢献: DracoPy プル リクエスト #17