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

A3DObjectSceneObjectEntityCamera


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")
ExampleExampleExampleExample
name`strNone`None
projection_typestr"PERSPECTIVE"Početni tip projekcije. Koristite ProjectionType.PERSPECTIVE ili ProjectionType.ORTHOGRAPHIC.

Example

ExampleExampleExample
projection_typestrRežim projekcije: "PERSPECTIVE" ili "ORTHOGRAPHIC". Postavi pomoću ProjectionType konstante.
near_planefloatUdaljenost do bliske ravni isečenja. Geometrija bliža od ove vrednosti se ne renderuje. Podrazumevano 0.1.
far_planefloatUdaljenost do daleke ravni isečenja. Geometrija dalje od ove vrednosti se ne renderuje. Podrazumevano 1000.0.
field_of_viewfloatVertikalno polje vidljivosti u stepenima (samo perspektivne kamere). Podrazumevano 0.0.
field_of_view_xfloatHorizontalno polje vidljivosti u stepenima. Podrazumevano 0.0.
field_of_view_yfloatVertikalno polje vidljivosti u stepenima (isto kao field_of_view). Podrazumevano 0.0.
aspect_ratiofloatOdnos širine i visine izlazne slike. Podrazumevano 1.0.
ortho_heightfloatVisina ortografske zapremine pogleda u jedinicama sveta (samo ortografske kamere). Podrazumevano 100.0.
namestrIme 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}")

Vidi takođe

 Српски