1. 产品
  2.   3D
  3.   Java
  4.   Aspose.3D for Java

Aspose.3D for Java

 
 

用于生成和转换 3D 图形的 Java API

一个实用的计算机辅助设计(CAD)API,使软件开发者能够创建、操作并导出多种格式的 3D 文件。

什么是 Aspose.3D for Java?

一个强大且用户友好的 3D 文件格式处理库,Aspose.3D for Java 使程序员能够创建、编辑、加载、操作和保存 3D 文件,而无需安装任何 3D 建模或渲染工具。借助此库,软件开发人员可以轻松生成、编辑和转换多种格式的 3D 模型,如 STL、OBJ、FBX、DAE、glTF、DRC、AMF、PLY、3DS 等。此外,该库还允许从包括 CAD 应用程序在内的多种来源导入 3D 模型,并进行必要的修改。

软件开发人员可以使用 Aspose.3D for Java 从头构建场景,而无需依赖任何第三方建模工具。创建全新的 3D 文档、读取 3D 文档、检测 3D 文件格式、将 3D 场景转换为 HTML、将场景导出为压缩的 AMF 格式、将非 PBR 材质转换为 PBR 材质、在多个节点之间共享网格几何数据、向场景文件添加动画属性、按材质拆分网格、处理几何体和场景层次结构,以及许多其他功能,都是该库用于处理 3D 文档的一部分。

除了处理大型或复杂 3D 模型的工具外,Aspose.3D for Java 还提供了极其有用的 3D 模型处理功能,包括 3D 网格优化、文件压缩和文件转换。该库在全面支持 3D 图形渲染的同时,还具备多项强大的渲染特性,如光照效果、纹理映射和着色,使开发人员能够生成高质量的 3D 图形。它帮助开发者制作可用于广泛应用的逼真 3D 模型,包括工程仿真、视频游戏和建筑设计。

Previous Next

Aspose.3D for Java 入门指南

推荐的 Aspose.3D for Java 安装方式是使用 NuGet。请使用以下命令以顺利安装。

 //First, you need to specify the Aspose Maven Repository configuration/location in your Maven pom.xml as follows:

<repositories>
	<repository>
	<id>AsposeJavaAPI</id>
	<name>Aspose Java API</name>
	<url>https://releases.aspose.com/java/repo/</url>
	</repository>
</repositories>

//Define Aspose.PDF for Java API Dependency

<dependencies>
	<dependency>
	<groupId>com.aspose</groupId>
	<artifactId>aspose-3d;/artifactId>
	<version>21.4</version>
    </dependency>
</dependencies>
您也可以直接从 Aspose 产品页面 下载。

通过 Java API 进行 3D 文件格式转换

Aspose.3D for Java 为软件开发人员提供了在其 Java 应用程序中互相转换 3D 文件格式的能力,无需任何外部依赖或安装任何第三方 3D 建模或渲染软件。该库已包含对多种 3D 文件格式的保存支持,例如 3DS、3MF、DAE、DFX、gITF、Collada、glTF、GLB、Draco、RVM、U3D 等。该库还支持将 3D 场景转换为 PDF、HTML 等更多格式。

如何通过 Java API 将 3D 场景保存为 HTML?

Scene scene = new Scene();
// Initialize a node
Node node = scene.getRootNode().createChildNode(new Cylinder());
// Set child node properites
LambertMaterial mat = new LambertMaterial();
mat.setDiffuseColor(new Vector3(0.34,0.59, 0.41));
node.setMaterial(mat);
Light light = new Light();
light.setLightType(LightType.POINT);
scene.getRootNode().createChildNode(light).getTransform().setTranslation(10, 0, 10);
// Initialize HTML5SaveOptions
HTML5SaveOptions opt = new HTML5SaveOptions();
// Turn off the grid
opt.setShowGrid(false);
//Turn off the user interface
opt.setShowUI(false);
scene.save(RunExamples.getDataDir() + "html5SaveOption.html", FileFormat.HTML5);

通过 Java API 创建 3D 场景

Aspose.3D for Java 已经包含了在其 Java 应用程序中创建和处理 3D 场景的功能。该库允许将 3D 场景保存为多种受支持的文件格式,例如 STL、FBX、Discreet3DS、WavefrontOBJ、Collada、Universal3D 等等。该库支持多项处理 3D 场景的重要功能,例如创建空的 3D 场景、加载已有的 3D 场景、将 3D 场景导出为其他支持的文件格式、将 3D 场景保存为 HTML、加载现有属性、修改现有属性等。

如何通过 Java API 创建空的 3D 场景?

// The path to the documents directory.
String MyDir = RunExamples.getDataDir();
MyDir = MyDir + "document.fbx";
// Create an object of the Scene class
Scene scene = new Scene();
// Save 3D scene document
scene.save(MyDir, FileFormat.FBX7500ASCII);

在 Java 应用中使用 3D 网格

Aspose.3D 是一个 Java API,允许软件开发人员处理多种格式的 3D 模型,包括 OBJ、STL 和 FBX。该库只需几行 Java 代码即可创建圆柱体。用户可以为圆柱体添加材质;可以使用 Mesh 类的 setMaterial 方法。该库还允许开发人员将圆柱体导出为其他文件格式,如 OBJ、STL、FBX 等。下面的示例展示了如何轻松地将圆柱体导出为 OBJ 文件。

如何通过 Java API 对网格进行三角化?

// The path to the documents directory.
String MyDir = RunExamples.getDataDir();
// Initialize scene object
Scene scene = new Scene();
scene.open(MyDir + "document.fbx");
scene.getRootNode().accept(new NodeVisitor() {
@Override
public boolean call(Node node) {
Mesh mesh = (Mesh)node.getEntity();
if (mesh != null)
{
// Triangulate the mesh
Mesh newMesh = PolygonModifier.triangulate(mesh);
// Replace the old mesh
node.setEntity(newMesh);
}
return true;
}
});
MyDir = MyDir + RunExamples.getOutputFilePath("document.fbx");
scene.save(MyDir, FileFormat.FBX7400ASCII);

通过 Java API 创建和管理圆柱体

Aspose.3D for Java 允许软件开发人员使用 .NET 库在 Visio 图表中以不同方式处理 Visio。C# 库包含多种处理形状中文本的功能,例如插入文本形状、在 Visio 图表中自定义文本形状、更新形状的文本、查找并替换形状的文本、对文本应用内置或自定义样式表、对形状的每个文本值应用不同样式、从 Visio 图表页面提取纯文本等。

如何通过 Java API 将圆柱体导出为 OBJ 文件?

import com.aspose.threed.*;

Cylinder cylinder = new Cylinder();
cylinder.setHeight(5);
cylinder.setRadius(2);

Material material = new Material();
material.setAmbientColor(Color.fromArgb(255, 0, 0));
material.setDiffuseColor(Color.fromArgb(255, 0, 0));
material.setSpecularColor(Color.fromArgb(255, 255, 255));
material.setShininess(20);

Mesh mesh = cylinder.toMesh();
mesh.setMaterial(material);

Scene scene = new Scene();
scene.getRootNode().createChildNode("cylinder").attachMesh(mesh);
scene.save("cylinder.obj", FileFormat.OBJ);

 中国人