Kā ielādēt 3D modeļus Java

Kā ielādēt 3D modeļus Java

aspose-3d-foss priekš Java nodrošina vienkāršu API 3D failu atvēršanai. Pēc faila ielādēšanas objektā Scene objektā jūs varat pārvietoties pa mezglu hierarhiju un nolasīt ģeometrijas datus.

Solī pa solim rokasgrāmata

1. solis: Instalējiet pakotni

Pievienojiet Maven atkarību:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-3d-foss</artifactId>
  <version>26.1.0</version>
</dependency>

2. solis: Importējiet Scene klasi

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;

3. solis: Ielādējiet failu

Scene scene = new Scene();
scene.open("model.obj");

Vai arī izmantojiet statisko ražotāju:

Scene scene = Scene.fromFile("model.obj");

Atbalstītie formāti: OBJ, STL, glTF 2.0 / GLB, FBX (tikai binārais — ASCII FBX netiek atbalstīts un izraisa ImportException).


4. solis: Pārlūkojiet Scene mezglus

void walk(Node node, int depth) {
    String indent = " ".repeat(depth * 2);
    System.out.println(indent + "Node: " + node.getName());
    for (Node child : node.getChildNodes()) {
        walk(child, depth + 1);
    }
}

walk(scene.getRootNode(), 0);

5. solis: Piekļūstiet Mesh datiem

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        System.out.println("Mesh '" + node.getName() + "': " +
            mesh.getControlPoints().size() + " vertices, " +
            mesh.getPolygonCount() + " polygons");
    }
}

Biežāk sastopamās problēmas un to risinājumi

Izņēmums ielādes laikā

Pārbaudiet, vai fails nav bojāts un vai formāts tiek atbalstīts (OBJ, STL, glTF, FBX).

NullPointerException piekļūstot entītijai

Ne katrs mezgls nes ģeometriju. Vienmēr pārbaudiet node.getEntity() instanceof Mesh pirms pārvēršanas.

Koordinātu sistēmas neatbilstība

Izmantojiet ObjLoadOptions.setFlipCoordinateSystem(true) vai piemērojiet rotāciju pēc ielādes.


Biežāk uzdotie jautājumi (BUJ)

Kādus formātus varu ielādēt?

OBJ, STL (binārais un ASCII), glTF 2.0 / GLB, un FBX. FBX gadījumā, tikai binārais FBX ir atbalstīts. ASCII FBX faili izsauks ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Vai varu ielādēt no InputStream?

Jā. scene.open() pieņem InputStream.

Vai bibliotēka ir pavedienu droša?

Katrs Scene Instancē ir neatkarīga. Atsevišķu failu ielāde atsevišķās instancēs no atsevišķiem pavedieniem ir droša.

 Latviešu