Light

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

Light è un Entity che aggiunge una sorgente luminosa a una scena 3D. Come Camera, è collegato a un Node per controllarne la posizione e la direzione.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light eredita da Camera. Nell’attuale versione, il Light la classe stessa non espone proprietà aggiuntive oltre a quelle ereditate da Camera e Entity. Il LightType enum esiste per categorizzare le luci ma non c’è alcun light_type proprietà sulla Light classe.


Methods

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

Methods

MethodsMethodsMethods
namestrNome dell’oggetto luce (eredita da A3DObject).

Light eredita anche tutti Camera proprietà (near_plane, far_plane, ecc.), sebbene questi non siano significativi per gli oggetti luce. Nota: il Light classe non espone una light_type proprietà nella superficie API corrente.


Valori LightType

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Emmette luce uniformemente in tutte le direzioni da un unico punto.
LightType.DIRECTIONAL"DIRECTIONAL"Raggi paralleli da una sorgente infinitamente distante (come la luce solare).
LightType.SPOT"SPOT"Fascio a forma di cono; posizione e direzione sono importanti.
LightType.AREA"AREA"Luce emessa da un’area rettangolare.
LightType.VOLUME"VOLUME"Luce volumetrica/globale di illuminazione.

Esempi d’uso

Luce puntiforme

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)

Luce direzionale

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

Aggiungi sia una Camera che 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)

Elenca le Light in una scena importata

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)

Vedi anche

 Italiano