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 property بر روی Light کلاس.


Methods

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

Methods

MethodsMethodsMethods
namestrنام شیء light object (ارث‌بری شده از A3DObject).

Light همچنین تمام Camera properties (near_plane, far_plane, etc.)، اگرچه این‌ها برای شیء light objects معنی‌دار نیستند. توجه: the Light class یک … را در معرض قرار نمی‌دهد light_type property در سطح 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")

افزودن هم‌زمان یک Camera و یک 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)

فهرست‌کردن Lightها در یک صحنهٔ وارد شده

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)

موارد مرتبط

 فارسی