Viser 100 Flytende Cubes bruker DirectX eller OpenGL

stemmer
14

Jeg vil gjerne vise 100 flytende kuber bruke DirectXeller OpenGL.

Jeg leter etter enten noen eksempel kildekode, eller en beskrivelse av teknikken. Jeg har problemer med å få mer en terning for å vises riktig.

Jeg har finkjemmet nettet for en god serie med tutorials, og selv om de snakker om hvordan du gjør 3Dprimitiver, hva jeg finner ikke er informasjon om hvordan du gjør et stort antall 3Dprimitiver - cubes, spheres, pyramids, og så videre.

Publisert på 04/08/2008 klokken 06:51
kilden bruker
På andre språk...                            


3 svar

stemmer
8

Du sier at du har nok problemer med å få en kube å vise ... så jeg er ikke sikker på om du har fått en til å vise eller ikke.

I utgangspunktet ... sette koden din for å skrive en kube i en funksjon, så bare kalle den funksjonen 100 ganger.

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();
         }
    }              
}

Det er den grunnleggende oversikt for hvordan du kan gå om du gjør dette. Hvis du vil ha noe mer effektiv ta en titt inn i skjermen viser en gang når du har det grunnleggende funnet ut :)

Svarte 04/08/2008 kl. 09:12
kilden bruker

stemmer
7

Bare bruk glTranslatef (eller DirectX tilsvarende) for å tegne en kube bruker den samme koden, men flytter den relative punkt der du tegner det. Kanskje det er en bedre måte å gjøre det selv, jeg er ganske ny på OpenGL. Sørg for å sette ditt synspunkt slik at du kan se dem alle.

Svarte 04/08/2008 kl. 09:04
kilden bruker

stemmer
6

Ja, hvis du var å være effektiv du ville kaste alt i samme toppunkt buffer, men jeg tror ikke tegne 100 kuber vil presse noen GPU produsert de siste 5 årene, så du bør være i orden å følge forslagene ovenfor.

Skriv en grunnleggende pasning gjennom vertex shader, skygge men du ønsker i pixel shader. Enten passere i en verden matrise og gjøre oversettelsen i toppunktet shader, eller bare beregne verden plass toppunktet stillinger på CPU side (gjøre dette hvis kuber skal bo fast).

Du kan få fancy og gjøre geometri instancing etc, men bare få grunnleggende kommer først.

Svarte 19/08/2008 kl. 11:12
kilden bruker

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