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
A3DObject → SceneObject → Entity → Camera → Light
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)| Name | Type | Access | Description |
|---|---|---|---|
name | str | Read/Write | Gets or sets the name. |
parent_nodes | `` | Read | Gets the parent nodes. |
excluded | bool | Read/Write | Gets or sets the excluded. |
parent_node | `` | Read/Write | Gets or sets the parent node. |
rotation_mode | `` | Read/Write | Gets or sets the rotation mode. |
near_plane | float | Read/Write | Gets or sets the near plane. |
far_plane | float | Read/Write | Gets or sets the far plane. |
aspect | float | Read/Write | Gets or sets the aspect. |
ortho_height | float | Read/Write | Gets or sets the ortho height. |
up | `` | Read/Write | Gets or sets the up. |
look_at | `` | Read/Write | Gets or sets the look at. |
direction | `` | Read/Write | Gets or sets the direction. |
target | `` | Read/Write | Gets or sets the target. |
aperture_mode | `` | Read/Write | Gets or sets the aperture mode. |
field_of_view | float | Read/Write | Gets or sets the field of view. |
field_of_view_x | float | Read/Write | Gets or sets the field of view x. |
field_of_view_y | float | Read/Write | Gets or sets the field of view y. |
width | float | Read/Write | Gets or sets the width. |
height | float | Read/Write | Gets or sets the height. |
aspect_ratio | float | Read/Write | Gets or sets the aspect ratio. |
magnification | `` | Read/Write | Gets or sets the magnification. |
projection_type | str | Read/Write | Gets or sets the projection type. |
scene | `` | Read/Write | Gets or sets the scene. |
properties | PropertyCollection | Read | Gets the properties. |
Methods
| Signature | Description |
|---|---|
__init__(name: str, light_type) | |
move_forward(distance: float) | |
get_bounding_box() | Returns the bounding box. |
get_entity_renderer_key() | Not implemented in the FOSS edition — throws at runtime. Returns the entity renderer key. |
remove_property(property) | |
get_property(property: str) | |
set_property(property: str, value) | Sets the property value. |
find_property(property: str) |
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| Methods | Methods | Methods |
|---|---|---|
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)