Light

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

Light est un Entity qui ajoute une source de lumière à une scène 3D. Comme Camera, il est attaché à un Node pour contrôler sa position et sa direction.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light hérite de Camera. Dans la version actuelle, le Light classe elle-même n’expose pas de propriétés supplémentaires au-delà de celles héritées de Camera et Entity. Le LightType enum existe pour catégoriser les lumières mais il n’y a pas light_type propriété sur le Light classe.


Methods

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

Methods

MethodsMethodsMethods
namestrNom de l’objet lumière (hérité de A3DObject).

Light hérite également de tous les Camera propriétés (near_plane, far_plane, etc.), bien que celles-ci ne soient pas significatives pour les objets lumière. Note : le Light classe n’expose pas de light_type propriété dans la surface d’API actuelle.


Valeurs LightType

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Émet de la lumière uniformément dans toutes les directions depuis un point unique.
LightType.DIRECTIONAL"DIRECTIONAL"Rayons parallèles provenant d’une source infiniment distante (comme la lumière du soleil).
LightType.SPOT"SPOT"Faisceau en forme de cône ; la position et la direction sont importantes.
LightType.AREA"AREA"Lumière émise depuis une zone rectangulaire.
LightType.VOLUME"VOLUME"Lumière d’illumination volumétrique/globale.

Exemples d’utilisation

Lumière ponctuelle

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)

Lumière directionnelle

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")

Ajouter à la fois une Camera et une Light

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)

Énumérer les Lights dans une scène importée

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)

Voir aussi

 Français