3D 场景是在计算机上显示 3D 形状的一种方式。在本指南中,我们将学习如何使用 Java 创建 3D 场景,而不需要任何特殊的 3D 软件。之后,我们将以FBX文件格式保存 3D 场景,这是共享 3D 内容的常见方式。那么,让我们开始吧。
Aspose.3D?是一个功能丰富的游戏软件和计算机辅助设计(CAD)的API,可以在不依赖任何3D建模和渲染软件的情况下操作文档。API支持Discreet3DS, WavefrontOBJ, FBX (ASCII, Binary), STL (ASCII, Binary), Universal3D, Collada, glTF, GLB, PLY, DirectX, Google Draco文件格式等等。开发人员可以轻松地创建,读取,转换,修改和控制3D文件格式的实质。
Aspose.3D 最新下载(qun:666790229)https://www.evget.com/product/3915/download
我们将使用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>
我们可以按照以下步骤创建一个简单的 3D 场景:
以下代码示例展示了如何使用 Java 创建简单的 3D 场景。
// This code example demonstrates how to create a simple 3D scene and save in FBX file. // Initialize 3D scene Scene scene = new Scene(); // Initialize Cylinder object Cylinder cylinder = new Cylinder(); cylinder.setName("Cylinder"); // Create a child node and add Cylinder object Node node = scene.getRootNode().createChildNode(cylinder); // Set child node properties LambertMaterial material = new LambertMaterial(); material.setDiffuseColor(null); material.setName("Lambert"); node.setMaterial(material); // Add Light entity Light light = new Light(); light.setLightType(LightType.POINT); light.setName("Light"); scene.getRootNode().createChildNode(light).getTransform().setTranslation(new Vector3(10, 0, 10)); // Output file path String output = "C:\\Files\\document.fbx"; // Save 3D scene document scene.save(output, FileFormat.FBX7500ASCII);
我们还可以按照以下步骤加载 FBX 文档并读取 3D 场景:
以下代码示例演示如何使用 Java 加载和读取 3D 场景。
// This code example demonstrates how to read a 3D scene from FBX file // Initialize a Scene class object Scene scene = new Scene(); // Load an existing 3D document 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(); // List all properties using 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
在本文中,我们学习了如何用 Java 创建 3D 场景。我们还了解了如何以 FBX 格式渲染 3D 场景,并使用 Java 以编程方式读取其子注释和属性。通过利用 Aspose.3D for Java,您可以简化 Java 应用程序中的 3D 图形编程。如有任何疑问,请随时联系我~