Camera — Aspose.3D FOSS for Python API Reference
Example: aspose.threed.entities (aspose-3d-foss)
Camera je Entity koji definiše tačku gledišta u 3D sceni. Kontroliše kako se scena projicira na 2D ravninu slike. Kamera je pričvršćena na Node da je pozicionira i orijentiše u sceni.
class Camera(Entity):Example
A3DObject → SceneObject → Entity → Camera
Napomene o implementaciji
U ovoj verziji aspose-3d-foss, Camera klasa je šablon deklaracije. Samo projection_type i name su funkcionalno pohranjene i dostupne. Sva ostala svojstva (near_plane, far_plane, field_of_view, aspect_ratio, itd.) imaju setere koji ne rade ništa; dodeljene vrednosti se ne čuvaju. Prilikom čitanja ovih svojstava vraća se podrazumevana vrednost klase, bez obzira na to šta je dodeljeno.
Pri uvozu podataka kamere iz 3D fajla (glTF, FBX), projection_type se pravilno parsira. Ostali atributi kamere su dostupni ako format čuva ih kao scene-graph metapodatke.
Example
Camera(name: str = None, projection_type: str = "PERSPECTIVE")| Example | Example | Example | Example |
|---|---|---|---|
name | `str | None` | None |
projection_type | str | "PERSPECTIVE" | Početni tip projekcije. Koristite ProjectionType.PERSPECTIVE ili ProjectionType.ORTHOGRAPHIC. |
Example
| Example | Example | Example |
|---|---|---|
projection_type | str | Režim projekcije: "PERSPECTIVE" ili "ORTHOGRAPHIC". Postavi pomoću ProjectionType konstante. |
near_plane | float | Udaljenost do bliske ravni isečenja. Geometrija bliža od ove vrednosti se ne renderuje. Podrazumevano 0.1. |
far_plane | float | Udaljenost do daleke ravni isečenja. Geometrija dalje od ove vrednosti se ne renderuje. Podrazumevano 1000.0. |
field_of_view | float | Vertikalno polje vidljivosti u stepenima (samo perspektivne kamere). Podrazumevano 0.0. |
field_of_view_x | float | Horizontalno polje vidljivosti u stepenima. Podrazumevano 0.0. |
field_of_view_y | float | Vertikalno polje vidljivosti u stepenima (isto kao field_of_view). Podrazumevano 0.0. |
aspect_ratio | float | Odnos širine i visine izlazne slike. Podrazumevano 1.0. |
ortho_height | float | Visina ortografske zapremine pogleda u jedinicama sveta (samo ortografske kamere). Podrazumevano 100.0. |
name | str | Ime objekta kamere. |
Primeri upotrebe
Example: U ovom izdanju, samo projection_type se funkcionalno čuva. Dodeljivanja svojstava za near_plane, far_plane, field_of_view, i aspect_ratio se prihvataju bez greške, ali se ne čuvaju.
Perspective Camera
from aspose.threed import Scene
from aspose.threed.entities import Camera
from aspose.threed.entities import ProjectionType
scene = Scene()
# projection_type is stored and saved
cam = Camera("MainCamera", ProjectionType.PERSPECTIVE)
node = scene.root_node.create_child_node("camera", cam)
# Position the camera using node transform (this does persist)
node.transform.set_translation(0.0, 5.0, 20.0)
scene.save("scene-with-camera.glb")Orthographic Camera
from aspose.threed import Scene, FileFormat
from aspose.threed.entities import Camera, ProjectionType
scene = Scene()
# Only projection_type is retained; other property assignments are no-ops
cam = Camera("OrthoCamera", ProjectionType.ORTHOGRAPHIC)
scene.root_node.create_child_node("ortho_cam", cam)
scene.save("ortho-scene.glb", FileFormat.GLTF)Čitanje Camera nakon uvoza
from aspose.threed import Scene
from aspose.threed.entities import Camera
scene = Scene()
scene.open("model.glb")
for node in scene.root_node.child_nodes:
if isinstance(node.entity, Camera):
cam = node.entity
# projection_type is reliably populated; other numeric properties
# return default values (0.0 / 1.0) regardless of file content
print(f"Camera '{cam.name}': {cam.projection_type}")