はじめに
Aspose.3D FOSS for TypeScript (@aspose/3d) は、Node.js と最新のブラウザ環境向けのオープンソース、MIT ライセンスの 3D ファイルフォーマット ライブラリです。3D モデルビューア、フォーマットコンバータ、ジオメトリ処理ツール、またはサーバーサイドの 3D パイプラインを構築する開発者は、単一の npm install @aspose/3d コマンドを実行し、すぐに3Dコンテンツの読み込み、構築、エクスポートを開始します。.
このライブラリは主要なインターチェンジフォーマット — glTF 2.0 / GLB、STL、3MF、そして COLLADA をインポートとエクスポートの両方で、OBJ はインポートのみでサポートします。FBX のインポーター/エクスポーター クラスは存在しますが、まだフォーマット自動検出に組み込まれていません。シーングラフ API は 3D オーサリングツールで馴染みのあるモデルを鏡像のように再現します: a Scene は a を保持します rootNode, 各 Node は子ノードとエンティティオブジェクトを保持できます(Mesh, Camera, Light)、変換階層は読み書きのために完全にアクセス可能です。.
主な機能
- マルチフォーマット I/O: OBJ をインポート(含む
.mtlマテリアル、インポートのみ)、glTF 2.0 / GLB、STL(バイナリおよび ASCII)、3MF、そして COLLADA をファイルパスとメモリ上の両方からBufferobjects. glTF、STL、3MF、そしてCOLLADAもエクスポートをサポートしています。FBX のサポートはまだ自動検出に組み込まれていません。. - シーン グラフ API:
Scene,Node,Mesh,Camera,Light完全な親子管理を備えた階層構造;ノードを再帰的に走査するには、node.childNodes - PBR マテリアルシステム: Lambert、Phong、そして PBR(metallic/roughness)マテリアルは、
node.entity.material - メッシュ操作: 生の頂点データにアクセスするには、
mesh.controlPoints(配列のVector4), ポリゴンインデックスは、mesh.polygonCount, および頂点要素チャンネルは、mesh.getElement() - 数学ユーティリティ:
Vector2,Vector3,Vector4,Matrix4,Quaternion, 空間計算用のバウンディングボックスタイプ - アニメーションシステム::キーフレームアニメーション
AnimationClip,AnimationChannel,、線形、ベジエ、TCBスプラインなどの補間曲線 - フォーマット固有のオプション::フォーマット別
LoadOptions/SaveOptionsクラスは座標の反転、スケール、マテリアルの読み込みなどを制御します
はじめに
npm からインストールします。Node.js 18 以降が必要です;TypeScript 5.0 以上を推奨します。.
npm install @aspose/3d
OBJ ファイルをロードしてシーンを検査する:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);
for (const node of scene.rootNode.childNodes) {
if (node.entity && 'controlPoints' in node.entity) {
const mesh = node.entity as any;
console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
}
}
glTFにエクスポート
ロードまたは構築したシーンを glTF 2.0 バイナリ (GLB) に保存します:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');
ライブラリはファイル拡張子から出力フォーマットを自動検出します。渡す GltfSaveOptions インスタンスを渡して、PBRマテリアルの埋め込み、テクスチャ、バイナリとJSONエンコーディングの切り替えを制御します。.
シーン構築
プログラムでシーンを構築し、エクスポートします:
import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';
const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');