3Dジュエリー・カスタマイザーとAR体験
高級ジュエリーの購入者は、単なる平面的な画像以上のものを求めています。彼らは、ゴールドがどのように光を反射するか、あるいはダイヤモンドのカッティングが実物でどのように見えるかを確認したいと考えています。
私のチームと私は、ジュエリークライアントのために、本番環境で使用可能なeコマースプラットフォームを構築しました。私たちは3Dカスタマイザーと拡張現実(AR)試着機能を作成しました。デバイスをクラッシュさせることなく、モバイルブラウザ上で動作するように設計しています。
以下に、私たちがどのように技術的なプロセスを管理したかを紹介します。
アセット・パイプライン
ジュエリーは、重いCADファイルから始まります。これらのファイルはしばしば50MBを超え、数百万ものポリゴンを持っています。これらをそのままウェブで使用することはできません。そこで、私たちは独自の最適化パイプラインを構築しました。
- リメッシング (Remeshing): Blenderを使用して、形状を綺麗に保ちながらポリゴン数を削減しました。
- ディテールのベイク (Baking Details): 複雑なジオメトリを2Dのノーマルマップ (Normal Maps) に変換しました。これにより、ファイルサイズを大きくすることなく、詳細なライティングを実現できます。
- PBRテクスチャリング (PBR Texturing): 表面がリアルに見えるよう、粗さ (roughness) と金属感 (metalness) の特定のマップを設定しました。
- 圧縮 (Compression): アセットをGLTF/GLB形式でエクスポートしました。Google Draco圧縮を使用して、ファイルを50MBから2MB未満に縮小しました。
レンダリング・エンジン
私たちはThree.jsを使用して、ユーザーのGPUに直接接続しました。金属を高級感のある見た目にするために、高ダイナミックレンジ画像 (HDRI) を環境マップとしてマッピングしました。これにより、ユーザーがリングを回転させると、金属にリアルタイムの反射が表示されます。
素材の変更はコードを通じて処理しました。ユーザーが金属を選択すると、GLTFシーンをトラバース(走査)し、色、粗さ、金属感の値を即座に更新します。
拡張現実 (AR)
モバイルユーザー向けに、デュアルエンジン・ワークフローを実装しました。
- Android: Scene Viewerの統合を使用しました。
- iOS: クロスプラットフォームのサポートを確保するために、ウェブ標準を使用しました。
教訓
現代のフロントエンド・エンジニアリングの本質は、効率的なパイプラインを構築することにあります。重いファイルを軽量なアセットに変換しなければなりません。また、標準的なモバイルブラウザ上で高精度な体験ができるようにしなければなりません。
プロジェクトでインタラクティブな3D要素を構築したり、WebXRを使用したりしたことはありますか?あなたの最適化手法をコメントで教えてください。
出典: https://dev.to/tharul/engineering-a-3d-customizer-ar-experience-for-a-jewelry-ecommerce-web-app-2fn4