Es werden 100 Floating-Cubes mit DirectX oder OpenGL

stimmen
13

Ich möchte 100 Floating - Würfel angezeigt werden mit DirectXoder OpenGL.

Ich suche entweder einig Beispiel-Quellcode oder eine Beschreibung der Technik. Ich habe Probleme mehr einen Würfel immer richtig angezeigt werden soll.

Ich habe das Netz für eine gute Reihe von Tutorials gekämmt und obwohl sie darüber reden , wie zu tun 3DPrimitiven, was kann ich nicht finden , sind Informationen darüber , wie ein große Anzahl von tun 3DPrimitiven - cubes, spheres, pyramidsund so weiter.

Veröffentlicht am 04/08/2008 um 07:51
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
7

Sie sagen, Sie genug Mühe, einen Würfel angezeigt haben ... also ich bin nicht sicher, ob Sie eine bekommen haben angezeigt werden oder nicht.

Grundsätzlich ... setzen Sie Ihren Code ein Würfel in einer Funktion für das Schreiben, dann rufen Sie einfach, die Funktion 100 mal.

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 die Grundzüge für die, wie Sie über das tun dies gehen könnte. Wenn Sie etwas effizienter einmal einen Blick in Display-Listen nehmen, sobald Sie die Grundlagen herausgefunden haben :)

Beantwortet am 04/08/2008 um 10:12
quelle vom benutzer

stimmen
6

Ja, wenn Sie waren effizient sein würden Sie alles in den gleichen Eckpunktpufferspeicher werfen, aber ich glaube nicht, 100 Würfel zeichnen wird jede GPU in den letzten 5 Jahren produziert schieben, so sollten Sie sich gut über folgende Vorschläge sein.

Schreiben Sie einen Grunddurchgang durch Vertex-Shader, Schatten jedoch, das Sie in den Pixel-Shader wünschen. Entweder passiert in einer Welt, Matrix und tut, um die Übersetzung in den Vertex-Shader oder nur die Vertexpositionen Welt-Raumes berechnet auf der CPU-Seite (dies tut, wenn Sie Ihre Würfel fest bleiben werden).

Man könnte Lust bekommen und tut Geometrie instancing usw., aber nur die Grundlagen zuerst in Gang bringen.

Beantwortet am 19/08/2008 um 12:12
quelle vom benutzer

stimmen
6

Verwenden Sie einfach glTranslatef (oder das Äquivalent DirectX) einen Würfel zu zeichnen den gleichen Code verwenden, aber die relative Punkt bewegen, wo Sie es zeichnen. Vielleicht ein besserer Weg, es gibt es aber zu tun, ich bin ziemlich neu in OpenGL. Achten Sie darauf, Ihren Standpunkt zu setzen, so dass Sie sie alle sehen können.

Beantwortet am 04/08/2008 um 10:04
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more