Frage

Ich möchte 100 schwebende Würfel mit anzeigen DirectX oder OpenGL.

Ich suche entweder einen Beispielquellcode oder eine Beschreibung der Technik.Ich habe Probleme, mehr als einen Würfel richtig anzuzeigen.

Ich habe das Internet nach einer guten Reihe von Tutorials durchsucht, obwohl sie darüber sprechen, wie man es macht 3D Primitive, was ich nicht finden kann, sind Informationen darüber, wie man eine große Anzahl davon erstellt 3D Primitive - cubes, spheres, pyramids, und so weiter.

Keine korrekte Lösung

Andere Tipps

Sie sagen, Sie haben genug Probleme damit, einen Würfel anzuzeigen ...Daher bin ich mir nicht sicher, ob Sie eines zur Anzeige haben oder nicht.

Grundsätzlich...Fügen Sie Ihren Code zum Schreiben eines Würfels in eine Funktion ein und rufen Sie diese Funktion dann einfach 100 Mal auf.

void DrawCube()
{
    //code to draw the cube
}

void DisplayCubes()
{
    for(int i = 0; i < 10; ++i)
    {   
         for(int j = 0; j < 10; ++j)
         {
             glPushMatrix();
             //alter these values depending on the size of your cubes.
             //This call makes sure that your cubes aren't drawn overtop of each other
             glTranslatef(i*5.0, j*5.0, 0);
             DrawCube();
             glPopMatrix();
         }
    }              
}

Das ist der Grundriss, wie Sie dabei vorgehen könnten.Wenn Sie etwas Effizienteres wollen, schauen Sie sich einmal die Anzeigelisten an, sobald Sie die Grundlagen herausgefunden haben :)

Verwenden Sie einfach glTranslatef (oder das DirectX-Äquivalent), um einen Würfel mit demselben Code zu zeichnen, aber verschieben Sie den relativen Punkt, an dem Sie ihn zeichnen.Vielleicht gibt es aber einen besseren Weg, ich bin ziemlich neu in OpenGL.Stellen Sie sicher, dass Sie Ihren Standpunkt so einstellen, dass Sie sie alle sehen können.

Ja, wenn Sie effizient wären, würden Sie alles in denselben Vertex-Puffer werfen, aber ich glaube nicht, dass das Zeichnen von 100 Würfeln irgendeine in den letzten 5 Jahren produzierte GPU pushen wird, also sollten Sie die oben genannten Vorschläge problemlos befolgen.

Schreiben Sie einen einfachen Pass-Through-Vertex-Shader und schattieren Sie den Pixel-Shader nach Ihren Wünschen.Übergeben Sie entweder eine Weltmatrix und führen Sie die Übersetzung im Vertex-Shader durch, oder berechnen Sie einfach die Weltraum-Scheitelpunktpositionen auf der CPU-Seite (tun Sie dies, wenn Ihre Würfel fixiert bleiben sollen).

Sie könnten Lust haben und es tun Geometrieinstanzierung usw., aber machen Sie sich zuerst mit den Grundlagen vertraut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top