コンテンツにスキップ

Mesh Descriptor

MeshDescは、3Dメッシュオブジェクトをシーンに追加するためのDescriptorタイプです。様々な3Dオブジェクトを表示できます。

すべてのメッシュは MeshDesc を継承しており、positionrotationscalematrixmatrixWorldgeodeticpickable などの共通プロパティを提供します。トランスフォーム合成、ピッキング、座標変換の詳細については MeshDesc ページを参照してください。

navara_threeでは、以下のMeshDescタイプが利用可能です:

Descriptorタイプ説明
ArclineMeshDesc2点間を結ぶアーク状のラインを描画するDescriptor
BoxMeshDesc立方体(Box)ジオメトリを描画するDescriptor
InstancedBoxMeshDescGPU インスタンシングを使用して複数のボックスを1回の描画コールでレンダリングするDescriptor
CylinderMeshDesc円柱(Cylinder)ジオメトリを描画するDescriptor
InstancedCylinderMeshDescGPU インスタンシングを使用して複数の円柱を1回の描画コールでレンダリングするDescriptor
GLTFModelDescGLTF/GLB形式の3Dモデルを読み込み・表示するDescriptor
InstancedGltfModelMeshDescGPU インスタンシングを使用して GLTF/GLB モデルの複数コピーをレンダリングするDescriptor
GlowGlobeMeshDesc地球の周りにフレネル効果による光彩(グロー)を表示するDescriptor
PlaneMeshDesc平面(Plane)ジオメトリを描画するDescriptor
InstancedPlaneMeshDescGPU インスタンシングを使用して複数の平面を1回の描画コールでレンダリングするDescriptor
RainMeshDesc雨のパーティクルエフェクトを表示するDescriptor
SkyBoxMeshDescシンプルなスカイボックスを描画するDescriptor
SkyMeshDesc大気散乱による空と太陽・月を描画するDescriptor
SmoothLineMeshDescカトマル・ロム曲線による滑らかなラインを描画するDescriptor
SnowMeshDesc雪のパーティクルエフェクトを表示するDescriptor
SphereMeshDesc球体(Sphere)ジオメトリを描画するDescriptor
SplatMeshDescSparkJS による 3D Gaussian Splat アセットを描画するDescriptor
InstancedSphereMeshDescGPU インスタンシングを使用して複数の球を1回の描画コールでレンダリングするDescriptor
StarsDesc星空を描画するDescriptor
TubeMeshDescチューブ(Tube)ジオメトリを描画するDescriptor
AxesHelperDesc3軸を可視化するデバッグ用ヘルパーDescriptor
ArrowHelperDescベクトル方向を可視化するデバッグ用ヘルパーDescriptor

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タイプのドキュメントを参照してください。