Scene
Methods
Methods Scene class in Aspose.3D 充当 3D 内容的根容器,管理顶层对象并实现场景层次结构的父子关系管理。它提供对根节点和子场景的访问,构成加载、构建和保存 3D 场景的入口点。.
from aspose.threed import Scene
# Create an empty scene
scene = Scene()
# Access the root node: root_node is a property, not a method call
root = scene.root_nodeMethods
Methods Scene 可以在不传入参数的情况下实例化该 class,以创建空场景,亦可使用可选参数进行实例化。.
| Methods | Methods | Methods |
|---|---|---|
name | str | 场景的可选名称 |
entity | Entity | 创建时可选的实体,用于附加到根节点 |
parent_scene | Scene | 可选的父场景(用于子场景) |
from aspose.threed import Scene
# Empty scene
scene = Scene()
# Access the root node (property, not a method)
root = scene.root_node类方法
| Methods | 返回类型 | Methods |
|---|---|---|
Scene.from_file(file_path) | Scene | 从指定的文件路径加载场景,自动检测格式。仅接受一个参数。. |
from aspose.threed import Scene
from aspose.threed.formats import ObjLoadOptions
# Load from file (format detected from extension)
scene = Scene.from_file("model.obj")
# To pass load options, use scene.open() instead:
opts = ObjLoadOptions()
scene = Scene()
scene.open("model.obj", opts)Methods
root_node 以及其他场景级属性为 属性; 在不使用括号的情况下访问它们。.
| Methods | Methods | Methods |
|---|---|---|
root_node | Node | 场景层次结构的根节点。以属性的形式访问:: scene.root_node |
sub_scenes | list[Scene] | 此场景中嵌套的子场景 |
asset_info | AssetInfo | 资产元数据,例如作者、创建日期和单位 |
animation_clips | list[AnimationClip] | 场景中定义的动画剪辑 |
current_animation_clip | `AnimationClip | None` |
library | list[CustomObject] | 附加到场景的用户定义元数据对象。. |
name | str | 场景对象的名称 |
properties | PropertyCollection | 附加到场景的自定义属性 |
Methods
| Methods | 返回类型 | Methods |
|---|---|---|
save(file_path) | None | 将场景保存到文件;格式根据扩展名推断 |
save(file_path, format) | None | 将场景保存到指定的文件中 FileFormat |
save(file_path, options) | None | 使用特定格式的保存选项保存场景 |
get_property(name) | Any | 按名称获取属性值 |
find_property(name) | Optional[Property] | 按名称查找属性 |
create_animation_clip(name) | AnimationClip | 创建一个新的具名动画剪辑并将其添加到场景中 |
get_animation_clip(name) | `AnimationClip | None` |
clear() | None | 清除场景中的所有内容 |
注意:: root_node 是一个 属性 在 Scene 类,而不是方法。不要写 scene.root_node(); 正确的访问方式是 scene.root_node.
Methods
创建场景,添加网格节点,并保存为 GLB::
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.formats import GltfSaveOptions
from aspose.threed.utilities import Vector4
# Create scene and mesh
# Note: control_points returns a copy — use _control_points to add vertices
scene = Scene()
mesh = Mesh()
mesh._control_points.append(Vector4(0, 0, 0, 1))
mesh._control_points.append(Vector4(1, 0, 0, 1))
mesh._control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)
# Add node to root: root_node is a property
node = scene.root_node.create_child_node("triangle", mesh)
# Save as GLB using GltfSaveOptions with binary_mode
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("triangle.glb", opts)