はじめに
Aspose.3D TypeScript 用 FOSS (@aspose/3d) は、Node.js と最新のブラウザ環境向けのオープンソース、MIT ライセンスの 3D ファイルフォーマット ライブラリです。3D モデルビューア、フォーマットコンバータ、ジオメトリ処理ツール、またはサーバーサイドの 3D パイプラインを構築する開発者は、単一の npm install @aspose/3d コマンドを実行すると、すぐに3Dコンテンツのロード、構築、エクスポートが開始されます。.
ライブラリは主要なインターチェンジフォーマット — OBJ、glTF 2.0 / GLB、STL、3MF、そして COLLADA をインポートとエクスポートの両方でサポートします。FBX インポーター/エクスポーター クラスは存在しますが、まだフォーマット自動検出に組み込まれていません。シーングラフ API は 3D オーサリングツールで馴染みのあるモデルを鏡像のように再現します:a Scene は a を保持します rootNode,、各 Node は子ノードとエンティティオブジェクトを保持できます(Mesh, Camera, Light)、変換階層は読み書きのために完全にアクセス可能です。.
主な機能
- マルチフォーマット I/O::OBJ をインポートおよびエクスポート(
.mtlマテリアル)、glTF 2.0 / GLB、STL(バイナリおよび ASCII)、3MF、そして COLLADA をファイルパスとメモリ上の両方からBufferオブジェクト。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() - Math ユーティリティ:
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');