Características e Funcionalidades

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 .glb Extensão para produção binária compacta glTF
  • Verificação node.getEntity() != null Antes 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ãoCausaFixar
Exceção em cargaFicheiros não suportados ou corrompidosVerifique o arquivo que se abre em um visualizador 3D
Material desaparecido após a carga OBJ.mtl arquivo não encontradoLocalização .mtl Ao lado do .obj;• Assegurar que os materiais sejam ativados;
Desconto de escala após importaçãoSistemas de unidade diferentesAplique 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 / ClassDescrição
SceneConteú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
NodeNode de hierarquia
node.createChildNode()Criar e ligar um nodo infantil
MeshMê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
TransformTradução local, rotação e escala
FileFormatRegistros e detetores para formatos
 Português