特性和功能性
特性和功能性
此页面涵盖了每个主要功能区域的 可用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");格式特定的选项
通行 LoadOptions 或 SaveOptions 精细的控制下级:
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 | 格式登记和检测器 |