Особенности и функциональность

Особенности и функциональность

Особенности и функциональность

Эта страница охватывает каждую основную область Ассоциация 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

Класс / Методописание
Scene3D-сцена контейнер высокого уровня
scene.open()Загрузить 3D-файл по маршруту или потоку
scene.save()Экспорт сцены в файл или потоки
Scene.fromFile()Статический завод для зарядки и возвращения Scene
NodeИерархия нод
node.createChildNode()Создайте и прикрепите детский узел
MeshПолигонная меша с контрольными точками и листями лица
mesh.createPolygon()Определите полигонную лицу
Mesh.toMesh()Конвертируйте или клонируете геометрию меша
TransformМестный перевод, ротация и масштабы
FileFormatРегистр и детектор для формата
 Русский