# 2D Ansicht auf 3D Ansicht interpolieren!



## Quh (10. Sep 2008)

Hallo @ all!

Ich bin nicht sicher ob das das richtige Forum ist! Wenn nicht, bitte Thread verschieben!

Mich würde interessieren, wie leicht bzw schwer ist es, eine 2D Ansicht von oben auf eine 3D Ansicht zu interpolieren. Unter 3D verstehe ich eine Ansicht von schräg oben (Beispiel: Navigationssystem!). Es gibt ja die Java Pakete Java2D und die Java3D Api! 

Wir machen auf jedenfall eine 2D Ansicht. Die Frage ist nur ob man mit machbaren Aufwand das Gezeigte 2D Bild in 3D umwandeln kann ohne das Bild von Grund auf neuzuprogrammieren! 

Wir haben von der Java 3D Api noch nicht soviel Ahnung. Wenn das Ganze zu kompliziert ist, lassen wir das mit der 3D Ansicht. 

Über ein bischen Feedback würde ich mich freuen! 

Mit freundlichen Grüßen
Quh


----------



## 0x7F800000 (10. Sep 2008)

nun ja, die eine Ansicht mit einer 2D-Api und die andere ansicht mit 3D-Api zu zeichnen wäre ziemlicher Unsinn. Wenn man etwas in 3D hat, dann lasse man die Kamera orthogonal auf die Karte guggen, und dann siehts schon genauso aus wie 2D. Die kamera ein bisschen hinundherzuschieben und zu schwenken dürfte mit jeder halbwegs vernünftigen 3D api nicht schwer fallen...


----------



## SlaterB (10. Sep 2008)

es dürfte doch viel eher eine fertige 2D-Ansicht sein, und die soll nun einfach nur per schräg Draufsicht dargestellt werden

klar dürfte das mit irgendeiner 3D-API gehen, aber wie, das ist die Frage 

> Wir haben von der Java 3D Api noch nicht soviel Ahnung


----------



## Guest (10. Sep 2008)

Ok! Das man die 3D Api standardmässig verwendet und man senkrecht nach unten schaut und so der Eindruck entsteht, dass das ganze nur 2D ist, ist an sich eine gute Idee! die Frage ist nur wie schwer ist es mit der Java 3D Api eine Art Navi von schräg oben zu erstellen. Braucht man viel mathematische Ahnung?

Deswegen sind wir uns nicht sicher!

Wäre cool wenn sich jmd melden könnte der sich mit dem Thema auskennt und sowas in der Art evt schon einmal erstellt hat!

Mfg Quh


----------



## Fancy (10. Sep 2008)

Moin,

die Frage ist, was Ihr bereits darstellt, was Ihr sehen wollt und wie viel Aufwand Ihr treiben wollt.

Falls ich Dich richtig verstehe, habt Ihr bisher keinerlei Tiefeninformationen. Wenn es sich, bei dem was Ihr darstellt, um eine abstrahierte Darstellung ohne Tiefeninformation z.B. einer Straßenkarte handelt, sollte das eigentlich kein Problem sein. Das Kippen der Ebene in den Raum (schräge Ansicht von oben) führt dann eigentlich nur dazu, dass ehemals parallele Senkrechte einen gemeinsamen Schnittpunkt bekommen. Technisch sähe das dann z.B. so aus, dass ein jetziger 2D Punkt mit einer Transformationsmatrix multipliziert werden müsste um wieder einen 2D Punkt zu erhalten, der die entsprechende Fluchtpunktperspektive (wie beim Navi), berücksichtigt. Praktisch müsste wahrscheinlich nur die Zeichenroutine angepasst werden.

Wenn eure bisherige 2D Darstellung allerdings eigentlich eine Tiefeninformation braucht, z.B. ein Auto das auf der Straßenkarte steht (wenn man nur von oben sieht, sieht man nur das Dach / wenn man von schräg oben sieht, sieht man z.B. Dach und Heck), habt Ihr eigentlich keine Möglichkeit zu "interpolieren" (keine API kann sich das Heck des Fahrzeugs ausdenken). Ihr müsstet also mindestens alle evtl. verwendeten Pixelgrafiken auf die neue Ansicht anpassen. (Das wäre dann in etwa wie die alten  Command & Conquer und Starcraft) 

Wenn Ihr bisher eh noch nichts habt und euch für eine 3D API entscheidet, entwickelt Ihr euer Programm eigentlich in 3D und mit entsprechendem Aufwand (auch wenn Ihr nur von oben auf die Szene blickt) (Das wäre dann in etwa wie die aktuellen C&C Titel). Falls Ihr allerdings schon mit 2D Grafik angefangen habt, müsstet Ihr für diesen Ansatz praktisch neu anfangen.

Gruß,
Michael


----------



## 0x7F800000 (10. Sep 2008)

naja, wenn es wirklich nur eine komplett platte eben ist, dann muss man da lediglich eine Transformation aus der 2D-Api loslassen, und schon hat man die entsprechende "Perspektive"...


----------

