Light — Aspose.3D FOSS for Python API Reference

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

Light er en Entity der tilføjer en lyskilde til en 3D-scene. Ligesom Camera, den er fastgjort til en Node for at kontrollere dens position og retning.

class Light(Camera):

Properties

A3DObjectSceneObjectEntityCameraLight

Light arver fra Camera. I den aktuelle udgivelse er Light klasse selv eksponerer ikke yderligere egenskaber ud over dem, der er arvet fra Camera og Entity. Den LightType enum findes for at kategorisere lys, men der er ingen light_type egenskab på Light klassen.


Properties

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

Properties

PropertiesPropertiesProperties
namestrNavn på lysobjektet (arvet fra A3DObject).

Light arver også alle Camera egenskaber (near_plane, far_plane, osv.), selvom disse ikke er meningsfulde for lysobjekter. Bemærk: den Light klasse eksponerer ikke en light_type egenskab i den aktuelle API-overflade.


LightType-værdier

from aspose.threed.entities import LightType
PropertiesPropertiesProperties
LightType.POINT"POINT"Udsender lys lige i alle retninger fra et enkelt punkt.
LightType.DIRECTIONAL"DIRECTIONAL"Parallele stråler fra en uendeligt fjern kilde (som sollys).
LightType.SPOT"SPOT"Kegleformet stråle; position og retning er vigtige.
LightType.AREA"AREA"Lys udsendt fra et rektangulært område.
LightType.VOLUME"VOLUME"Volumetrisk/global belysning.

Brugseksempler

Punktlys

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)

Retningslys

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

Tilføj både et kamera og et lys

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)

Enumerér lys i en importeret scene

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)

Se også

 Dansk