Ogre3D - Einstieg ein paar Fragen



  • Hallo Gemeinde,

    ich bin nagelneu in der Spieleprogrammierung und habe noch nie was mit 3D oder ähnlichem gemacht, jedoch möchte ich mich damit befassen und an einem kleinen Spiel etwas rumspielen, testen etc. Den aufbau über Spiele kennen lernen Wie das mit Grafik, Animation und alles drum herum funktioniert. Ich möchte auch meine ganzen Grafiken selber erstellen, ich bin zwar eine absolute Niete was Grafik angeht, aber mir geht es darum den Prozess einfach zu begreifen, wie das ganze funktioniert, sprich was gehört dazu ein Model zu bauen, oder eine Map zu erstellen. Also möchte ich da einfach mal ganz einfach Anfangen.

    Ich habe mir eine hoffentlich einfache Idee für ein Spiel raus gesucht:

    - Es soll eine Map geben, wo man darauf laufen kann, und einen Gegner abschießen kann, das war es eigentlich schon für den Anfang. Die Kamera-Perspektive stelle ich mir Third-Person vor, sprich sowas wie bei RTS-Spielen... Im Prinzip soll das Spiel wie "Pong" sein nur das ich den Ball schieße... also komplett primitiv, ohne große Logik, für den Anfang.

    Ich habe mich hier für Ogre3D entschieden und würde auch gerne von Anfang an mit einer Rendering-Engine arbeiten. Für die Grafiken habe ich mich für Blender entschieden.

    Ich habe die ersten Ogre Turorials durch gearbeitet sowie einige Blender Tutorials. Jedoch komme ich hinten und vorne nicht klar, ich verstehe zwar was in den Ogre Tutorials erklärt wird und es ist auch relativ logisch, jedoch fehlen mir da eindeutig die Zusammenhänge, da ich einfach irgendwas lade und mir das dann anschauen kann.

    BSP.: Man lädt den ogre.mesh und sieht dann den Kopf, das ist wirklich super einfach, aber wie kommt man zu dem Mesh, was ist ein mesh, wie baut man das, ich gehe mal davon aus das die im Tutorial verwendeten Ressourcen so gebaut sind das es funktioniert und gut aus sieht, woher auch immer man weiß wie eine Lampe am besten Pltziert wird, welche Koordinaten da richtig sind, wenn ich sowas lese:

    mCamera->setPosition(Ogre::Vector3(1683, 50, 2116));
    mCamera->lookAt(Ogre::Vector3(1963, 50, 1660));
    

    ist das für mich einfach etwas Utopisch, da ich mir unter der Größenordnung einfach nichts vorstellen kann und stupides abtippen und so tun als ob ist auch nicht das wahre.
    Und mit aussagen wie:

    Notice how our Ogre Head is facing towards us along the -x direction? This is a property of the mesh and the camera position and facing. Cameras are covered in a later tutorial but for now just recognize the the Ogre's head is located at the position (0,0,0) and the our view of it is from in front a ways.

    Kann ich einfach nicht einordnen da ich die ganzen Eigenheiten nicht kenne, sprich es ist zum Anfang schwer nachvollziehbar. Ich verliere also da etwas den Überblick.

    Da ich die Tutorials und die Dokumentation sehr gut finde, habe ich mich nun dafür entschieden, das alles zu Stoppen und meine eigene Idee mit Hilfe der Tutorials zu realisieren, somit habe ich auch eine größere Spielwiese und werde vermutlich auch auf Fehler stoßen die das Tutorial mir nicht sagt und einige Vorgänge werden hoffentlich logischer, ich werde sehen wie schlechte Grafiken wirken etc und ich werde auch mal sehen was so ein "mesh" wirklich ist 🙂

    Ich habe mein vorhaben in ein paar kleine Schritte unterteilt. Zum Anfang möchte ich erstmal nur auf Schritt 1 eingehen, da alles andere derzeit unrealistisch ist. Für die ersten Gehversuche erwate ich keine top Grafik, oder so...

    Als erste möchte ich einmal das Spielfeld schaffen für meine Idee und danach eine Figur, die auf dem Spielfeld steht.
    Die Figur, welche ich mir erstmal als einen Würfel mit Textur vorgestellt habe. Ich gehe mal davon aus das diese Figur in Ogre genau so gehandhabt wird wie der Ogre-Kopf.

    Fragen:
    So hier kommt auch mein erstes Problem, so ein Spielfeld, wie bei RTS spielen etc, sprich die Map, was ist das eigentlich ist das Terrain? Sprich wird das in Ogre auch als Terrain behandelt, oder ist das einfach eine Plane mit anderen Models (Berge) darauf? Die Map soll vorerst primitiv sein ohne Gebirge oder sowas, quasi eine flache Fläche mit einem Muster (Textur), mehr nicht.

    Auch eine frage ist, ob ich hier in gebiete vordringe die noch nichts für mich sind, eventuell hat ja jemand einen anderen Tipp für mich, wie ich die am besten in die ganze Materie einsteige da ich auch nicht recht weiß auf was ich mir hier einlasse.

    Da mir das hier keine Ruhe lässt:

    Notice how our Ogre Head is facing towards us along the -x direction? This is a property of the mesh and the camera position and facing. Cameras are covered in a later tutorial but for now just recognize the the Ogre's head is located at the position (0,0,0) and the our view of it is from in front a ways.

    Wollte ich mal fragen ob mir das mal jemand erklären könnte.

    Desweiteren war ich immer Fest der Meinung das auf dem Monitor der Koordinaten-Ursprung die Obere-Linke-Ecke vom Monitor ist, hier auf der Koordinaten-Grafik von Ogre wird gezeigt das der Ursprung unten links. http://www.ogre3d.org/tikiwiki/Basic+Tutorial+1&structure=Tutorials

    Könnte mir jemand sagen was nun richtig ist?

    Sprich wenn ich ein Objekt auf 0,0,0 Positioniere, erwarte ich das eigentlich oben links in der Ecke und nicht auf der Mitte des Monitors, was irgendwie den verdacht in mir erweckt das ich nicht weiß wo ich bin. Sprich ich überlege mir ja wo ich meine Sachen hin baue und auf einmal sind sie wo anders, ich komme da etwas durcheinander, auch hier wäre eine kleine Erklärung gut.

    Danke für eure Hilfe

    so long



  • Hallo,
    also direkt vorab: Ich bin auch kein Experte was Modelling angeht. Blender kenne ich auch nur vom Namen her, hab aber selbst noch nie damit gearbeitet... Ob man damit Meshes erstellen kann keine Ahnung. Im Zusammenhang mit Ogre empfiehlt sich dafür 3DS Max, da sollte es ja eigentlich auch ne Trialversion von geben. Dinge wie Vierecke o.ä. sollten sich aber auch einfach innerhalb OGREs erstellen lassen.

    Ein Mesh ist grob gesagt ein "Objekt" das sich (zumindest oft) durch viele Dreiecke zusammensetzt und somit eben ein bestimmtes Gebilde ergibt. Das kann dann zum Beispiel ein Haus oder ähnliches sein.

    BSP.: Man lädt den ogre.mesh und sieht dann den Kopf, das ist wirklich super einfach, aber wie kommt man zu dem Mesh, was ist ein mesh, wie baut man das, ich gehe mal davon aus das die im Tutorial verwendeten Ressourcen so gebaut sind das es funktioniert und gut aus sieht, woher auch immer man weiß wie eine Lampe am besten Pltziert wird, welche Koordinaten da richtig sind, wenn ich sowas lese:

    mCamera->setPosition(Ogre::Vector3(1683, 50, 2116));
    mCamera->lookAt(Ogre::Vector3(1963, 50, 1660));

    ist das für mich einfach etwas Utopisch, da ich mir unter der Größenordnung einfach nichts vorstellen kann und stupides abtippen und so tun als ob ist auch nicht das wahre.

    Die beiden Befehle haben mit dem mesh selbst erstmal gar nichts zu tun. Hier wird einfach die Kameraposition und die Blickrichtung festgesetzt. Sprich wenn du die Koordinaten veränderst änderst du nicht das Mesh sondern nur die Position von der aus du das Mesh betrachtest.

    So hier kommt auch mein erstes Problem, so ein Spielfeld, wie bei RTS spielen etc, sprich die Map, was ist das eigentlich ist das Terrain? Sprich wird das in Ogre auch als Terrain behandelt, oder ist das einfach eine Plane mit anderen Models (Berge) darauf? Die Map soll vorerst primitiv sein ohne Gebirge oder sowas, quasi eine flache Fläche mit einem Muster (Textur), mehr nicht.

    Es gab wenn ich mich richtig erinnere schon eine Möglichkeit ein Terrain aus einer File auszulesen, würde da jetzt aber keine Garantie drauf geben. Für deine Zwecke würde hier wahrscheinlich einfach ein texturiertes Mesh ausreichen.

    Auch eine frage ist, ob ich hier in gebiete vordringe die noch nichts für mich sind, eventuell hat ja jemand einen anderen Tipp für mich, wie ich die am besten in die ganze Materie einsteige da ich auch nicht recht weiß auf was ich mir hier einlasse.

    Die Frage wird man dir nicht so leicht beantworten können. Das kommt drauf an wie deine Fähigkeiten in CPP so sind. Falls du da aber sicher bist spricht sicher nichts dagegen sich in OGRE einzuarbeiten. IMHO ist das eine recht einsteigerfreundliche Engine da du nach recht kurzer Zeit schon ansehnliche Ergebnisse erzielen kannst.

    Da mir das hier keine Ruhe lässt:
    Zitat:

    Notice how our Ogre Head is facing towards us along the -x direction? This is a property of the mesh and the camera position and facing. Cameras are covered in a later tutorial but for now just recognize the the Ogre's head is located at the position (0,0,0) and the our view of it is from in front a ways.

    Wollte ich mal fragen ob mir das mal jemand erklären könnte.

    Wäre gut wenn man das Beispiel dazu gesehen hätte. Aber ich denke es geht einfach darum, dass du die Szene eben so siehst aufgrund der eingestellten Kameraposition weiter oben.

    Sprich wenn ich ein Objekt auf 0,0,0 Positioniere, erwarte ich das eigentlich oben links in der Ecke und nicht auf der Mitte des Monitors, was irgendwie den verdacht in mir erweckt das ich nicht weiß wo ich bin. Sprich ich überlege mir ja wo ich meine Sachen hin baue und auf einmal sind sie wo anders, ich komme da etwas durcheinander, auch hier wäre eine kleine Erklärung gut.

    Du hast hier eben eine 3D Umgebung, dass heisst es ist recht "egal" wo 0,0,0 am Anfang zu sehen ist. Das hängt ja einfach nur von der Positionierung der Kamera ab. Die kannst du ja so verschieben das 0,0,0 links oben in der Ecke ist nur macht das eben (grade für deine Zwecke) wenig Sinn. Du kannst Objekte nachdem du sie eingeladen hast ja auch noch verschieben, drehen, skalieren usw.


Log in to reply