Mesh Descriptor
MeshDescは、3Dメッシュオブジェクトをシーンに追加するためのDescriptorタイプです。様々な3Dオブジェクトを表示できます。
すべてのメッシュは MeshDesc を継承しており、position、rotation、scale、matrix、matrixWorld、geodetic、pickable などの共通プロパティを提供します。トランスフォーム合成、ピッキング、座標変換の詳細については MeshDesc ページを参照してください。
利用可能なMeshDescタイプ
Section titled “利用可能なMeshDescタイプ”navara_threeでは、以下のMeshDescタイプが利用可能です:
| Descriptorタイプ | 説明 |
|---|---|
| ArclineMeshDesc | 2点間を結ぶアーク状のラインを描画するDescriptor |
| BoxMeshDesc | 立方体(Box)ジオメトリを描画するDescriptor |
| InstancedBoxMeshDesc | GPU インスタンシングを使用して複数のボックスを1回の描画コールでレンダリングするDescriptor |
| CylinderMeshDesc | 円柱(Cylinder)ジオメトリを描画するDescriptor |
| InstancedCylinderMeshDesc | GPU インスタンシングを使用して複数の円柱を1回の描画コールでレンダリングするDescriptor |
| GLTFModelDesc | GLTF/GLB形式の3Dモデルを読み込み・表示するDescriptor |
| InstancedGltfModelMeshDesc | GPU インスタンシングを使用して GLTF/GLB モデルの複数コピーをレンダリングするDescriptor |
| GlowGlobeMeshDesc | 地球の周りにフレネル効果による光彩(グロー)を表示するDescriptor |
| PlaneMeshDesc | 平面(Plane)ジオメトリを描画するDescriptor |
| InstancedPlaneMeshDesc | GPU インスタンシングを使用して複数の平面を1回の描画コールでレンダリングするDescriptor |
| RainMeshDesc | 雨のパーティクルエフェクトを表示するDescriptor |
| SkyBoxMeshDesc | シンプルなスカイボックスを描画するDescriptor |
| SkyMeshDesc | 大気散乱による空と太陽・月を描画するDescriptor |
| SmoothLineMeshDesc | カトマル・ロム曲線による滑らかなラインを描画するDescriptor |
| SnowMeshDesc | 雪のパーティクルエフェクトを表示するDescriptor |
| SphereMeshDesc | 球体(Sphere)ジオメトリを描画するDescriptor |
| SplatMeshDesc | SparkJS による 3D Gaussian Splat アセットを描画するDescriptor |
| InstancedSphereMeshDesc | GPU インスタンシングを使用して複数の球を1回の描画コールでレンダリングするDescriptor |
| StarsDesc | 星空を描画するDescriptor |
| TubeMeshDesc | チューブ(Tube)ジオメトリを描画するDescriptor |
| AxesHelperDesc | 3軸を可視化するデバッグ用ヘルパーDescriptor |
| ArrowHelperDesc | ベクトル方向を可視化するデバッグ用ヘルパーDescriptor |
基本的な使い方
Section titled “基本的な使い方”MeshDescは、Descriptorクラスを登録した後、view.addMesh()メソッドで追加します:
import ThreeView, { Color } from "@navaramap/three";import { BoxMeshDesc } from "@navaramap/three-default-descs";
const view = new ThreeView();
// Descriptorクラスを登録view.registerMesh("box", BoxMeshDesc);
await view.init();
// BoxMeshDescを経度・緯度(度)と高さ(メートル)で追加const boxDesc = view.addMesh<BoxMeshDesc>({ box: { width: 100, height: 100, depth: 100, color: new Color().setHex(0xff0000), }, geodetic: { lng: 139.767125, lat: 35.681236, height: 1000 },});詳細な使用方法は、各Descriptorタイプのドキュメントを参照してください。