Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

SDL

Werbeanzeige

Anonymous

unregistriert

1

21.10.2005, 02:24

SDL

hi,
hab gehört in der 2. auflage soll auch ein paar seiten zu SDL stehen wie viele ca.?

wie kann ich mit SDL einen 3d würfel erstellen, möcht den auch gerne drehen können!? bitte um hilfe...
danke

lg surf

Anonymous

unregistriert

2

21.10.2005, 09:40

Bescheidene Frage, weshalb Fragst Du mich um ca 02:00 - 03:00 über SDL und würfel aus wenn Du hier schon fragst?

Achja, geh mal auf www.libsdl.org und da auf Tutorials, da sind OpenGL Tutorials mit SDL.

- Patrick, der lieber neben der schönen Frau geschlafen hat, als sich mit SDL auseinanderzusetzen.

Anonymous

unregistriert

3

21.10.2005, 15:29

ok;-)

hi, warum funzt das hier nicht? hm...er zeigt gar nix an;-(
initialisierung sollte aber richtig sein....und rendern?
cu

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
#include <stdlib.h>
#include <SDL.h>
#include <SDL_opengl.h>
#include <stdio.h>
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "opengl32.lib")

GLfloat rdreieck;
// Der Drehwinkel für das Dreieck


GLfloat rviereck;
// Der Drehwinkel für das Viereck


GLfloat rachteck;
// Der Drehwinkel für das Achteck



int DrawGLScene(GLvoid) 
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
  // Die vorherige Szene wird vom Bildschirm gelöscht, 

  // damit die neuen nicht einfach über die alten    

  // Objekte gezeichnet werden


  glLoadIdentity(); 
  // modelview-Matrix wird zurückgesetzt  


  glTranslatef(-1.5f,-1.5f,-8.0f);
  // Auf der X-Achse 1.5 Einheiten zurück (Nach links)

  // Auf der Y-Achse 1.5 Einheiten zurück (Nach unten)

  // Auf der Z-Achse 6 Einheiten zurück (In den Bildschirm hinnein.)


//Da die 3D-Objekte etwas mehr Platz beanspruchen wird die obere Änderung nltig. (Die Pyramide wird damit ein Stück nach unten geschoben, damit sie nicht den Würfel verdeckt.)


//Bei den Formen ist es wichtig, daß sich die Drehachse genau im Mittelpunkt befinet. Wird also eine Form gezeichnet und vorher eine Drehachse eingestellt so müssen alle Punkte dieses Objektes um einen Punkt 0,0,0 angelegt werden. Dazu ein Beispiel:


//Es wird eine Drehachse mit glRotatef() angelegt, danach ein Quadrat gezeichnet mit den Koordinaten:


//(0,0,0) für die untere linke Ecke

//(1,0,0) für die untere rechte Ecke

//(1,1,0) für die obere rechte Ecke

//(0,1,0) für die obere linke Ecke


//Die Kantenlänge beträgt also 1. Beim Ausführen wird man sehr schnell feststellen müssen, das sich das Quadrat nur um eine seiner Kanten dreht und nicht um seinen Mittelpunkt. Das Problem läßt sich recht einfach lösen indem die Koordinaten um einen Mittelpunkt (0,0,0) herrum angeornet werden. nämlich:


//(-0.5, -0.5, 0) für die untere linke Ecke

//(0.5, -0.5, 0) für die untere rechte Ecke

//(0.5, 0.5, 0) für die obere rechte Ecke.

//(-0.5, 0.5, 0) für die obere linke Ecke


//Das gleiche gilt natürlich auch für 3-dimensionale Objekte.


//Zuerst wird aber die Pyramide gezeichnet. Die Vorderseite kommt als allererstes, die unteren Ecken dieses Dreiecks müssen auf der Z-Achse ein Stück zurückgesetzt werden. Außerdem folgen alle Koordinaten der Seitenflächen zwischen einem glBegin(GL_TRIANGLES); und einem glEnd();. OpenGL packt also bei GL_TRIANGLES immer drei hintereinnanderstehende Koordinaten zu einem Dreieck zusammen. Alle Dreiecke haben die gemeinsame Koordinate (0.0f, 1,0f, 0,0f) die genau auf der Y-Achse liegt, um die die Pyramide ja insgesamt gedreh werden soll.


  glRotatef(rdreieck,0.0f,1.0f,0.0f);
  // Die Pyramide soll um die Y-Achse rotiert werden


  glBegin(GL_TRIANGLES); 
  // Es folgen die Koordinaten für mehrere Dreiecke


    glColor3f(0.0f,0.0f,1.0f); // das vordere soll blau werden

    glVertex3f( 0.0f, 1.0f, 0.0f); // oben (vorderes Dreieck)

    glVertex3f(-1.0f,-1.0f, 1.0f); // links (vorderes Dreieck)

    glVertex3f( 1.0f,-1.0f, 1.0f); // rechts (vorderes Dreieck)


    glColor3f(1.0f,0.0f,0.0f); // das rechte soll rot werden

    glVertex3f( 0.0f, 1.0f, 0.0f);  // oben (rechtes Dreieck)

    glVertex3f( 1.0f,-1.0f, 1.0f);  // links (rechtes Dreieck)

    glVertex3f( 1.0f,-1.0f, -1.0f); // rechts (rechtes Dreieck)


    glColor3f(0.0f,1.0f,0.0f); // das hintere grün

    glVertex3f( 0.0f, 1.0f, 0.0f);  // oben (hinteres Dreieck)

    glVertex3f( 1.0f,-1.0f, -1.0f); // links (hinteres Dreieck)

    glVertex3f(-1.0f,-1.0f, -1.0f); // rechts (hinteres Dreieck)

 
    glColor3f(1.0f,1.0f,0.0f); // und das linke gelb 

    glVertex3f( 0.0f, 1.0f, 0.0f); // oben (linkes Dreieck)

    glVertex3f(-1.0f,-1.0f,-1.0f); // links (linkes Dreieck)

    glVertex3f(-1.0f,-1.0f, 1.0f); // rechts (linkes Dreieck)


  glEnd(); // Zeichenaktion beenden


  glLoadIdentity(); // zurücksetzen


//glLoadIdentity() muss malwieder aufgerufen werden, damit sich die vorherige Rotation nicht mehr auf die nächsten Objekte auswirkt. Es wird also nicht nur der Zeichner, sondern auch die Rotation zurückgesetzt.


glTranslatef(-0.5f,0.8f,-9.0f);
// 5 Einheiten nach links, 0.8 Einheiten nach unten, // 9 Einheiten "in" den Schirm

glRotatef(rviereck,1.0f,1.0f,0.0f); // Der Würfel soll um die X- und Y-Achse rotiert werden glBegin(GL_QUADS); // Vierecke zeichnen


//Und jetzt zu dem Würfel, bestehend aus 6 Quadraten (QUADS). Es wird mit der oberen Fläche des Würfels angefangen. Die Y-Koordinate muss immer 1.0f bleiben. Zuerst wird der obere rechten Punkt der oberen Fläche des Würfels gezeichnet.


  glColor3f(0.0f,1.0f,0.0f); // Mit Blau gehts los

  glVertex3f( 1.0f, 1.0f,-1.0f); // oben rechts (OBEN)

  glVertex3f(-1.0f, 1.0f,-1.0f); // oben links (OBEN)

  glVertex3f(-1.0f, 1.0f, 1.0f); // unten links (OBEN)

  glVertex3f( 1.0f, 1.0f, 1.0f); // unten rechts  (OBEN)


//Die untere Fläche des Würfels wird genauso gezeichnet, allerdings eine Einheit unterhalb des Zentrums. Der Y-Wert ist immer -1.


   glColor3f(1.0f,0.5f,0.0f); // Orange

   glVertex3f( 1.0f,-1.0f, 1.0f); // oben rechts (UNTEN)

   glVertex3f(-1.0f,-1.0f, 1.0f); // oben links (UNTEN)

   glVertex3f(-1.0f,-1.0f,-1.0f); // unten links (UNTEN)

   glVertex3f( 1.0f,-1.0f,-1.0f); // unten rechts  (UNTEN)


//Jetzt wird die vordere Seite des Würfels gezeichnet. Die Z-Achse ist immer 1.


   glColor3f(1.0f,0.0f,0.0f); // Rot

   glVertex3f( 1.0f, 1.0f, 1.0f); // oben rechts (VORNE)

   glVertex3f(-1.0f, 1.0f, 1.0f); // oben links (VORNE)

   glVertex3f(-1.0f,-1.0f, 1.0f); // unten links (VORNE)

   glVertex3f( 1.0f,-1.0f, 1.0f); // unten rechts  (VORNE)


//Die hintere Fläche wird genauso dargestellt wie die vordere, aber weiter in den Bildschirm hinein versetzt. Daher wird nur die Z-Koordinate verändert.


   glColor3f(1.0f,1.0f,0.0f); // Gelb

   glVertex3f( 1.0f,-1.0f,-1.0f); // oben rechts (HINTEN)

   glVertex3f(-1.0f,-1.0f,-1.0f); // oben links (HINTEN)

   glVertex3f(-1.0f, 1.0f,-1.0f); // unten links (HINTEN)

   glVertex3f( 1.0f, 1.0f,-1.0f); // unten rechts  (HINTEN)


//Jetzt noch 2 weitere Flächen, die linke zuerst. (Und wie immer bleibt eine Seite unverändert.)


   glColor3f(0.5f,0.5f,0.5f); // Grau

   glVertex3f(-1.0f, 1.0f, 1.0f); // oben rechts (LINKS)

   glVertex3f(-1.0f, 1.0f,-1.0f); // oben links (LINKS)

   glVertex3f(-1.0f,-1.0f,-1.0f); // unten links (LINKS)

   glVertex3f(-1.0f,-1.0f, 1.0f); // unten rechts  (LINKS)


//Nun noch die letzte Seite des Würfels. Diese kann auch weggelassen werden um eine Kiste zu zeichnen ;)


   glColor3f(1.0f,0.0f,1.0f); // Violet

   glVertex3f( 1.0f, 1.0f,-1.0f); // oben rechts (RECHTS)

   glVertex3f( 1.0f, 1.0f, 1.0f); // oben links (RECHTS)

   glVertex3f( 1.0f,-1.0f, 1.0f); // unten links (RECHTS)

   glVertex3f( 1.0f,-1.0f,-1.0f); // unten rechts (RECHTS)


  glEnd(); // Zeichenaktion beenden


  glLoadIdentity(); // zurücksetzen


glTranslatef(3.0f,0.0f,-9.0f);
// 3 Einheiten nach rechts, 9 Einheiten "in" den Schirm


glRotatef(rachteck,0.0f,0.0f,1.0f); // Die Firgur soll um die Z-Achse rotiert werden


//Jetzt soll das Achteck 3-dimensional gezeichnet werden. Dazu werden an vier Seiten des schon bestehenden Achtecks, Dreiecke angezeichnet, diese haben dann jeweils zwei gemeinsame Koordinaten mit der Grundform, dem Achteck. Alle vier Dreiecke haben eine gemeinsame Koordinate (den Mittelpunkt). Zur besseren Vorstellung am besten das Programm ausführen. Das Ergebnis sieht etwas nach einem zu vier Seiten geöffneten, achteckigen Zelt aus.


  glBegin(GL_POLYGON); // Ein Polygon (in diesem Falle ein Achteck.)

  // jede Ecke bekommt eine andere Farb


    glColor3f(1.0f,0.0f,0.0f); // rot

    glVertex3f(-0.5f, 1.5f, -1.0f); // obere Ecke links

    glVertex3f( 0.5f, 1.5f, -1.0f); // obere Ecke recht

   
    glColor3f(0.0f,0.0f,1.0f); // blau

    glVertex3f( 1.5f, 0.5f, -1.0f); // rechte Ecke oben

    glVertex3f( 1.5f,-0.5f, -1.0f); // rechte Ecke unten


    glColor3f(0.0f,1.0f,0.0f); // grün

    glVertex3f( 0.5f,-1.5f, -1.0f); // untere Ecke rechts

    glVertex3f(-0.5f,-1.5f, -1.0f); // untere Ecke links

 
    glColor3f(1.0f,1.0f,0.0f); // gelb

    glVertex3f(-1.5f,-0.5f, -1.0f); // linke Ecke unten

    glVertex3f(-1.5f, 0.5f, -1.0f); // linke Ecke oben

    glEnd(); // Zeichenaktion beenden


  glBegin(GL_TRIANGLES); //Dreiecke sollen gezeichnet werden

  // jedes bekommt eine andere Farbe


    glColor3f(1.0f,0.0f,0.0f); // rot

    glVertex3f( 0.0f, 0.0f, 1.0f); // gemeinsamer Mittelpunkt

    glVertex3f(-0.5f, 1.5f, -1.0f); // obere Ecke links

    glVertex3f( 0.5f, 1.5f, -1.0f); // obere Ecke rechts


    glColor3f(0.0f,0.0f,1.0f); // blau

    glVertex3f( 0.0f, 0.0f, 1.0f); // gemeinsamer Mittelpunkt

    glVertex3f( 1.5f, 0.5f, -1.0f); // rechte Ecke oben

    glVertex3f( 1.5f,-0.5f, -1.0f); // rechte Ecke unten


    glColor3f(0.0f,1.0f,0.0f); // grün

    glVertex3f( 0.0f, 0.0f, 1.0f); // gemeinsamer Mittelpunkt

    glVertex3f( 0.5f,-1.5f, -1.0f); // untere Ecke rechts

    glVertex3f(-0.5f,-1.5f, -1.0f); // untere Ecke links


    glColor3f(1.0f,1.0f,0.0f); // gelb

    glVertex3f( 0.0f, 0.0f, 1.0f); // gemeinsamer Mittelpunkt

    glVertex3f(-1.5f,-0.5f, -1.0f); // linke Ecke unten

    glVertex3f(-1.5f, 0.5f, -1.0f); // linke Ecke oben

  glEnd(); // Zeichenaktion beenden


//Und auch die Drehwinkel müssen wieder bei jedem Durchgang geändert werden.


  rdreieck -= 0.4f; 
  // Der Drehwinkel des Dreiecks soll bei 

  // jedem Durchgang um 0,4f verringert werden.


  rviereck += 0.7f;
  // Der Drehwinkel des Vierecks soll bei 

  // jedem Durchgang um 0,7f erhöht werden.


  rachteck += 0.56f;
  // Der Drehwinkel des Achtecks soll bei 

  // jedem Durchgang um 0,56f erhöht werden werden.


return TRUE; // Alles hat geklappt

}


int main(int argc, char **argv)
{
    SDL_Surface *screen;
    int running;

    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        fprintf(stderr, "SDL konnte nicht initialisiert werden: %s\n",
            SDL_GetError());
        exit(1);
    }
    atexit(SDL_Quit);

/* OpenGL-Bildschirmmodus */
    SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

    screen = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
    if (!screen) {
        fprintf(stderr, "Konnte Bildschirmmodus nicht setzen: %s\n",
            SDL_GetError());
        exit(1);
    }

/* Initialisiere OpenGL-Status */
    glViewport(0, 0, screen->w, screen->h);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, screen->w, screen->h, 0, -1.0, 1.0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

/* Programmschleife */
    running = 1;
    while(running) {
        SDL_Event event;

        while(SDL_PollEvent(&event)) {
            switch(event.type) {
            case SDL_KEYDOWN:
                running = 0;
                break;
            case SDL_QUIT:
                running = 0;
                break;
            }
        }

        DrawGLScene(); // Die Szene ausgeben


        // Pageflip: Back- und Frontbuffer werden vertauscht

        SDL_GL_SwapBuffers();
    }

        return 0;
}

Anonymous

unregistriert

4

21.10.2005, 15:42

einfache frage: Verstehst Du den Code oder hast Du ihn nur Kopiert?

5

21.10.2005, 16:25

2. einfache Frage: Gibt es Compiller Fehler, oder was "funzt hier nicht" ?! ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

6

21.10.2005, 16:58

hi,
hab die perspektive vergessen....
soweit versteh ich den code wohl...
das problem ist es wird dreieck und pyramide gezeichnet aber der würfel nicht...warum auch immer...hm
cu

bassdscho

Alter Hase

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

7

22.10.2005, 01:54

Zitat von »"nix da"«

Patrick, der lieber neben der schönen Frau geschlafen hat, als sich mit SDL auseinanderzusetzen

Du lässt dich also von deinem PC 24h über neue Forumeinträge informieren und dann auch noch wecken --> FREAK

@Topic
Welches buch meinst du? Du hast das Topic nicht in eines der Buch Forums gepostet sondern in ein allgmeines

Zu deinem Code:
kA
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Anonymous

unregistriert

8

22.10.2005, 12:31

ok habs soweit am laufen, ich hab nun jetzt 3 würfel...das soll später ein rubic cube werden, das ist sowas:
http://en.wikipedia.org/wiki/Image:Rubiks_cube_scrambled.jpg
ich hab nur bisher die oberste reihe gemacht und mal rotieren lassen....
wie findet ihr das prinzip?

ein kollege meinte folgendes:
nakolium eigentlich müsstest du das ganz anders angehn
nakolium nicht über glRotate drehn
nakolium sondern die koordinaten der würfel berechnen. dir praktisch ne rotationsmatrix baun und die da durchjagen
nakolium damit die neuen würfelkoordinaten hast
nakolium so hast du ja keine koordinaten der würfel...

hat er recht?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
int DrawGLScene() 
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // Clear Screen And Depth Buffer


    glLoadIdentity();                                    // Reset The Current Modelview Matrix

        
    glTranslatef(0.0f,0.0f,-14.0f);
    glRotatef(45.0f,0.0,1.0,0.0);    
    glRotatef(-rquad,0.0,0.0,1.0);                        // Rotate The Quad On The X axis ( NEW )

    glTranslatef(0.0f,2.0f,0.0f);                        // Move Right 1.5 Units And Into The Screen 7.0


    glBegin(GL_QUADS);                                    // Draw A Quad

        glColor3f(0.0f,1.0f,0.0f);                        // Set The Color To Green

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Bottom Left Of The Quad (Top)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Bottom Right Of The Quad (Top)

        glColor3f(1.0f,1.0f,1.0f);                        // Set The Color To White

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Top Right Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Top Left Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Bottom)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Bottom)

        glColor3f(1.0f,0.0f,0.0f);                        // Set The Color To Red

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Front)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Front)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Front)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Front)

        glColor3f(1.0f,1.0f,0.0f);                        // Set The Color To Yellow

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Top Right Of The Quad (Back)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Top Left Of The Quad (Back)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Bottom Left Of The Quad (Back)

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Bottom Right Of The Quad (Back)

        glColor3f(0.0f,0.0f,1.0f);                        // Set The Color To Blue

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Left)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Left)

        glColor3f(1.0f,0.0f,1.0f);                        // Set The Color To Violet

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Right)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Right)

    glEnd();                                            // Done Drawing The Quad


    glTranslatef(2.0f,0.0f,0.0f);                        // Move Right 1.5 Units And Into The Screen 7.0


    glBegin(GL_QUADS);                                    // Draw A Quad

        glColor3f(1.0f,0.0f,0.0f);                        // Set The Color To Red

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Bottom Left Of The Quad (Top)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Bottom Right Of The Quad (Top)

        glColor3f(0.0f,1.0f,0.0f);                        // Set The Color To Green

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Top Right Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Top Left Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Bottom)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Bottom)

        glColor3f(1.0f,1.0f,1.0f);                        // Set The Color To White

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Front)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Front)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Front)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Front)

        glColor3f(0.0f,0.0f,1.0f);                        // Set The Color To Blue

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Top Right Of The Quad (Back)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Top Left Of The Quad (Back)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Bottom Left Of The Quad (Back)

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Bottom Right Of The Quad (Back)

        glColor3f(1.0f,1.0f,0.0f);                        // Set The Color To Yellow

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Left)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Left)

        glColor3f(1.0f,0.0f,1.0f);                        // Set The Color To Violet

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Right)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Right)

    glEnd();    

    glTranslatef(-4.0f,0.0f,0.0f);                        // Move Right 1.5 Units And Into The Screen 7.0


    glBegin(GL_QUADS);                                    // Draw A Quad

        glColor3f(0.0f,0.0f,1.0f);                        // Set The Color To Blue

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Top)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Bottom Left Of The Quad (Top)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Bottom Right Of The Quad (Top)

        glColor3f(1.0f,0.0f,0.0f);                        // Set The Color To Red

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Top Right Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Top Left Of The Quad (Bottom)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Bottom)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Bottom)

        glColor3f(1.0f,0.0f,1.0f);                        // Set The Color To Violet

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Front)

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Front)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Front)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Front)

        glColor3f(1.0f,1.0f,0.0f);                        // Set The Color To Yellow

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Top Right Of The Quad (Back)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Top Left Of The Quad (Back)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Bottom Left Of The Quad (Back)

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Bottom Right Of The Quad (Back)

        glColor3f(0.0f,1.0f,0.0f);                        // Set The Color To Green

        glVertex3f(-1.0f, 1.0f, 1.0f);                    // Top Right Of The Quad (Left)

        glVertex3f(-1.0f, 1.0f,-1.0f);                    // Top Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f,-1.0f);                    // Bottom Left Of The Quad (Left)

        glVertex3f(-1.0f,-1.0f, 1.0f);                    // Bottom Right Of The Quad (Left)

        glColor3f(1.0f,1.0f,1.0f);                        // Set The Color To White

        glVertex3f( 1.0f, 1.0f,-1.0f);                    // Top Right Of The Quad (Right)

        glVertex3f( 1.0f, 1.0f, 1.0f);                    // Top Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f, 1.0f);                    // Bottom Left Of The Quad (Right)

        glVertex3f( 1.0f,-1.0f,-1.0f);                    // Bottom Right Of The Quad (Right)

    glEnd();

    glLoadIdentity();

    rquad-=0.15f;                                        // Decrease The Rotation Variable For The Quad ( NEW )


return TRUE; // Alles hat geklappt

}

Werbeanzeige