Light

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

Light هو Entity الذي يضيف مصدر إضاءة إلى مشهد ثلاثي الأبعاد. مثل 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, إلخ)، رغم أن هذه ليست ذات معنى لكائنات الضوء. ملاحظة: الـ 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)

انظر أيضًا

 العربية