Aspose.3D FOSS for Python

API 参考文档 aspose-3d-foss 26.1.0 (Python 3.7 – 3.12, MIT 许可证)。.

所有类均从 aspose.threed 包或其子包导入。根导入为::

import aspose.threed
##or selectively:
from aspose.threed import Scene, Node
from aspose.threed.entities import Mesh, Camera, Light
from aspose.threed.formats import ObjLoadOptions, StlSaveOptions, GltfSaveOptions
from aspose.threed.utilities import Vector3, Matrix4, BoundingBox
from aspose.threed.animation import AnimationClip, KeyFrame

核心场景图

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

几何体和网格

ExampleExample
Mesh多边形网格实体。存储控制点(顶点位置为 Vector4),多边形面列表(控制点索引的列表),以及顶点元素层(法线、UV、顶点颜色)。.
Geometry网格类几何体类型的抽象基类。定义控制点数组和 VertexElement 层的集合。. Mesh 继承自 Geometry.
VertexElement附加到几何体的数据层(法线、UV、颜色等)的抽象基类。携带 mapping_mode, reference_mode,,以及一个 data 列表。.
VertexElementNormal为每个顶点或每个多边形角存储一个法向量,取决于 mapping_mode.。数据值为 FVector4 实例(单精度),具有 w 未使用。.
VertexElementUVFVector4 每个顶点或每个多边形角的形式存储纹理坐标(仅 xy 分量用于 UV)。网格可以携带多个 UV 层以对应不同的纹理通道。.
VertexElementVertexColor以每顶点或每角的 RGBA 颜色数据形式存储 FVector4 (r、g、b、a 的取值范围为 0–1)。.
VertexElementSmoothingGroup存储每多边形的平滑组整数 ID,OBJ 导入器使用这些 ID 来重现源文件中的原始平滑组分配。.
VertexElementType枚举,用于标识顶点元素层的语义角色:: NORMAL, UV, VERTEX_COLOR, SMOOTHING_GROUP,,以及其他。将值传递给 Mesh.get_element().
MappingMode枚举,用于控制顶点元素值映射到哪个基元:: CONTROL_POINT, POLYGON_VERTEX, POLYGON, EDGE,,或 ALL_SAME.
ReferenceMode枚举,用于控制值的索引方式:: DIRECT (每个映射基元一个值)或 INDEX_TO_DIRECT (值数组加上单独的索引数组)。.
PolygonModifier具有三角化方法的静态工具类 Mesh 对象以及整个 Scene 图形。.

变换和空间

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

材质和着色

ExampleExample
Material所有材质类型的抽象基类。提供名称以及用于数值和颜色参数的属性集合。.
LambertMaterial仅漫反射材质模型。存储环境颜色、漫反射颜色、发光颜色和透明度。从使用 basic 的 OBJ 文件加载 Ka/Kd/Ke 声明。.
PhongMaterialExample LambertMaterial 带有镜面颜色和光泽度(specular exponent)。从使用 Ks/Ns 声明。.
PbrMaterial基于物理渲染(Physically Based Rendering)材质。存储反照率、金属因子、粗糙度因子以及相关纹理。用于 glTF 2.0 和其他支持 PBR 的格式。.

相机与灯光

ExampleExample
Camera相机实体。仅 projection_typename 在此版本中是可用的;所有其他数值属性(near_plane, far_plane, field_of_view, aspect_ratio)是返回默认值的存根。附加到一个 Node 以定义视点变换。.
Light光源实体。继承自 Camera 作为存根类;该 Light 类本身在此版本中不暴露额外属性。.
LightType支持的光类别枚举:: POINT, DIRECTIONAL, SPOT, AREA, VOLUME.
ProjectionType相机投影模式枚举:: PERSPECTIVEORTHOGRAPHIC.

数学工具

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

Example

ExampleExample
AnimationClip用于包含一组覆盖单个播放范围的动画通道的具名容器。一个 Scene 可以包含多个剪辑(例如,“Walk”,“Run”)。.
AnimationNode将一个 AnimationClip 绑定到特定的场景节点或属性。充当剪辑数据与场景图对象之间的桥梁。.
AnimationChannel剪辑内的单个动画属性流,目标是对象上的具名属性(例如,., Transform.translation.x).
KeyFrame单个时间-数值采样,位于 KeyframeSequence.。存储时间(秒)以及该时间点的数值。.
KeyframeSequence有序列表,包含 KeyFrame 对象,用于单一标量通道,并包含插值和外推设置。.
Interpolation关键帧之间插值模式的枚举:: CONSTANT, LINEAR, BEZIER, B_SPLINE, CARDINAL_SPLINE, TCB_SPLINE.
ExtrapolationType枚举首帧和末帧之外的行为:: CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE.

格式 I/O

ExampleExample
Scene.from_file(path)静态方法。打开位于 path,,根据扩展名检测格式,并返回已填充的 Scene. 在文件未找到或不支持的格式时抛出异常。.
Scene.open(path, options=None)实例方法。将文件打开到现有的 Scene 实例中,可选地使用特定格式的 LoadOptions 子类。.
Scene.save(path, options=None)实例方法。将场景序列化为 path 使用从扩展名推断的格式,可选地使用特定格式的 SaveOptions 子类。.
FileFormat受支持文件格式的注册表。包含诸如以下的条目 FileFormat.WAVEFRONT_OBJ, FileFormat.GLTF, FileFormat.FBX7400ASCII, FileFormat.MICROSOFT_3MF. 特定格式的变体可通过选项类访问(例如,., ColladaSaveOptions, GltfSaveOptions).
IOService格式导入器和导出器使用的内部 I/O 抽象。通常不会被应用代码直接使用。.
LoadOptions所有特定格式加载选项对象的基类。其子类包括 ObjLoadOptions, StlLoadOptions, GltfLoadOptions, FbxLoadOptions, ColladaLoadOptions, ThreeMfLoadOptions.
SaveOptions所有特定格式保存选项对象的基类。其子类包括 ObjSaveOptions, StlSaveOptions, GltfSaveOptions, FbxSaveOptions, ColladaSaveOptions, ThreeMfSaveOptions.

OBJ 格式

ExampleExample
ObjImporter内部导入类,用于解析 Wavefront OBJ 和 MTL 文件。由以下自动调用 Scene.from_file() 用于 .obj 扩展名。.
ObjLoadOptionsWavefront OBJ 文件的加载选项。关键属性:: flip_coordinate_system, scale, enable_materials, normalize_normal.
ObjSaveOptions保存 Wavefront OBJ 输出的选项。控制法线、UV、材质引用以及点云模式。.
ObjFormatWavefront OBJ 的格式描述符。可通过以下方式访问: FileFormat.WAVEFRONT_OBJ().

STL 格式

ExampleExample
StlImporter内部导入器,可读取二进制和 ASCII STL 文件。根据扩展名自动选择。.
StlExporter内部导出器,用于写入 STL。.
StlLoadOptions加载 STL 文件的选项。支持 flip_coordinate_systemscale.
StlSaveOptionsSTL 输出的保存选项。控制 binary_mode, scale,,以及 flip_coordinate_system.
StlFormatSTL 的格式描述符。.

glTF 格式

ExampleExample
GltfLoadOptions加载 glTF 2.0 和 GLB 文件的选项。关键属性:: flip_tex_coord_v.
GltfSaveOptionsglTF 2.0 输出的保存选项。使用 binary_mode=True 来创建自包含的 GLB 包。.
GltfFormatglTF 2.0 / GLB 的格式描述符。可通过以下方式访问 FileFormat.GLTF2().

FBX 格式

ExampleExample
FbxLoadOptions加载 FBX 文件的选项。关键属性:: keep_builtin_global_settings, compatible_mode.
FbxSaveOptionsFBX 输出的保存选项。控制压缩、纹理嵌入和材质属性。.
FbxFormatFBX 的格式描述符。可通过以下方式访问 FileFormat.FBX7400ASCII().

COLLADA 格式

ExampleExample
ColladaLoadOptions加载 COLLADA(.dae)文件的选项。控制导入时的轴映射和单位比例。.
ColladaSaveOptionsCOLLADA 输出的保存选项。控制 indented, flip_coordinate_system,,以及材质导出。.
ColladaFormatCOLLADA 的格式描述符。自动从 .dae 文件扩展名。.

3MF Format

ExampleExample
ThreeMfLoadOptions3MF 的加载选项(.3mf) 文件。.
ThreeMfSaveOptions保存 3MF 输出的选项。3MF 是 3D 打印工作流的首选格式。.
ThreeMfFormat3MF 的格式描述符。可通过以下方式访问: FileFormat.MICROSOFT_3MF_FORMAT().

Example

ExampleExample
TextureMapping标识纹理映射到几何体的方式:: DIFFUSE, SPECULAR, EMISSIVE, NORMAL, AMBIENT,,等等。.
BooleanOperationCSG 布尔运算类型:: UNION, DIFFERENCE, INTERSECTION.

属性系统

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

图像与渲染

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

另见

 中文