Light

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

Light är en Entity som lägger till en ljuskälla i en 3D-scen. Som Camera, den är fäst vid en Node för att kontrollera dess position och riktning.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light ärver från Camera. I den nuvarande versionen är Light klassen själv exponerar inga ytterligare egenskaper utöver de som ärvs från Camera och Entity. Den LightType enum finns för att kategorisera ljus men det finns ingen light_type egenskap på Light klassen.


Methods

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

Methods

MethodsMethodsMethods
namestrNamn på ljusobjektet (ärvt från A3DObject).

Light ärver också alla Camera egenskaper (near_plane, far_plane, etc.), även om dessa inte är meningsfulla för ljusobjekt. Observera: Light klassen exponerar inte en light_type egenskap i det nuvarande API-ytan.


LightType‑värden

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Avger ljus lika i alla riktningar från en enda punkt.
LightType.DIRECTIONAL"DIRECTIONAL"Parallella strålar från en oändligt avlägsen källa (som solljus).
LightType.SPOT"SPOT"Konformad stråle; position och riktning är viktiga.
LightType.AREA"AREA"Ljus som avges från ett rektangulärt område.
LightType.VOLUME"VOLUME"Volymetriskt/globalt belysningsljus.

Exempel på användning

Punktljus

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)

Riktningsljus

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

Lägg till både en kamera och ett ljus

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)

Enumerera ljus i en importerad scen

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 även

 Svenska