Anfängerfrage: Cannon Wars in 3D - wie am besten anfangen?



  • Hallo,

    ich möchte ein Cannon Wars in 3D programmieren (falls jmd cannon wars nciht kennt hier ein link: http://www.nationlocation.com/cannonwars.html). Die zwei Kanonen befinden sich auf einer Welktkugel/Sphere, die zufällig generiert werden kann (zB höhere Berge usw ...). Eventuell will ich die Welt auch zerstörbar machen, dh. wenn ein Projektil das Ziel auf der Weltkugel verfehlt, ensteht ein Loch (wie zB bei Worms). Ich denke mir, dass das ganze mit Octrees möglcih sein soll, aber weiß ehrlich nicht genau, wo ich anfangen soll und hoffe ihr könnt mir da ein paar Tipps geben, oder irgendwelche Tutorials empfehlen, welche diese Thematik beschreiben. Falls das zufällige generieren von Spheres/Welktkugeln sehr komplex ist, denke ich mir anstattdessen irgendwelche vorgefertigten Welktkugel rein zu laden (in md2 Format).

    Danke für jede Antwort!

    mfg



  • Hallo

    Was kannst du bereits?

    Mfg.
    way



  • also ich kenn mich mit vektoren usw ... aus und habe auch so mittelmäßige bis gute c++ kenntnisse - an den mathematischen finessen in der computergraphik haperts bei mir ein wenig. Ich kenne die ganzen Beleuchtungsmodelle Phong und gouraud shading und weiß was ne viewingpipeline ist und wie sie implementiert wird usw ... also ich hab schon was mit computergraphik zu tun gehabt.

    mfg



  • Hallo

    O.K. das hört sich ehrlich gesgat ziemlich Mager an, trotzdem sollst du nicht in die Schublade gesteckt werden. Ich empfehle dir folgendes (nach persönlicher Erfahrung und Bezugnehmung auf deine Wissenskenntnisse):

    Die zwei Kanonen befinden sich auf einer Welktkugel/Sphere, die zufällig generiert werden kann (zB höhere Berge usw ...).
    

    -Überlege dir vorher was du generierst, ich empfehle ein Terrain ála Heightmap

    Eventuell will ich die Welt auch zerstörbar machen, dh. wenn ein Projektil das Ziel auf der Weltkugel verfehlt, ensteht ein Loch (wie zB bei Worms)

    -Sieh dir dazu Picking und Selecting an

    Ich denke mir, dass...

    -Brauchst du Starthilfe oder weisst du mit welcher API du arbeiten wirst?

    Falls das zufällige generieren von Spheres/Welktkugeln sehr komplex ist, denke ich mir anstattdessen irgendwelche vorgefertigten Welktkugel rein zu laden (in md2 Format).

    -Nein, bitte tu das letztere wie beschrieben nicht. 1. ist das MD2-Format nicht sehr komfortabel und nicht für statische MOdelle zu empfehlen. 2. Warum ein Format? Es reicht vollkommen die Kugeln selber zu generieren.

    Ich kann denien Wissenstand nicht genau einordnen. Hast du selber schon Implementierungen vorgenommen oder bist du noch Blutiger-Anfänger?

    Mfg.
    way



  • Danke für die schnelle Antwort 🙂

    O.K. das hört sich ehrlich gesgat ziemlich Mager an, ...

    Meinst du in Bezug auf meine Wissenskenntnisse? 🙂 ... naja ich kenn halt die grundlagen der cg (zbuffer, rotation, scale usw ...)

    -Überlege dir vorher was du generierst, ich empfehle ein Terrain ála Heightmap

    Kann ich mit Heightmaps Spheres/Weltkugeln erzeugen?

    -Brauchst du Starthilfe oder weisst du mit welcher API du arbeiten wirst?

    Ich arbeite mit OpenGL und GLFW ... ich bin aber ziemlicher Anfänger in OpenGl.

    Ich kann denien Wissenstand nicht genau einordnen. Hast du selber schon Implementierungen vorgenommen oder bist du noch Blutiger-Anfänger?

    u t
    Sagen wir mal so, ich habe mit OpenGL sehr sehr wenig zu tun gehabt, aber ich kenne mich aus mit den Grundlagen der CG (mehr theoretisch). Effektiv habe ich bisher nur was in Java gemacht und noch nie was mit C++ bzw. OpenGL.



  • Hallo

    Na das hört sich doch schonmal ganz Nett an für den Anfang.

    Kann ich mit Heightmaps Spheres/Weltkugeln erzeugen?

    -Nein, kannst du nicht. Diese Höhendaten können nur bis zu einem 90° Winkel vertikal generiert werden, daher kann man daraus keine Sphere generieren. Ich habe das nur erwähnt weil du Landschaften erwähnt hast. Kannst diese LAndschaften aber auch selber generieren.

    Und wie ich bereits sagte, Kugeln lädt man nicht als Modelle oder aus irgendwelchen externen Modelformaten. Du generierst sie einfach selber zur Laufzeit.

    btw:
    Als ich den ersten Beitrag durchgelesen habe, ist mir aufgefallen, dass ich solche Sachen auch immer machen wollte und kläglich gescheitert bin. Daher würde ich dir "im privaten Sinne" zur verfügung stehen, also falls du fragen hast. Ich schreibe dir mal eine Mail.

    Mfg.
    way
    way



  • way schrieb:

    Kann ich mit Heightmaps Spheres/Weltkugeln erzeugen?

    -Nein, kannst du nicht. Diese Höhendaten können nur bis zu einem 90° Winkel vertikal generiert werden, daher kann man daraus keine Sphere generieren. Ich habe das nur erwähnt weil du Landschaften erwähnt hast. Kannst diese LAndschaften aber auch selber generieren.

    Man kann wohl eine Heightmap für eine Kugel erstellen. Man muss nur Kugelkoordinaten verwenden. Der Wert in der Map gibt dann die Entfernung vom Mittelpunkt der Kugel an. Oder man bildet die Karte auf die sechs Seiten eines Würfels ab.
    Würde aber davon abraten eine Kugel nach dem bekannten Breiten-/Längengradnetz aufzubauen, weil dann an den Polen die Vertices sehr eng beieinander und am Äquator sehr weit auseinander liegen. Ein in viele kleine Dreiecke unterteilter, regelmäßiger Polyeder scheint da besser zu sein. Zum Beispiel bei der Abbildung der Karte auf einen Würfel: Die Seiten eines Einheitswürfels am Ursprung mit einem regelmäßigen Netz aus Vierecken überziehen und die Vertices so weit vom Ursrung wegschieben, wie es die Map angibt.
    geloescht

    PS: OK, ja, das klassische Heightfield ist eben und nicht rund 😛


Anmelden zum Antworten