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.