Вступ
Ми раді оголосити про доступність Aspose.3D FOSS для TypeScript як @aspose/3d npm‑пакет. Ця MIT-licensed бібліотека забезпечує обробку 3D‑сцен виробничої якості у TypeScript та Node.js застосунках без потреби у нативних бінарниках, специфічних для платформи інструментальних ланцюжках або комерційних ліцензіях.
Бібліотека спроектована навколо простого Scene API: завантажити 3D‑файл за допомогою scene.open(), переглянути або трансформувати граф сцени, і записати результат за допомогою scene.save(). Повні визначення типів TypeScript включені; без окремих @types/ пакет потрібен.
Ключові можливості
Багатоформатний ввід/вивід. Пакет читає та записує шість основних 3D‑форматів в одному встановленні. OBJ підтримується для імпорту; glTF 2.0, GLB, STL, 3MF та COLLADA підтримують як імпорт, так і експорт. Класи імпортера/експортера FBX існують, але автоматичне визначення формату ще не реалізовано, тому файли FBX не можна завантажити за допомогою scene.open().
Першокласна підтримка TypeScript. Усі публічні класи, перерахування та типи параметрів повністю типізовані. IDE з підтримкою сервісу мови TypeScript (VS Code, WebStorm тощо) забезпечують точне автодоповнення та вбудовану документацію для кожного виклику API.
Сумісність з Node.js 18–22+. Пакет протестовано з випусками Node.js 18, 20 та 22 LTS. Під час встановлення не компілюються нативні аддони, тому він працює на всіх платформах, які підтримує Node.js.
Одна залежність під час виконання. Єдина залежність — xmldom, використовується виключно для розбору COLLADA XML. Усі інші парсери форматів — чисті реалізації на JavaScript.
Ліцензія MIT. Використовувати @aspose/3d у комерційних, відкритих або внутрішніх проектах без обмежень.
Quick Start
Встановіть пакет:
npm install @aspose/3d
Завантажте файл OBJ і конвертуйте його у бінарний GLB:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
Ітеруйте вузли сцени, щоб переглянути геометрію:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
Supported Formats
| Формат | Розширення | Імпорт | Експорт | Примітки |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Так | Ні | Тільки імпорт; читає .mtl файли матеріалів |
| glTF 2.0 | .gltf | Так | Так | JSON з зовнішнім .bin буфер |
| Бінарний GLB | .glb | Так | Так | Набір binaryMode: true у GltfSaveOptions |
| STL | .stl | Так | Так | ASCII та бінарний STL |
| 3MF | .3mf | Так | Так | архів Open Packaging Convention |
| FBX | .fbx | Ні* | Ні* | Importer/exporter існує, але автоматичне визначення формату не підключено |
| COLLADA | .dae | Так | Так | Вимагає bundled xmldom залежність |
Переваги TypeScript
Працює з @aspose/3d у TypeScript виявляє помилки категорій під час компіляції, а не під час виконання. Коли ви викликаєте scene.save(), компілятор перевіряє, що об’єкт параметрів відповідає очікуваному SaveOptions підтипу для обраного формату. Параметри завантаження та збереження, специфічні для формату, розкривають лише властивості, що стосуються цього формату; немає неконкретизованого набору параметрів, в який треба вгадувати.
Наприклад, GltfSaveOptions.binaryMode є типізованим boolean, тому компілятор відхиляє saveOpts.binaryMode = 'yes' перед тим, як виконається будь-який код. Властивості анімації на AnimationClip, канали матеріалу на PbrMaterial, і типи елементів вершини на VertexElement всі мають однаковий тип і доступні через IntelliSense без необхідності звертатися до зовнішньої документації.
Open Source and Free
Пакет опубліковано під MIT License. Вихідний код доступний на GitHub. Внески, повідомлення про помилки та запити на підтримку форматів вітаються через трекер проблем репозиторію.
Бібліотека має одну залежність під час виконання: xmldom версія 0.9+, використовується лише при читанні або записі файлів COLLADA. Усі інші парсери та записувачі є самодостатніми чистими JavaScript‑реалізаціями без бінарних компонентів.
Getting Started
- npm:
npm install @aspose/3d - База знань: Як завантажити 3D‑моделі в TypeScript
- База знань: Як експортувати 3D-сцени у glTF/GLB за допомогою TypeScript
- Посилання на API: Aspose.3D FOSS для TypeScript: Повний довідник класів
- GitHub: aspose-3d/aspose-3d-node
Висновок
@aspose/3d версія 24.12.0 забезпечує стабільну, типізовану, легку у залежностях основу для обробки 3D‑файлів у TypeScript та Node.js. Незалежно від того, чи йдеться про конвертацію форматів, інспекцію сцени, видобуток геометрії чи інтеграцію в конвеєр, бібліотека охоплює найпоширеніші формати обміну 3D під permissive open-source ліцензією.
Встановіть її сьогодні і дайте нам знати, що ви створили.