Light

Methods: aspose.threed.entities (aspose-3d-foss)

Light ist ein Entity der eine Lichtquelle zu einer 3D‑Szene hinzufügt. Wie Camera, ist es an einem Node um seine Position und Richtung zu steuern.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light erbt von Camera. In der aktuellen Version, die Light Klasse selbst stellt keine zusätzlichen Eigenschaften bereit, die über die von Camera und Entity. Die LightType Enum existiert zur Kategorisierung von Lichtern, aber es gibt keinen light_type Eigenschaft auf dem Light Klasse.


Methods

Light(name: str = None)
MethodsMethodsMethodsMethods
name`strNone`None

Methods

MethodsMethodsMethods
namestrName des Lichtobjekts (geerbt von A3DObject).

Light erbt auch alle Camera Eigenschaften (near_plane, far_plane, usw.), obwohl diese für Lichtobjekte nicht sinnvoll sind. Hinweis: die Light Klasse stellt keinen light_type Eigenschaft in der aktuellen API-Oberfläche.


LightType‑Werte

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Emittiert Licht gleichmäßig in alle Richtungen von einem einzigen Punkt aus.
LightType.DIRECTIONAL"DIRECTIONAL"Parallele Strahlen von einer unendlich entfernten Quelle (wie Sonnenlicht).
LightType.SPOT"SPOT"Kegelförmiger Strahl; Position und Richtung sind wichtig.
LightType.AREA"AREA"Licht, das von einer rechteckigen Fläche ausgeht.
LightType.VOLUME"VOLUME"Volumetrisches/globales Beleuchtungslicht.

Verwendungsbeispiele

Punktlicht

from aspose.threed import Scene, FileFormat
from aspose.threed.entities import Light, LightType

scene = Scene()

light = Light("PointLight")
node = scene.root_node.create_child_node("light", light)
node.transform.set_translation(0.0, 10.0, 0.0)

scene.save("lit-scene.glb", FileFormat.GLTF)

Richtungslicht

from aspose.threed import Scene
from aspose.threed.entities import Light, LightType

scene = Scene()

sun = Light("Sun")
node = scene.root_node.create_child_node("sun", sun)
# Direction is controlled by the node's rotation
node.transform.set_euler_angles(-45.0, 30.0, 0.0)  # degrees

scene.save("directional-light.glb")

Füge sowohl eine Kamera als auch ein Licht hinzu

from aspose.threed import Scene, FileFormat
from aspose.threed.entities import Camera, Light, LightType, ProjectionType

scene = Scene()

# Camera
cam = Camera("Cam", ProjectionType.PERSPECTIVE)
cam.field_of_view = 60.0
cam_node = scene.root_node.create_child_node("camera", cam)
cam_node.transform.set_translation(0.0, 5.0, 15.0)

# Directional light
light = Light("DirLight")
light_node = scene.root_node.create_child_node("light", light)
light_node.transform.set_euler_angles(-30.0, 45.0, 0.0)

scene.save("camera-and-light.glb", FileFormat.GLTF)

Lichter in einer importierten Szene aufzählen

from aspose.threed import Scene
from aspose.threed.entities import Light

scene = Scene()
scene.open("model.glb")

def find_lights(node, depth=0):
    if isinstance(node.entity, Light):
        print(f"{'  ' * depth}Light: {node.name}")
    for child in node.child_nodes:
        find_lights(child, depth + 1)

find_lights(scene.root_node)

Siehe auch

 Deutsch