Pengantar

Aspose.3D FOSS untuk TypeScript (@aspose/3d) adalah open-source, MIT berlisensi perpustakaan format file 3D yang terutama dirancang untuk Node.js. Pengembang membangun pemirsa model 3d, konverter format, alat pengolahan geometri atau pipa sisi server 3 D dapat menginstalnya dengan satu aplikasi. npm install @aspose/3d perintah dan segera mulai memuat, membangun, dan mengekspor konten 3D. Perpustakaan menggunakan require('fs') dan (b) Buffer dari Node.js; penggunaan browser membutuhkan shims yang sesuai untuk API tersebut dan tidak didukung secara resmi.

Perpustakaan ini mendukung format pertukaran utama OBJ, glTF 2.0 / GLB, STL, 3MF dan COLLADA untuk impor dan ekspor. Kelas importir/ekspor FBX ada tetapi belum tertanam ke deteksi otomatis format. API grafik adegan mencerminkan model yang akrab dari alat pengarang 3D: a Scene memiliki 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 dan ekspor OBJ (dengan .mtl materi), glTF 2.0 / GLB, STL (biner dan ASCII), 3MF, dan COLLADA dari kedua jalur file dan in-memori. Buffer dukungan FBX belum terkoneksi ke deteksi otomatis.
  • API grafik adegan: Scene, Node, Mesh, Camera, Light hierarki dengan manajemen penuh orang tua / anak; simpul melintasi rekursif melalui node.childNodes
  • Sistem bahan PBR: Lambert, Phong dan PBR (metal/keras) bahan yang dapat diakses melalui: node.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 jenis kotak batas untuk perhitungan spasial
  • Sistem animasi: Animasi keyframe dengan AnimationClip, AnimationChannel, dan kurva interpolasi (linear, Bezier, TCB spline)
  • Pilihan khusus format:Per-format: LoadOptions / SaveOptions kelas kontrol koordinat flipping, skala, materi loading, dan banyak lagi

Memulai

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

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.

Muatkan file OBJ dan periksa TKP:

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 binary (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 otomatis mendeteksi format output dari ekstensi file. Pass a GltfSaveOptions contoh untuk kontrol atas PBR materi embedding, tekstur, dan biner vs. JSON pengkodean.

Konstruksi Tampilan

Membangun adegan secara program dan mengekspornya:

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