Pendahuluan

Aspose.3D FOSS untuk TypeScript (@aspose/3d) adalah perpustakaan format file 3D sumber terbuka, berlisensi MIT untuk Node.js dan lingkungan peramban modern. Pengembang yang membuat penampil model 3D, konverter format, alat pemrosesan geometri, atau pipeline 3D sisi server dapat menginstalnya dengan satu npm install @aspose/3d perintah dan langsung mulai memuat, membangun, serta mengekspor konten 3D.

Perpustakaan ini mendukung format pertukaran utama — glTF 2.0 / GLB, STL, 3MF, dan COLLADA untuk impor dan ekspor, serta OBJ hanya untuk impor. Kelas pengimpor/pengekspor FBX ada tetapi belum terhubung ke deteksi otomatis format. API grafik adegan mencerminkan model yang familiar dari alat authoring 3D: sebuah Scene menyimpan sebuah rootNode, masing-masing Node dapat membawa node anak dan objek entitas (Mesh, Camera, Light), dan hierarki transformasi sepenuhnya dapat diakses untuk membaca dan menulis.

Fitur Utama

  • I/O multi-format: Impor OBJ (dengan .mtl material, hanya impor), glTF 2.0 / GLB, STL (biner dan ASCII), 3MF, dan COLLADA dari jalur file maupun memori Buffer objek. glTF, STL, 3MF, dan COLLADA juga mendukung ekspor. Dukungan FBX belum terhubung ke deteksi otomatis.
  • API grafik adegan: Scene, Node, Mesh, Camera, Light hierarki dengan manajemen induk/anak lengkap; menelusuri node secara rekursif melalui node.childNodes
  • sistem material PBR: material Lambert, Phong, dan PBR (metallic/roughness) dapat diakses melalui node.entity.material
  • operasi Mesh: Akses data vertex mentah melalui mesh.controlPoints (array dari Vector4), indeks poligon melalui mesh.polygonCount, dan saluran elemen vertex melalui mesh.getElement()
  • Utilitas Matematika: Vector2, Vector3, Vector4, Matrix4, Quaternion, dan tipe kotak pembatas untuk perhitungan spasial
  • Sistem animasi: Animasi keyframe dengan AnimationClip, AnimationChannel, dan kurva interpolasi (linier, Bezier, spline TCB)
  • Opsi khusus format: Per-format LoadOptions / SaveOptions kelas mengontrol pembalikan koordinat, skala, pemuatan material, dan lainnya

Memulai

Instal dari npm. Node.js 18 atau lebih baru diperlukan; TypeScript 5.0+ disarankan.

npm install @aspose/3d

Muat file OBJ dan periksa adegan:

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`);
    }
}

Ekspor ke glTF

Simpan setiap adegan yang dimuat atau dibangun ke glTF 2.0 biner (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');

Perpustakaan secara otomatis mendeteksi format output dari ekstensi file. Berikan sebuah GltfSaveOptions instance untuk mengontrol penyematan material PBR, tekstur, serta enkoding biner vs. JSON.

Konstruksi Adegan

Bangun adegan secara programatis dan ekspor itu:

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');

Lihat Juga