Funkce a funkce

Funkce a funkce

Tato stránka pokrývá každou hlavní oblast funkce Aspose 3D-Foss 26.0 Využijte příkladů Java.


Skládání a úspora scén

scene.open() přihlašuje soubor; scene.save() Vyváží se:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

Statická továrna alternativy:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

Speciální možnosti formátu

Pasáž LoadOptions nebo SaveOptions Podskupiny pro jemně zrnné kontroly:

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);

Poznámka : FBX je podporován pouze pro dovoz; export FB X není implementovány v verzi FOSS. Binární FBX soubory jsou podporovány pro import — ASCII FBX hodí ImportException.


Vytvoření scénického grafu

Vytvořte uzly a přidělejte entity:

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);

Mesh operace

Vytvořte A Mesh Programován s kontrolními body a polygony:

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);

Transformace

Každý Node Přenášejí A Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

Číst dál Světový prostor node.getGlobalTransform().getMatrix().


Materiály

Přidělovat materiály pro uzly:

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);

Typy materiálů : Material a na základě, PbrMaterial (PBR kovová tvrdost).


Tipy a nejlepší postupy

  • Použití Scene.fromFile() pro jednopodlažní zatížení, když nejsou potřeba přizpůsobené možnosti
  • Vytvořte si programové sázky createPolygon() pro geometrické typy
  • Použití .glb Rozšíření pro kompaktní binární glTF výstup
  • Zkontrolujte node.getEntity() != null Před castingem
  • Exportní STL Ne Trojstranný polygon se automaticky objevuje. Binární STL export píše pouze první 3 vrstvách každého poligonu - čtvercové nebo n-gonové tváře jsou tiše zakotvené. ASCII STl export napsá všechny vertex indexy, které produkují zlomené frontální bloky pro ne-triangle tváre. Vždy předchází předtrijakované mase (všechny triangles tvář) do exportu ST L aby se zabránilo ztrátě dat nebo neplatné výstupu.

Společné problémy

ProblémPříčinaFixovat
Výjimka z nákladůNepodporované nebo zkorumpované souboryZkontrolujte, zda se soubor otevře v 3D prohlížeči
Chybí materiály po OBJ zatížení.mtl Soubor nenajdeteMísto .mtl Vedle toho .obj;• zajistit, aby materiály byly zpřístupněny
Rozsah po dovozuRůzné jednotkové systémyaplikovat A Transform Po nakládce po skalu

FAQ

Jak rozpoznám formát souboru?

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

Mohu si ho naložit z toku?

Ano ano . scene.open() Přijímá jeden InputStream.

Jaké formáty podporují jak dovoz, tak vývoz?

OBJ, STL a glTF/GLB podporují obě směry. FBX je import-only; export není implementován v verzi FOSS.


Referenční souhrn API

třída / metodaPopis
Scene3D scénní kontejnery na vysoké úrovni
scene.open()3D soubor na cestě nebo toku
scene.save()Export scény do souboru nebo streamování
Scene.fromFile()Statická továrna na nabití a vrácení Scene
NodeHYERARHICKÉ NODE
node.createChildNode()Vytvořte a přidělejte dětský nůž
MeshPolygonová maska s kontrolními body a listy obličeje
mesh.createPolygon()Definujte polygonovou tvář
Mesh.toMesh()Konverze nebo klonování geometrie
TransformLokální překlad, rotace a skalní rozsah
FileFormatRegistry a detektory pro formáty
 Čeština