Light

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

Light és un Entity que afegeix una font de llum a una escena 3D. Com Camera, està adjuntat a un Node per controlar la seva posició i direcció.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light hereta de Camera. En el llançament actual, el Light classe en si no exposa propietats addicionals més enllà de les heretades de Camera i Entity. La LightType enumeració existeix per categoritzar les llums però no hi ha light_type propietat a la Light classe.


Methods

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

Methods

MethodsMethodsMethods
namestrNom de l’objecte de llum (heretat de A3DObject).

Light també hereta tots els Camera propietats (near_plane, far_plane, etc.), tot i que aquests no són significatius per a objectes de llum. Nota: el Light classe no exposa una light_type propietat en la superfície actual de l’API.


Valors de LightType

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Emet llum de manera uniforme en totes les direccions des d’un únic punt.
LightType.DIRECTIONAL"DIRECTIONAL"Raigs paral·lels d’una font infinitament llunyana (com la llum solar).
LightType.SPOT"SPOT"Raig en forma de con; la posició i la direcció importen.
LightType.AREA"AREA"Llum emesa des d’una àrea rectangular.
LightType.VOLUME"VOLUME"Llum volumètrica/il·luminació global.

Exemples d’ús

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

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

Afegeix tant una Camera com 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)

Enumera les llums 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)

Vegeu també

 Català