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
.mtlmalzemeler), glTF 2.0 / GLB, STL (ikili ve ASCII), 3MF ve COLLADA, hem dosya yollarından hem de bellek içindenBuffernesneler. FBX desteği henüz otomatik algılamaya bağlanmadı. - Sahne grafiği API:
Scene,Node,Mesh,Camera,Lighttam ebeveyn/çocuk yönetimiyle hiyerarşi; düğümleri özyinelemeli olarak şu şekilde geçinnode.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(diziVector4), poligon indekslerine şu yollamesh.polygonCount, ve vertex eleman kanalları aracılığıylamesh.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/SaveOptionssı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');