特性和功能性

特性和功能性

此页面涵盖了每个主要功能区域的 可用3D FOSS 26.1.0 使用Java的例子。.


播放和保存场景

scene.open() 加载文件; scene.save() 出口它:

import com.aspose.threed.Scene;

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

静态工厂替代品:

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

格式特定的选项

通行 LoadOptionsSaveOptions 精细的控制下级:

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

注: FBX 仅支持进口; FB X 出口不适用于 FOSS 版本。 二元FbX 文件支持进口 — ASCII FBX 投下 ImportException.


创建一个舞台图形

创建节点和附属实体:

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

梅西行动

创建 A Mesh 以控制点和聚合物为编程:

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

转型

每个人 Node 带 A Transform:

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

阅读世界空间通过 node.getGlobalTransform().getMatrix().


材料

将材料分配给节点:

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

材料类型: Material 基于, PbrMaterial (PBR金属硬度).


提示和最佳实践

  • 使用 Scene.fromFile() 对于单线负载,当不需要自定义选项时
  • 以编程的方式构建 createPolygon() 定位地质学
  • 使用 .glb 扩展为微型二进制GLTF输出
  • 检查 node.getEntity() != null 之前的卡斯特
  • STL 出口 不是 二元STL出口只写了每个三角形面的前3个垂直 - 四方或n-gon面是沉默地折叠。ASCII STL export写下了所有垂向指数,产生不变的面对面块为非三方面。.

常见问题

问题原因修复
除负载外未支持或腐败的文件检查文件在3D视图中打开
失去的材料在OBJ负载后.mtl 未找到文件地点 .mtl 旁边的 .obj;确保材料可用。
进口后规模不相匹配不同单位系统应用 A Transform 加载后的尺寸

FAQ

如何检测文件格式?

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

我可以从流中加载吗?

是的。. scene.open() 接受一 InputStream.

哪些格式支持进口和出口?

OBJ、STL 和 glTF/GLB 支持两条方向. FBX 仅进口;出口不适用于 FOSS 版本。.


API 参考概述

课堂 / 方法描述
Scene顶级3D场景容器
scene.open()按路径或流量下载3D文件
scene.save()出口场景到文件或流
Scene.fromFile()静态工厂充电和返回A Scene
Node舞台地理节点
node.createChildNode()创建和附带一个儿童节点
Mesh聚合物面具与控制点和面部列表
mesh.createPolygon()定义一个多角形面孔
Mesh.toMesh()转换或克隆地质学
Transform地点翻译、旋转和规模
FileFormat格式登记和检测器
 中文