Giriş

Aspose.3D FOSS TypeScript için (@aspose/3d) açık kaynaklı, MIT lisanslı bir 3D dosya formatı kütüphanesidir Node.js ve modern tarayıcı ortamları için. 3D model görüntüleyicileri, format dönüştürücüleri, geometri işleme araçları veya sunucu tarafı 3D işlem hatları geliştiren geliştiriciler tek bir npm install @aspose/3d komutla ve hemen 3D içeriği yüklemeye, oluşturmaya ve dışa aktarmaya başlayabilirsiniz.

Kütüphane, hem içe hem de dışa aktarım için OBJ, glTF 2.0 / GLB, STL, 3MF ve COLLADA gibi temel değişim formatlarını destekler. FBX içe/dışa aktarma sınıfları mevcut ancak henüz format otomatik algılamasına bağlanmamıştır. Sahne grafiği API’si, 3D modelleme araçlarından tanıdık modeli yansıtır: bir Scene bir … tutar rootNode, her Node çocuk düğümler ve varlık nesneleri taşıyabilir (Mesh, Camera, Light), ve dönüşüm hiyerarşisi okuma ve yazma için tamamen erişilebilir.

Ana Özellikler

  • Çoklu format G/Ç: OBJ’yi içe ve dışa aktar (ile .mtl malzemeler), glTF 2.0 / GLB, STL (ikili ve ASCII), 3MF ve COLLADA, hem dosya yollarından hem de bellek içinden Buffer nesneler. FBX desteği henüz otomatik algılamaya bağlanmadı.
  • Sahne grafiği API: Scene, Node, Mesh, Camera, Light tam ebeveyn/çocuk yönetimiyle hiyerarşi; düğümleri özyinelemeli olarak şu şekilde geçin node.childNodes
  • PBR malzeme sistemi: Lambert, Phong ve PBR (metallic/roughness) malzemelere şu yolla erişilebilir node.entity.material
  • Mesh işlemleri: Ham vertex verilerine şu yolla erişin mesh.controlPoints (dizi Vector4), poligon indekslerine şu yolla mesh.polygonCount, ve vertex eleman kanalları aracılığıyla mesh.getElement()
  • Matematik yardımcı programları: Vector2, Vector3, Vector4, Matrix4, Quaternion, ve uzamsal hesaplamalar için sınırlayıcı kutu tipleri
  • Animasyon sistemi: Anahtar kare animasyonu ile AnimationClip, AnimationChannel, ve enterpolasyon eğrileri (lineer, Bezier, TCB spline)
  • Formata özgü seçenekler: Formata göre LoadOptions / SaveOptions sınıflar koordinat çevirme, ölçek, malzeme yükleme ve daha fazlasını kontrol eder

Başlarken

npm üzerinden kurun. Node.js 18 veya üzeri gereklidir; TypeScript 5.0+ önerilir.

npm install @aspose/3d

Bir OBJ dosyası yükleyin ve sahneyi inceleyin:

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’ye Dışa Aktar

Yüklenmiş veya oluşturulmuş herhangi bir sahneyi glTF 2.0 ikili (GLB) formatında kaydedin:

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

Kütüphane, dosya uzantısından çıktı formatını otomatik olarak algılar. Bir GltfSaveOptions örnek, PBR malzeme gömme, dokular ve ikili vs. JSON kodlaması üzerinde kontrol sağlar.

Sahne Oluşturma

Bir sahneyi programlı olarak oluşturun ve dışa aktarın:

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

Ayrıca Bakınız