用 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 圖形程式設計。如有任何疑問,請隨時透過我們的免費支援論壇與我們聯繫。

也可以看看