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í
.glbRozšíření pro kompaktní binární glTF výstup - Zkontrolujte
node.getEntity() != nullPř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ém | Příčina | Fixovat |
|---|---|---|
| Výjimka z nákladů | Nepodporované nebo zkorumpované soubory | Zkontrolujte, zda se soubor otevře v 3D prohlížeči |
| Chybí materiály po OBJ zatížení | .mtl Soubor nenajdete | Místo .mtl Vedle toho .obj;• zajistit, aby materiály byly zpřístupněny |
| Rozsah po dovozu | Různé jednotkové systémy | aplikovat 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 / metoda | Popis |
|---|---|
Scene | 3D 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 |
Node | HYERARHICKÉ NODE |
node.createChildNode() | Vytvořte a přidělejte dětský nůž |
Mesh | Polygonová maska s kontrolními body a listy obličeje |
mesh.createPolygon() | Definujte polygonovou tvář |
Mesh.toMesh() | Konverze nebo klonování geometrie |
Transform | Lokální překlad, rotace a skalní rozsah |
FileFormat | Registry a detektory pro formáty |