用 Java 创建 3D 场景

3D 场景是在计算机上显示 3D 形状的一种方式。在本指南中,我们将学习如何使用 Java 创建 3D 场景,而不需要任何特殊的 3D 软件。之后,我们将以 FBX 文件格式保存 3D 场景,这是共享 3D 内容的常见方式。那么,让我们开始吧。

本文将涵盖以下主题:

  1. 用于创建 3D 场景的 Java 3D API — 免费下载
  2. 用Java创建一个简单的3D场景
  3. 使用 Java 读取 3D 场景
  4. 免费学习资源

用于创建 3D 场景的 Java 3D API - 免费下载

我们将使用 Aspose.3D for Java API 来创建和读取 3D 场景。它是一个功能强大的 API,允许您以各种格式创建、编辑和保存 3D 场景。它允许创建和编辑 3D 网格、材质和纹理。该 API 还支持添加和配置灯光、摄像机和动画。

下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-3d</artifactId>
    <version>23.9.0</version>
</dependency>   

使用 Java 创建简单的 3D 场景

我们可以按照以下步骤创建一个简单的 3D 场景:

  1. 创建 Scene 类的实例。
  2. 调用 createChildNode() 方法添加一些要在屏幕上显示的几何图形或形状,例如圆柱体。
  3. 设置子节点属性,例如材质。
  4. 初始化 Light 类对象。
  5. 调用createChildNode()方法添加Light实体。
  6. 最后,使用 save() 方法将场景保存为 FBX。它采用输出文件路径和 FileFormat.FBX7500ASCII 作为参数。

以下代码示例展示了如何使用 Java 创建简单的 3D 场景。

// 此代码示例演示如何创建简单的 3D 场景并保存在 FBX 文件中。
// 初始化3D场景
Scene scene = new Scene();

// 初始化圆柱体对象
Cylinder cylinder = new Cylinder();
cylinder.setName("Cylinder");

// 创建子节点并添加Cylinder对象
Node node = scene.getRootNode().createChildNode(cylinder);

// 设置子节点属性
LambertMaterial material = new LambertMaterial();
material.setDiffuseColor(null);
material.setName("Lambert");
node.setMaterial(material);

// 添加光实体
Light light = new Light();
light.setLightType(LightType.POINT);
light.setName("Light");
scene.getRootNode().createChildNode(light).getTransform().setTranslation(new Vector3(10, 0, 10));

// 输出文件路径
String output = "C:\\Files\\document.fbx";

// 保存 3D 场景文档
scene.save(output, FileFormat.FBX7500ASCII);
使用 Java 创建简单的 3D 场景

使用 Java 创建简单的 3D 场景。

使用Java读取3D场景

我们还可以按照以下步骤加载 FBX 文档并读取 3D 场景:

  1. 创建 Scene 类的实例。
  2. 使用 open() 方法加载现有的 3D 文档。
  3. 循环遍历 ChildNodes 属性
  4. 最后,显示属性值。

以下代码示例展示了如何使用 Java 加载和读取 3D 场景。

// 此代码示例演示如何从 FBX 文件读取 3D 场景
// 初始化 Scene 类对象
Scene scene = new Scene();

// 加载现有的 3D 文档
scene.open("C:\\Files\\document.fbx");

for(Node node : scene.getRootNode().getChildNodes())
{
    Entity entity = node.getEntity();
    System.out.println("Entity Name: " + entity.getName()); 

    if (node.getMaterial() != null)
    {
        Material material = node.getMaterial();
        System.out.println("Material Name: " + material.getName());

        PropertyCollection props = material.getProperties();

        // 使用 foreach 列出所有属性
        for(Property prop : props)
        {
          System.out.println(prop.getName() + " : " + prop.getValue());
        }
    }
}
Entity Name: Cylinder
Material Name: Lambert
Emissive : (0 0 0)
Diffuse : (1 1 1)
Ambient : (0 0 0)
Entity Name: Light

获取免费许可证

您可以获得免费的临时许可证来尝试 Aspose.3D for Java,而不受评估限制。

免费学习资源

除了创建或读取简单的 3D 场景之外,还可以使用以下资源了解有关该库的更多信息并探索各种其他功能:

结论

在本文中,我们学习了如何用 Java 创建 3D 场景。我们还了解了如何以 FBX 格式渲染 3D 场景,并使用 Java 以编程方式读取其子注释和属性。通过利用 Aspose.3D for Java,您可以简化 Java 应用程序中的 3D 图形编程。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。

也可以看看