Aspose.3D FOSS for Java

API 参考文档 aspose-3d-foss 26.1.0 (Java 21+,MIT 许可证)。.

所有类位于 com.aspose.threed 根包。根导入为::

import com.aspose.threed.*;

包布局:: 几乎所有公共类都位于 com.aspose.threed.。通常使用的唯一子包是 com.aspose.threed.shading (用于 PbrMaterial). 该 com.aspose.threed.formats 子包包含内部的导入器/导出器,通常不会直接导入。.

Java 命名约定:: 所有属性都使用 getter/setter 方法。例如,使用 node.getTransform() 而不是 node.transform,,并且 transform.setTranslation(...) 而不是 transform.translation = .... 请注意 Vector3, Vector4, Quaternion, Matrix4, 以及 FVector 类型使用 公共字段 (v.x, v.y, v.z)而不是用于组件访问的 getter。.


核心场景图

ExampleExample
Scene所有 3D 场景数据的顶层容器。保存根节点、资产元数据和动画剪辑。提供 fromFile(), open(),,以及 save() 作为主要的 I/O 入口点。.
Node场景层级中的命名节点。拥有子节点列表和已附加的 Entity 对象,例如网格、相机和灯光。携带本地 Transform.
Entity可附加到 a 的所有对象的抽象基类 Node. 提供名称和标识,但不包含自身的几何体。.
SceneObject被以下共享的基类 NodeEntity. 提供用于用户自定义元数据的属性集合接口。.
A3DObject所有 Aspose.3D 管理对象的根基类。公开 name 属性和 Properties 集合。.
INamedObject保证 a 的接口 getName() 方法。由 Node, Entity,以及若干特定格式的描述符类型。.

几何体和网格

ExampleExample
Mesh多边形网格实体。存储控制点(顶点位置为 Vector4),多边形面列表(控制点索引的列表),以及顶点元素层(法线、UV、顶点颜色)。.
Geometry抽象基类,用于类似网格的几何类型。定义控制点数组和 VertexElement 层。. Mesh 继承自 Geometry.
VertexElement几何体(法线、UV、颜色等)附加的数据层的抽象基类。携带 getMappingMode(), getReferenceMode(), 以及数据列表。.
VertexElementNormal根据映射模式,存储每个顶点或每个多边形角的一个法线向量。数据值为 Vector4 实例,带有 w 未使用。.
VertexElementUV存储纹理坐标对 (Vector2) 每个顶点或每个多边形角。网格可以为不同的纹理通道携带多个 UV 层。.
VertexElementVertexColor存储每顶点或每角的 RGBA 颜色数据为 Vector4 (r、g、b、a 的范围为 0–1)。.
VertexElementType枚举,用于标识顶点元素层的语义角色:: NORMAL, UV, VERTEX_COLOR,,以及其他。将值传递给 Mesh.getElement().
MappingMode枚举,用于控制顶点元素值映射到哪个基元:: CONTROL_POINT, POLYGON_VERTEX,,或 POLYGON.
ReferenceMode枚举,用于控制值的索引方式:: DIRECT (每个映射原语一个值) 或 INDEX_TO_DIRECT (值数组加上单独的索引数组)。.

变换和空间

ExampleExample
Transform本地变换附加到 Node.。提供平移、旋转(作为 Quaternion),以及缩放分量,并提供欧拉角的便利方法。.
GlobalTransform只读视图,显示节点在组合所有祖先变换后的世界空间变换。通过以下方式访问 node.getGlobalTransform().
AssetInfo附加到 a 的元数据块 Scene.。存储创作应用程序名称、单位名称、单位比例因子、坐标系轴定义以及创建/修改时间戳。.

材质和着色

ExampleExample
Material所有材质类型的抽象基类。提供名称以及用于数值和颜色参数的属性集合。.
PbrMaterial基于物理的渲染(PBR)材质。存储反照率、金属因子、粗糙度因子、发光颜色、透明度以及相关纹理。被 glTF 2.0 和其他支持 PBR 的格式使用。导入:: com.aspose.threed.shading.PbrMaterial.

Example

ExampleExample
Camera相机实体。继承自 Entity.。在 Java FOSS 版中,除继承的名称和属性集合外,不会公开特定格式的属性。附加到一个 Node 用于定义视点变换。.

注意:: Example Light 类在 Java 版的 Aspose.3D FOSS 中不可用。导入文件的场景光照数据存储为通用 Entity 对象。.


数学工具

ExampleExample
Vector2双精度 2 分量向量 (x, y) 用于 UV 纹理坐标。.
Vector3双精度 3 分量向量 (x, y, z) 用于位置、方向和缩放。.
Vector4双精度 4 分量向量 (x, y, z, w). 用于控制点(齐次位置)和法线数据。.
FVector3单精度 3 分量浮点向量。出现在用于法线和切线的顶点元素数据数组中。.
FVector4单精度 4 分量浮点向量。存储类型为 VertexElementFVector 数据。.
Quaternion用于表示旋转的单位四元数(w, x, y, z)。用于 Transform.getRotation().
Matrix44x4 double-precision transformation matrix. Used for world/local transform computations and can be constructed from TRS decompositions.
BoundingBox由…定义的轴对齐包围盒 getMinimum()getMaximum() Vector3 角点。用于空间查询和视锥体剔除辅助。.

Example

ExampleExample
AnimationClip动画范围的命名容器。A Scene 可以容纳多个剪辑(例如,“Walk”,“Run”)。. 声明存根 — 关键帧数据和播放尚未实现。.

格式 I/O

ExampleExample
Scene.fromFile(path)Static method. 打开位于 path,,从扩展名检测格式,并返回一个已填充的 Scene. 在文件未找到或不支持的格式时抛出异常。.
Scene.open(path, options)Instance method. 将文件打开到已有的 Scene instance,可选地使用特定格式的 LoadOptions 子类。.
Scene.save(path, options)实例方法。将场景序列化为 path 使用从扩展名推断的格式,可选地使用特定格式的 SaveOptions 子类。.
FileFormat受支持的文件格式注册表。包含诸如以下的条目 FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(), FileFormat.FBX7400ASCII().
IOService内部 I/O 抽象,由格式导入器和导出器使用。通常不直接由应用代码使用。.
LoadOptions所有特定格式加载选项对象的基类。由以下子类化: ObjLoadOptions, StlLoadOptions, GltfLoadOptions, FbxLoadOptions.
SaveOptions所有特定格式保存选项对象的基类。由以下子类化: ObjSaveOptions, StlSaveOptions, GltfSaveOptions.

OBJ 格式

ExampleExample
ObjImporter内部导入器类,用于解析 Wavefront OBJ 和 MTL 文件。由以下自动调用: Scene.fromFile() 用于 .obj 扩展。.
ObjLoadOptions加载 Wavefront OBJ 文件的选项。关键属性:: setFlipCoordinateSystem(), setScale(), setEnableMaterials(), setNormalizeNormal().
ObjSaveOptions保存 Wavefront OBJ 输出的选项。控制法线、UVs、材质引用以及点云模式。.
ObjFormatWavefront OBJ 的格式描述符。可访问为 FileFormat.WAVEFRONT_OBJ().

STL 格式

ExampleExample
StlImporter内部导入器,可读取二进制和 ASCII STL 文件。根据扩展名自动选择。.
StlExporter内部导出器,写入 STL。.
StlLoadOptions加载 STL 文件的选项。支持 setFlipCoordinateSystem(), setRecalculateNormal(),,以及 setContentType().
StlSaveOptions保存 STL 输出的选项。控制 setFlipCoordinateSystem(), setAxisSystem(),,以及 setContentType().
StlFormatSTL 格式描述符。.

glTF 格式

ExampleExample
GltfLoadOptionsglTF 2.0 和 GLB 文件的加载选项。关键属性:: setFlipCoordinateSystem(), setPrettyPrint().
GltfSaveOptionsglTF 2.0 和 GLB 输出的保存选项。使用 setContentType(FileContentType.BINARY) 生成自包含的 .glb 包。.
GltfFormatglTF 2.0 / GLB 的格式描述符。可访问为 FileFormat.GLTF2().

FBX 格式

FBX 支持用于 仅导入. 导出为 FBX 在 Java FOSS 版中不可用。.

ExampleExample
FbxLoadOptionsFBX 文件的加载选项。关键属性:: setFlipCoordinateSystem().
FbxFormatFBX 的格式描述符。可通过以下方式访问 FileFormat.FBX7400ASCII().

Example

ExampleExample
Axis标识坐标轴:: X_AXIS, Y_AXIS, Z_AXIS. 用于坐标系重新映射选项。.
CoordinateSystem指定手性约定:: RIGHT_HANDEDLEFT_HANDED.
TextureMapping标识纹理如何映射到几何体:: DIFFUSE, SPECULAR, EMISSIVE, NORMAL, AMBIENT, 等。.
BooleanOperationCSG 布尔运算类型:: UNION, DIFFERENCE, INTERSECTION.

属性系统

ExampleExample
Property在某个对象上的单个具名类型属性 A3DObject.。存储属性名称、类型描述符和当前值。.
PropertyCollection可迭代的集合 Property 附加到一个的对象 A3DObject. 支持按名称查找并遍历所有已定义的属性。.
CustomObject轻量级的 A3DObject 子类,仅携带一个名称和任意的 PropertyCollection. 用于在场景对象上存储用户定义的元数据。.

图像与渲染

ExampleExample
ImageRenderOptions在将场景渲染到图像缓冲区时的软件光栅化选项。存储背景颜色、图像尺寸和相机引用。此功能在受支持的配置中可用。.

另见

 中文