# Mode7 (pseudo 3d)



## mantax (6. Nov 2009)

Hi
ich würde wahnsinnig gerne diesen Mode7 Effekt umsetzen, war aber bisher zu dumm... :/







Durch google bin ich auf dieses Tutorial gestoßen, dass ich aber ehrlichgesagt nicht verstehe.. hatte in der Schule bisher noch nix von Vektoren oder Matrizen..
Tonc: Mode 7 Part 1

Ich habe aber auch irgendwo gelesen, dass das sogar ohne Matrizen, sondern nur mit Trigonometrie möglich sein soll. Hat sich jemand bisher schon damit beschäftigt und kann mir helfen? 

Dankee


----------



## Marco13 (6. Nov 2009)

Nur als Zwischenfrage: Hat es einen Grund, warum du das ("SO") machen willst, und nicht sowas wie Java3D oder JOGL verwendest?


----------



## Steev (6. Nov 2009)

Wahrscheinlich, weil es mehr Spaß macht alles zu Fuß zu programmieren ;-)


----------



## mantax (6. Nov 2009)

Ja, richtig! Ich denke wirklich, dass es mir mehr Spass machen würde.. ich suche mir generell Projekte die ne Nummer zu groß sind, damit ich ne Herausforderung habe und noch was dazulerne  Außerdem würde ichs einfach gerne in 2d umsetzten, weil das mein Steckenpferd ist


----------



## Steev (6. Nov 2009)

Ich würde erst einmal ganz einfach anfangen und probieren, zum Beispiel einen Würfel dreidimensional anzuzeigen. Das braucht ja nur eine "Gitterbox" zu sein.
Wenn du das geschaft hast, dann hast du schon mal das Grundprinzip verstanden. Mit diesem Wissen müsstest du dann schon mal einfache Szenen hinbekommen. Dann würde ich probieren einzelne Punkte in drei Dimensionen darzustellen.

Ich hatte da mal ein Tutorial, aber ich finde es leider garade nicht mehr...


----------



## mantax (6. Nov 2009)

Ich denk mal das Ziel wird es sein ein Bild perspektivisch zu verzerren, sodass es am Ende sowas ergibt oder?

```
Skizze: ____
       /     \
      /       \
     /_________\
```

Dazu habich mir folgendes gedacht:

```
foreach(Bildzeile int i) {
  In x-Achsenrichtung Bildzeile stauchen. umso größer i, desto weniger stauchen
  In y-Achsenrichtung Bildzeile strecken. umso größer i, desto mehr strecken
}
```

und dann werd ich mir noch überlegen müssen wie ich das Ganze gescheit um die (3d) y-Achse rotieren kann und natürlich zusehen, dass man nicht wie in der Skizze die ganze Karte sehen kann, sonder nur einen kleinen Ausschnitt, eben wie in dem F-Zero Screen oben.

Ist das euerer Meinung nach der richtige Ansatz? Gibt es bestimme Zahlenwerte, die ich als Faktoren für die Stauchungen/Streckungen verwenden muss, damit sich eine realitische Perspektive ergibt?

Bin dankbar für jeden Hinweis!


----------



## Marco13 (7. Nov 2009)

Hm .... wo ist der Unterschied zwischen 2D und 3D? Also, am Ende ist (noch, meistens) soweiso alles 2D - nämlich auf dem Bildschirm (3D wird es erst wieder ein Stück hinter der Netzhaut  ). Einfach ein Bild Zeilenweise zu malen, und die Zeilen nach oben hin schmaler zu machen wird vermutlich keinen ... akzeptablen Effekt bringen - Ich hatte den Artikel nur überflogen, und das sah schon nach 3D aus ...


----------



## mantax (7. Nov 2009)

Hmm ich werd mich mal dran versuchen und gucken obs nicht vllt doch annehmbar endet 
Bin eben noch über diese Seite gestolpert Lou's Pseudo 3d Page
Und wenn ichs auf den ersten Blick richtig verstanden habe, wird da in etwa die Methode von oben erklärt und ausgebaut.


----------

