api:documentation:grafik3d:kamera:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
api:documentation:grafik3d:kamera:start [2025/01/15 15:10] – martin | api:documentation:grafik3d:kamera:start [2025/01/17 21:12] (aktuell) – [Animation] martin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== 3D-Grafik: Kamera ====== | ====== 3D-Grafik: Kamera ====== | ||
+ | <WRAP center round info 60%> | ||
+ | Die Online-IDE unterstützt derzeit zwei Typen von Kameras: | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | In der Praxis wird meist Zentralperspektive genutzt, daher besitzt das '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Nutzung/ | ||
+ | <WRAP center round info 80%> | ||
+ | Die default-Kamera erhält man am einfachsten durch | ||
+ | <code java> | ||
+ | var camera = (PerspectiveCamera3d)t.getWorld3d().getCamera(); | ||
+ | </ | ||
+ | Sie bietet Methoden zum Setzen der Position ('' | ||
+ | <code java> | ||
+ | void lookAt(double xTarget, double yTarget, double zTarget, Vector3 up, boolean keepTarget) | ||
+ | void lookAt(Object3d target, Vector3 up, boolean keepTarget) | ||
+ | </ | ||
+ | die Blickrichtung ändern. Dabei ist '' | ||
+ | </ | ||
< | < | ||
- | <div class=" | + | <div class=" |
<script type=" | <script type=" | ||
Zeile 30: | Zeile 52: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== PerspectiveCamera3d ===== | ||
+ | <WRAP center round info 100%> | ||
+ | Der Konstruktor von '' | ||
+ | <code java> | ||
+ | PerspectiveCamera3d(double fov, double aspect, double near, double far) | ||
+ | </ | ||
+ | {{ : | ||
+ | Dabei ist | ||
+ | * **fov** (//field of view//) das Sichtfeld in Grad. Das menschliche Auge hat ein Sichtfeld von fast 180°. Da der Computermonitor aber meist nur einen begrenzten Bereich dieses Sichtfeldes abdeckt, wird ein Sichtfeld von 45° bis 75° als " | ||
+ | * **aspect** das Breite: | ||
+ | * **near** der Abstand der near-Ebene zur Kameraposition und | ||
+ | * **far** der Abstand der far-Ebene zur Kameraposition | ||
+ | |||
+ | **Vorsicht: | ||
+ | '' | ||
+ | |||
+ | Der Renderer zeichnet nur Objekte, die in den Bereich hineinragen, | ||
+ | |||
+ | Mit den Methoden | ||
+ | <code java> | ||
+ | void lookAt(double xTarget, double yTarget, double zTarget, Vector3 up, boolean keepTarget) | ||
+ | void lookAt(Object3d target, Vector3 up, boolean keepTarget) | ||
+ | </ | ||
+ | lässt sich die Blickrichtung und die up-Richtung festlegen, mehr dazu im obigen Kapitel (default-Kamera). | ||
+ | |||
+ | Die default-Kamera hat die Parameterwerte | ||
+ | * fov = 75 | ||
+ | * near = 0.1 | ||
+ | * far = 1000 | ||
+ | * Position: (2, 2, 2) | ||
+ | * Blickrichtung: | ||
+ | * Up-Richtung: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | Box3d box = new Box3d(0.5, 0.5, 1); | ||
+ | box.move(1, 1, 1); | ||
+ | |||
+ | Icosahedron3d iso = new Icosahedron3d(0.2, | ||
+ | iso.moveTo(-1, | ||
+ | iso.getMaterial().setColor(new Color(89, 89, 196)); | ||
+ | |||
+ | PerspectiveCamera3d camera = new PerspectiveCamera3d(75, | ||
+ | camera.moveTo(-1, | ||
+ | camera.lookAt(0, | ||
+ | World3d.getWorld3d().setCamera(camera); | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== OrthographicCamera3d ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Siehe die entsprechende [[https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ |
api/documentation/grafik3d/kamera/start.1736953848.txt.gz · Zuletzt geändert: 2025/01/15 15:10 von martin