Особенности и функциональность
Особенности и функциональность
Эта страница охватывает каждую основную область Ассоциация Aspose-3d-Foss 26.1.0 Примеры работы Java.
Загрузка и сбережение сценарий
scene.open() заряжают файл; scene.save() Ее экспортируют:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Статическая фабричная альтернатива:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Формат-специфические варианты
Паспорт LoadOptions или SaveOptions Подкласс для фино-зеленых контролей:
import com.aspose.threed.*;
Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);
GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);Примечание : FBX поддерживается только для импорта; экспорт FB X не реализуется в версии FOSS. Бинарный FBX файлы поддерживаются для импорта — ASCII FBX выбросывает
ImportException.
Создание сценического графа
Создайте узлы и присоединяйтесь к субъект:
Scene scene = new Scene();
Node root = scene.getRootNode();
Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);
Node meshNode = root.createChildNode("triangle", mesh);Меш операции
Создайте A Mesh Программируя с контрольными точками и полигонами:
Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);Трансформация
Каждый Node Носит A Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Читать Всемирный космос через node.getGlobalTransform().getMatrix().
Материалы
Присвоить материалы к узлам:
import com.aspose.threed.*;
PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);
scene.getRootNode().createChildNode("red_mesh", mesh, mat);Типы материалов : Material и базы, PbrMaterial (ПБР металлическая жесткость).
Советы и лучшие практики
- Использование
Scene.fromFile()для однолинейных загрузок, когда персонализированные варианты не нужны - Создайте мебель программируемо с
createPolygon()Для обычной геометрии - Использование
.glbРазвитие для компактного бинарного GLTF - Проверка
node.getEntity() != nullПеред кастингами - В экспорте STL Не не ТРИАНГУЛЬНЫЙ ПОЛИГОН ФОЗЫТ автоматически. Бинарный экспорт STL пишет только первые 3 вертикали каждого полигона - квадратные или н-гонные лица тихо перекручиваются. экспортирующий ASCII STl пишется все вертексные показатели, которые производят деформированные фацельные блоки для нетриангльных лиц. Всегда проходит предварительно триангулированных меша (всех трехъевых) к экспорту STЛ, чтобы избежать потери данных или невыполненного выхода.
Общие вопросы
| Проблема | Причины | Ремонт |
|---|---|---|
| Исключение на нагрузке | Неподдерживаемые или коррумпированные файлы | Проверьте, что файл открывается в 3D-видере |
| Пропущенные материалы после OBJ-загрузки | .mtl Файл не найден | Место .mtl Вместе с .obj;• обеспечить, чтобы материалы были разрешены; |
| Недостаток после импорта | Разные единоличные системы | Применить A Transform Скалирование после зарядки |
FAQ
Как я могу обнаружить формат файла?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Можно ли загрузить из потока?
Да и да. scene.open() Принимает в InputStream.
Какие форматы поддерживают как импорт, так и экспорт?
OBJ, STL и glTF/GLB поддерживают оба направления. FBX импортируется только; экспорт не реализуется в версии FOSS.
Описание API Reference Summary
| Класс / Метод | описание |
|---|---|
Scene | 3D-сцена контейнер высокого уровня |
scene.open() | Загрузить 3D-файл по маршруту или потоку |
scene.save() | Экспорт сцены в файл или потоки |
Scene.fromFile() | Статический завод для зарядки и возвращения Scene |
Node | Иерархия нод |
node.createChildNode() | Создайте и прикрепите детский узел |
Mesh | Полигонная меша с контрольными точками и листями лица |
mesh.createPolygon() | Определите полигонную лицу |
Mesh.toMesh() | Конвертируйте или клонируете геометрию меша |
Transform | Местный перевод, ротация и масштабы |
FileFormat | Регистр и детектор для формата |