Light

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

Light es un Entity que agrega una fuente de luz a una escena 3D. Como Camera, está unido a un Node para controlar su posición y dirección.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light hereda de Camera. Light la propia clase no expone propiedades adicionales más allá de las heredadas de Camera y Entity. LightType enum existe para categorizar luces pero no hay light_type propiedad en el Light clase.


Methods

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

Methods

MethodsMethodsMethods
namestrNombre del objeto de luz (heredado de A3DObject).

Light también hereda todos los Camera propiedades (near_plane, far_plane, etc.), aunque estos no son significativos para los objetos de luz. Nota: el Light clase no expone un light_type propiedad en la superficie actual de la API.


Valores de LightType

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Emite luz de manera uniforme en todas las direcciones desde un solo punto.
LightType.DIRECTIONAL"DIRECTIONAL"Rayos paralelos de una fuente infinitamente distante (como la luz solar).
LightType.SPOT"SPOT"Haz en forma de cono; la posición y la dirección importan.
LightType.AREA"AREA"Luz emitida desde un área rectangular.
LightType.VOLUME"VOLUME"Luz volumétrica/iluminación global.

Ejemplos de uso

Luz puntual

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)

Luz direccional

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

Agregar tanto una Camera como una 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)

Enumerar luces en una escena importada

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)

Ver también

 Español