Light — Aspose.3D FOSS for Python API Reference

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

Light ir Entity kas pievieno gaismas avotu 3D ainas. Kā Camera, tas ir pievienots pie Node lai kontrolētu tā pozīciju un virzienu.

class Light(Camera):

Example

A3DObjectSceneObjectEntityCameraLight

Light manto no Camera. Pašreizējā izlaidumā Light klase pati nepiedāvā papildu īpašības, kas pārsniedz tās mantotās no Camera un Entity.Gaismas LightType enum ir pieejams gaismu kategorizēšanai, bet nav light_type īpašības uz Light klases.


Example

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

Example

ExampleExampleExample
namestrGaismas objekta nosaukums (mantots no A3DObject).

Light arī manto visus Camera īpašības (near_plane, far_plane, utt.), lai gan šīs nav nozīmīgas gaismas objektiem. Piezīme: Light klase neatklāj light_type īpašību pašreizējā API virsmā.


LightType vērtības

from aspose.threed.entities import LightType
ExampleExampleExample
LightType.POINT"POINT"Izstaro gaismu vienādi visās virzienos no viena punkta.
LightType.DIRECTIONAL"DIRECTIONAL"Paralēlas staras no bezgalīgi tāla avota (piemēram, saules gaismas).
LightType.SPOT"SPOT"Kona veida stars; pozīcija un virziens ir svarīgi.
LightType.AREA"AREA"Gaisma, kas izstarota no taisnstūra laukuma.
LightType.VOLUME"VOLUME"Apjoma/globālās apgaismošanas gaisma.

Lietošanas piemēri

Punktgaisma

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)

Virziena gaisma

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

Pievienot gan Kameru, gan Gaismu

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)

Uzskaitīt gaismas importētā 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)

Skatīt arī

 Latviešu