Ievads
Aspose.3D FOSS priekš TypeScript (@aspose/3d) ir atvērtā koda, MIT licencēta 3D failu formāta bibliotēka priekš Node.js un mūsdienīgām pārlūkprogrammu vidēm. Izstrādātāji, kas veido 3D modeļu skatītājus, formātu konvertētājus, ģeometrijas apstrādes rīkus vai servera puses 3D cauruļvadu, var to instalēt ar vienu npm install @aspose/3d komandu un nekavējoties sākt ielādēt, konstruēt un eksportēt 3D saturu.
Bibliotēka atbalsta galvenos apmaiņas formātus — OBJ, glTF 2.0 / GLB, STL, 3MF un COLLADA gan importam, gan eksportam. FBX importētāja/eksportētāja klases pastāv, bet tās vēl nav integrētas automātiskajā formāta noteikšanā. Scēnas grafa API atspoguļo modeli, kas pazīstams no 3D autorēšanas rīkiem: a Scene satur a rootNode, katrs Node var nēsāt bērnu mezglus un entītiju objektus (Mesh, Camera, Light), un transformācijas hierarhija ir pilnībā pieejama lasīšanai un rakstīšanai.
Galvenās funkcijas
- Daudzformātu I/O: Importēt un eksportēt OBJ (ar
.mtlmateriālus), glTF 2.0 / GLB, STL (bināri un ASCII), 3MF un COLLADA gan no faila ceļiem, gan atmiņāBufferobjektus. FBX atbalsts vēl nav integrēts automātiskajā noteikšanā. - Ainas grafa API:
Scene,Node,Mesh,Camera,Lighthierarhija ar pilnīgu vecāku/bērnu pārvaldību; pārvietoties caur mezgliem rekursīvi, izmantojotnode.childNodes - PBR materiālu sistēma: Lambert, Phong un PBR (metāla/raušuma) materiāli pieejami caur
node.entity.material - Tīklu operācijas: Piekļūt neapstrādātiem virsotņu datiem, izmantojot
mesh.controlPoints(masīvs noVector4), daudzstūru indeksus, izmantojotmesh.polygonCount, un virsotnes elementu kanāli caurmesh.getElement() - Matemātikas utilītprogrammas:
Vector2,Vector3,Vector4,Matrix4,Quaternion, un robežkastes veidi telpiskajām aprēķiniem - Animācijas sistēma: Kadru animācija ar
AnimationClip,AnimationChannel, un interpolācijas līknes (lineāras, Bezier, TCB spline) - Formāta specifiskās opcijas: Katram formātam
LoadOptions/SaveOptionsklases kontrolē koordinātu pārkārtošanu, mērogu, materiālu ielādi un vairāk
Sākums
Instalējiet no npm. Nepieciešams Node.js 18 vai jaunāks; ieteicams TypeScript 5.0+.
npm install @aspose/3d
Ielādējiet OBJ failu un pārbaudiet ainu:
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`);
}
}
Eksportēt uz glTF
Saglabājiet jebkuru ielādētu vai izveidotu ainu glTF 2.0 binārajā formātā (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');
Bibliotēka automātiski noteic izvades formātu no faila paplašinājuma. Padodiet GltfSaveOptions instanci, lai kontrolētu PBR materiālu iegulšanu, tekstūras un bināro pret JSON kodēšanu.
Ainas konstrukcija
Izveidojiet ainu programmatiski un eksportējiet to:
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');