Light

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

Light е Entity което добавя светлинен източник към 3D сцена. Като Camera, той е прикрепен към Node за да контролира позицията и посоката му.

class Light(Camera):

Methods

A3DObjectSceneObjectEntityCameraLight

Light наследява от Camera. В текущото издание, Light класът сам по себе си не разкрива допълнителни свойства, освен тези, наследени от Camera и Entity. Енумът LightType enum съществува за категоризиране на светлини, но няма light_type свойство на Light клас.


Methods

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

Methods

MethodsMethodsMethods
namestrИме на обекта на светлината (наследено от A3DObject).

Light също наследява всички Camera свойства (near_plane, far_plane, и т.н.), въпреки че те нямат значение за светлинните обекти. Забележка: the Light класът не разкрива light_type свойство в текущата API повърхност.


Стойности на LightType

from aspose.threed.entities import LightType
MethodsMethodsMethods
LightType.POINT"POINT"Излъчва светлина равномерно във всички посоки от една точка.
LightType.DIRECTIONAL"DIRECTIONAL"Паралелни лъчи от безкрайно далечен източник (като слънчева светлина).
LightType.SPOT"SPOT"Конусовиден лъч; позицията и посоката имат значение.
LightType.AREA"AREA"Светлина, излъчвана от правоъгълна област.
LightType.VOLUME"VOLUME"Обемно/глобално осветление.

Примери за употреба

Точкова светлина

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)

Посочена светлина

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

Добавете както камера, така и светлина

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)

Изброяване на светлините в импортирана сцена

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)

Вижте също

 Български