Zeichnen einer Landschaft



  • @trienco
    Also eine direkte Draufsicht (90°) soll es nicht sein. Dann würde ich einfach ein paar Landschaftsbilder zeichnen und diese Nebeneinander anzeigen (was ich bereits kann und dafür eigentlich nicht haben will).

    Wie groß die Landschaft sein soll, hab ich mir noch nicht überlegt. Ist das wichtig für die Darstellung von Erhebungen und Senken?
    Zoombar sollte sie auch werden, aber nicht beliebig sondern die Stufen sollten fest vorgegeben sein. Ich will ja nicht was groß kompliziertes.

    Von der Darstellung her sollen nur die Höhen dynamisch sein.

    @rapso
    Soviel ich weiß, ist die Engine von Tropico(2) und RT2 die gleiche. Dort kommen Erhebungen und Senken vor.

    Wie schon beschrieben, möchte ich eigentlich nur eine Landschaft aus einem festen Winkel betrachten (z. B. 45°). Zoomen sollte auch funktionieren, aber wie oben beschrieben in festen Schritten. Drehen der Karte wäre natürlich auch ein Schmankerl, aber nicht individuell sondern in 4 Schritten, also sozusagen einmal von Norden, Westen, Osten oder Süden aus.

    Vielleicht sollte ich auch einfach mal meine Überlegungen schildern. Also ich hab mir gedacht, dass ich ein Feld habe, z. B. 4 x 4.

    char feld[4][4];
    

    Ein Element dieses Feldes hat dann nur eine Angabe, die die Höhe des Teilstücks ist.
    Um das nun auf den Bildschirm zu bringen, hab ich mir überlegt die 16 Elemente als Punkte zu platzieren. Dabei setze ich die Punkte gleichweit auseinander, nur dass ich noch die Höhe abziehe, damit der Punkt also am Bildschirm höher ist.

    Wenn also mein Startpunkt bei 100 (x), 100 👍 liegt, wäre der erste Punkte, bei einer Höhe von 5, an der Stelle 100 (x), 95 (y), usw.

    Diese Punkte würde ich dann mit Linien verbinden und die Flächen, die sich daraus ergeben würde ich gerne mit einer Texture, z. B. Gras füllen.

    Die Punkte und Linien wären später dann natürlich nur gedacht bzw. berechnet.


  • Mod

    axo, tropico2 hab nur den ersten teil angesehen (da fehlte eindeutig die 2 bei dir 😃 )

    so wie du das beschreibst klingt das als ob du polygone zeichnen wollen würdest. polygone sind ja nunmal ein umriss mit linien und gefüllt werden sie von einer graka auch (natürlich auch texturiert).

    das sollte nicht so schwer zu realisieren sein mit oGL. natürlich ist die qualität nicht so hoch wie bei einer iso-engine aber du kannst es auf ein ziemlich hoches niveau annehern.

    oder ist 3D komplett ausgeschlossen?

    rapso->greets();



  • Tropico und Tropico2 sehen eigentlich ziemlich ähnlich aus, finde ich, aber egal du weiß was ich meine :).

    Bin ich mit meinen Überlegungen also schon richtig dran oder muss man noch was dran ändern?

    Wie ich im ersten Post schon geschrieben habe, möchte ich Allegro verwenden. Kennst du dich damit aus? Kann ich es da auch einfach realisieren? Ist eine parallele Benutzung von Allegro und OpenGL überhaupt möglich?


  • Mod

    ich sprech von oGL weil ich allegro nicht nutze. aber bei einem kurzen blick auf deren hp ist mir das bzw. das aufgefallen, das müßtest du umschreiben, sodass du dort deine punkte reinschreibst und deine gewünschte kameraposition setzt und dann könnte es auch schon vielleicht funktionieren 🙂

    womit ich an deiner stelle anfangen würde, wäre, dass ich eine flache plane zeichnen würde und die kamera drüber positioniere, sodass du die plane sehen kannst.

    das sollte mit dem tutorial hoffentlich einfach zu machen sein.

    rapso->greets();



  • AJ schrieb:

    Wie ich im ersten Post schon geschrieben habe, möchte ich Allegro verwenden. Kennst du dich damit aus? Kann ich es da auch einfach realisieren? Ist eine parallele Benutzung von Allegro und OpenGL überhaupt möglich?

    allegro (so wie sdl und zig andere libs) helfen dir in der hinsicht erst mal gar nichts und sobald du ein fenster+context hast haben die nichts mehr mit der sache zu tun.

    das einfachste dürfte für den fall wohl sein, wenn du eine latte fertige stücke hast, sprich sowas wie flach, eine ecke "oben" (in 2-3 höhen), 2 oben, 3 oben, etc.. wie letztlich die richtige textur draufkommt hängt auch wieder schwer davon ab, was du haben willst. reichen 2-3 gehts einfach, soll mehr abwechslung dabei sein brauchts ein bißchen mehr. das ergebnis wird dann aber vermutlich eher wie populous anno tobak und weniger wie 3d anno fast 2005 aussehen ,-)

    am ende wirds eben ein lustiger kompromiß zwischen optik, kartengröße und speicherverbrauch... also eigentlich wie immer.



  • Ich habe vor einiger Zeit mal eine 3D-Landschaft generiert:
    Und zwar habe ich ein Graustufen-Bitmap genommen, jedes Pixel
    ausgelesen und den Wert (0-255) als Höhenwert genommen.
    Die resultierenden Punkte habe ich Trianguliert. Für die
    entstanden Dreiecke habe ich die Normalen berechnet, um sie
    zu schattieren (z.B. Flat-Shading).
    Als Ergebnis hatte ich eine halbwegs anschauliche 3D-Landschaft.
    Man kann auch noch Texturen draufpacken, Gras o.ä.
    Gibt auch viele Bücher zu diesem Thema.

    kris



  • CloseGL schrieb:

    Flat-Shading
    [...]
    wunderschön

    😕



  • Sgt. Nukem schrieb:

    😕

    Solange der Polycount nur hoch genug ist...



  • ok,ok, halbwegs anschaulich



  • Ahvolon[F-Bytes] schrieb:

    Sgt. Nukem schrieb:

    😕

    Solange der Polycount nur hoch genug ist...

    😃 👍



  • Ich würd dir mal ratten es wie in SC2/SC3 zu machen. Tropico ist da schon komplizierter da du scalen musst.

    Es geht eigentlich recht einfach, du fängst oben an zu zeichen und dann Häuschen nach Häuschen arbeitest du dich nach unten vor (wie in Civ). Wenn das läuft dann bringst du Berge ins Spiel indem du den Felder eine Höhe gibst. Das wird dann gezeichnet indem du das Häuschen auf sem Feld auf der y Axe verschiebst und dann wenn ein Feld an ein höheres Feld grenzt dann zeichnest du ein Rampenhäuschen. Wenn man da gut mach dann sieht das sehr schön aus, ich finde die SC3 Grafik eigentlich besser als die von Tropico.

    Die Tropico-methode ist in der Hinsich kompliziert da Häuser und BodenTexturen unterschiedliche Feldgrössen haben. Das Zeichenprinzip ist aber ganz ähnlich wie das von SC2/SC3 der Unterschied liegt darin, dass die Rampen nicht vorgezeichnete Häuschen sind, sonderen weren die Bodentexturen in ein Viereck gezeichnet. (Hatte das ganz mal mit simplen einfarbigen Vierecken gemacht).


Anmelden zum Antworten