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 kurabilir ve hemen 3D içeriği yüklemeye, oluşturmaya ve dışa aktarmaya başlayabilirsiniz.
Kütüphane, ana değişim formatlarını — glTF 2.0 / GLB, STL, 3MF ve COLLADA hem içe aktarım hem de dışa aktarım için, ve yalnızca içe aktarım için OBJ — destekler. FBX içe aktarıcı/dışa aktarıcı sınıfları mevcuttur 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 olan modeli yansıtır: bir Scene bir … içerir 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.
Temel Özellikler
- Çoklu format G/Ç: OBJ’yi içe aktar (ile
.mtlmalzemeler, yalnızca içe aktarım), glTF 2.0 / GLB, STL (binary ve ASCII), 3MF ve COLLADA hem dosya yollarından hem de bellek içindenBuffernesneler. glTF, STL, 3MF ve COLLADA ayrıca dışa aktarmayı destekler. 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 dolaşınnode.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(dizisiVector4), poligon indislerine ş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
Programatik olarak bir sahne 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');