Características e Funcionalidades
Características e Funcionalidades
Esta página cobre todas as principais áreas de Acessórios de 3D-Foss 26.1 Exemplos de Java.
Carregar e economizar cenas
scene.open() carregar um arquivo; scene.save() Exporta o seu:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Alternativas de fábrica estática:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Opções específicas de formato
Passagem LoadOptions ou SaveOptions Subclases para controle de graus finos:
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);Nota de: FBX é suportado apenas para importação; Exportação FB X não é implementada na versão FOSS. Binar Fbx arquivos são suportados para importação — ASCII FBX jogando
ImportException.
Construindo um gráfico de cena
Crie nódulos e adere entidades:
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);Operações de Mesh
Criar a Mesh Com pontos de controle e poligons:
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);Transformando
Cada um Node Carregando a Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Leia o Mundo através do espaço node.getGlobalTransform().getMatrix().
Materiais
Assinale os materiais para os nodos:
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);Tipos de materiais: Material ( em uma base ), PbrMaterial (PBR de metal-hardness).
Dicas e Melhores Práticas
- Usando
Scene.fromFile()para cargas de linha única quando opções personalizadas não são necessárias - Construa as mesas programaticamente com
createPolygon()Para a Geometria Custodível - Usando
.glbExtensão para produção binária compacta glTF - Verificação
node.getEntity() != nullAntes do casting - A exportação do STL Não Exportação binária STL escreve apenas as primeiras 3 vertices de cada cara poligônica - quad ou n-gon faces são silenciosamente truncados. ASCII STl exporta todos os índices verticais, que produz blocos de faceta malformado para facetas não triângulos. Sempre passa mesas pré-trianguladas (todos facetes triángulos) para a exortação ST L para evitar perda de dados ou saída inadequada.
Problemas comuns
| Questão | Causa | Fixar |
|---|---|---|
| Exceção em carga | Ficheiros não suportados ou corrompidos | Verifique o arquivo que se abre em um visualizador 3D |
| Material desaparecido após a carga OBJ | .mtl arquivo não encontrado | Localização .mtl Ao lado do .obj;• Assegurar que os materiais sejam ativados; |
| Desconto de escala após importação | Sistemas de unidade diferentes | Aplique a Transform Escala após carregamento |
FAQ
Como posso detectar o formato de um arquivo?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Posso carregar de um fluxo?
Sim sim. scene.open() Aceita uma InputStream.
Quais formatos suportam tanto importação como exportação?
OBJ, STL e glTF/GLB suportam ambas as direções. FBX é apenas importado; exportação não é implementada na versão FOSS.
APIs Referência Resumo
| Método / Class | Descrição |
|---|---|
Scene | Conteúdo de cena 3D de alto nível |
scene.open() | Carregar um arquivo 3D por caminho ou fluxo |
scene.save() | Exportação de cenários para arquivos ou fluxos |
Scene.fromFile() | Fabricação estática para carregar e devolver a Scene |
Node | Node de hierarquia |
node.createChildNode() | Criar e ligar um nodo infantil |
Mesh | Mês de poligono com pontos de controle e listas de rosto |
mesh.createPolygon() | Defina uma cara poligônica |
Mesh.toMesh() | Geometria de Mesh Convert ou Clone |
Transform | Tradução local, rotação e escala |
FileFormat | Registros e detetores para formatos |