ThreeJSでホーチミンのオフィスをバーチャル空間上に再現

ThreeJSを使って、弊社のホーチミンにあるオフィスをバーチャル空間上に再現してみました。
マウスをスクロールしたり、ナビゲーションボタンをクリックすると実績や会社紹介が表示されます。


デモは下記からご覧いただけます。
https://udl-3d-landing-page.vercel.app/
使用した技術
R3F
このデモのフロントエンドには、ReactJSを採用しました。また、ReactとThreeJSをシームレスに統合するため、react-three-fiber (R3F)を利用しました。ReactJSはユーザーインターフェイスの構築を担い、ThreeJSは3Dグラフィックスの実現を担います。
react-three-fiberはこれら二つのライブラリを橋渡しし、ReactJSでの3Dグラフィックスの統合を容易にします。
Drei
React Three Fiberは、ブラウザでの3D体験を構築するための神ライブラリです。しかし、ときどき繰り返しのタスクやボイラープレートコードに行き詰まることがあります。そのためDreiというライブラリを導入しました。
Dreiは、React Three Fiberの開発を簡素化し加速するために設計された、事前に構築されたコンポーネントと関数のコレクションです。3Dプロジェクトのクリエイティブな側面に集中させるための便利なヘルパーがいっぱいのツールボックスと考えてください。
事前に構築されたコンポーネントには、カメラコントロール、照明、アニメーションなど、必要なものがすべて準備されています。
Blender
ThreeJSはシーン照明のためのさまざまなリアルタイムのライティング機能を提供していますが、このデモでは、照明をすべて事前にテクスチャに焼き付けることにしました。
この作業にはBlenderを使用し、すべての照明を4Kテクスチャに焼き付けた上で圧縮しました。これにより、ウェブサイトで使用するすべての3Dモデルやテクスチャがわずか12.3MBに収まりました。
このデモで達成したこと
上述の通り、全コンテンツを12.3MBに圧縮したことで、わずか2秒でバーチャルオフィスがブラウザにロードされるようになりました。また、RAMの使用が50MBに収まるようパフォーマンスが最適化されています。
フレームレートも一般的なPCのブラウザで60FPSを達成しています。
「XR & 3D Web」の関連記事

次世代の製品カタログ:URDFが変える「動く」Web展示の可能性
ロボット設計図「URDF」をWebブラウザで滑らかに動かす技術ショーケースを公開。CADデータから「触れる製品カタログ」への転換が、製造業のプロモーションをどう変えるのか。ゲーム開発の知見を用いたリアルな可動表現の可能性を解説します。

Gaussian Splattingとは何か - 3Dメッシュやフォトグラメトリとの違いを解説
話題の「3D Gaussian Splatting」とは何か?フォトグラメトリやNeRFとの違いといった基礎から、実用化における最大の弱点「光源の焼き付き」を回避するプロのハック術まで徹底解説します。

建設DXへの挑戦:自社オフィスを「デジタルツイン」化するIFCビューアを開発しました
BIMデータを活用した建設DXの第一歩!自社オフィスを3Dモデリングし、Webブラウザで軽快に動作する高機能「IFCビューア」を独自開発しました。なぜGLBではなくIFCなのか?デジタルツイン構築がもたらすビジネス価値とシステム開発のポイントを解説します。
