Gestreckte Vertices



  • Hey.

    Ich habe mir vorgenommen PingPong zu programmieren (Hab´ so oft immer nur sporadische Anwendungen geschrieben in Verbindung mit aufhören und wieder neuanfangen, dass mich das mittlerweile anödet).

    Nun gut. Ich habe Das nötigste erstmal geschrieben um damit anzufangen Objekte in Klassen zu verfassen. Also gehe ich direkt mal an's Spielfeld.

    Das Spielfeld will ich dynamisch erstellen lassen. Soweit, sogut.

    Das Erstellen der Vertices habe ich mir in etwa so vorgestellt:

    for(unsigned i = 0; i<PLAYFIELD_HEIGHT; i++)
    {
    	for(unsigned j = 0; j<PLAYFIELD_WIDTH; j++)
    	{
    		vertices[i + j].Pos = D3DXVECTOR3(j, i, 0.0f);
    	}
    }
    

    Und das Erstellen der Indices so:

    for(unsigned i = 0; i<(PLAYFIELD_HEIGHT-1); ++i)
    {
    	for(unsigned j = 0; j<(PLAYFIELD_WIDTH-1); ++j)
    	{
                                                         // Erster Durchlauf:
    		indices[k + 0] = i*PLAYFIELD_WIDTH+j;		// 0  (0, 0) 
    		indices[k + 1] = (i+1)*PLAYFIELD_WIDTH+j;	// 10 (1, 0)
    		indices[k + 2] = (i+1)*PLAYFIELD_WIDTH+j+1;  // 11 (1, 1)
    
    		indices[k + 3] = i*PLAYFIELD_WIDTH+j;		// 0  (0, 0)
    		indices[k + 4] = (i+1)*PLAYFIELD_WIDTH+j+1;  // 11 (1, 1)
    		indices[k + 5] = i*PLAYFIELD_WIDTH+j+1;	  // 1  (0, 1)
    
    		k += 6;
    	}
    }
    

    Im ersten Durchlauf sollen nun - für das erste Viereck - Vertex 0, 10, 11 und 0, 11, 1 zu 2 Dreiecken zusammengeformt werden. Klappt auch alles. Das Problem jetzt ist, dass diese Dreiecke nicht so dargestellt werden, wie ich mir das unter einem Feld vorstelle. Ich muss zugeben, ich bin ziehmlich müde und ich denke auch, dass ich irgendetwas übersehe. Nur was?

    Ich zeige euch, wie das ganze aussieht (ich gebe vorerst nur die ersten 3 Indices aus):

    (Wireframe) http://www.xup.in/pic,13340398/PP_-Wireframe.png
    (Solid) http://www.xup.in/pic,19826058/PP
    -_Solid.png

    Ich schätze, dass das Ganze ein Problem mit Matrizen ist. Liege ich richtig, wenn ich sage, dass ich noch eine Local-World Matrize für das Feld anlegen muss? Wenn ja, wie sieht das aus?

    Solltet ihr noch mehr Informationen benötigen (Aktuelle View, Projection und World Matrix Source sind im Bild erkenntlich), dann lege ich die natürlich bei!

    Ich hoffe ihr könnt mir helfen!

    // Edit:

    Vorgestellt hatte ich mir das ganze ungefähr so:

    +---+---+---+---+---+---+
    |
    |
    +
    |
    |
    +---+
    |   |
    |   |
    +---+---+---+---+---+---+
    

    Wenn euch das, wegen der Größe und der Streckung, irgendwie hilft, was die Vorstellung anbelangt.


  • Mod

    ich denke dein problem ist, dass du eine perspektivische matrix fuer die projektion nutzt, deiner zeichnung nach moechtest du aber orthogonal rendern.



  • Hey. Danke für deine Antwort, aber das Problem war das ich mich wohl beim Erstellen der Vertices vertan hab, so habe ich den Index [i + j] verwendet, was natürlich Werte überschreibt (Ist ja auch logisch) und es so zur, für mich, unerwartender Streckung kam.

    Ich danke Trotzdem. 🙂

    Dann kann ich jetzt ja weiter mit meinem PingPong machen *g*


Anmelden zum Antworten