Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 13:49

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL Textausgabe ???
BeitragVerfasst: Fr Apr 23, 2004 13:50 
Offline
DGL Member

Registriert: Fr Apr 23, 2004 13:02
Beiträge: 5
Wohnort: MVP
Moin...

Wie an dieser Rubrik unschwer zu erkennen ist,bin ich neueinstiger was
OpenGL betrifft.
Ich gebe auch gleich zu,das ich damit hier und da so meine "Verständnisprobleme" bezüglich 3D und OpenGL habe.
Wirklich anfreunden kann ich mich damit nicht,aber ich komm nicht drum rum.

Nun zum Problem:
Ich nutze OpenGL für ein 2D Projekt (Sternenkarte) und dort werden ca.
6000 Planeten an verschiedenen Positionen gerendert und je na Planetentyp
mit einer bestimmten Textur beklebt. Sprich ich zeichne für jeden Planet ein
GL_QUADS und klebe eine Textur drüber,wo ein runder Planet drauf ist.
Das reicht für meine Zwecke völlig aus.

Das Rein- und Rauszoomen löse ich durch GLTranslatef(x,y,z).
Wobei Z hier eine Variable ist welche durch ein Mauswheel geändert werden kann.

Funzt soweit (nach vielen Pannen) nun auch ganz gut.

Nun hab ich aber ein Problem:

Ich möchte natürlich jeden Planeten "Beschriften" und ich habe keine Checkung wie ich das machen muß/soll.

So müßte an jeder rechten unteren Ecke eines Quads ein Text hin,wo steht wie der Planet z.B. heißt.
Die Schrift sollte beim Rein- und Rauszoomen aber nicht ihre Größe ändern.
Vom Prinzip sollte es so aussehen,als wenn ich jeweils ein "TLABEL" an jeder unteren Ecke des Planeten positioniere,nur das der Text von OpenGL dort angebracht wird (anders wäre es in dieser 2D draufsicht auch garnicht
möglich)

Nun kommt die Preisfrage wie man sowas macht oder wo es dazu vielleicht
ein entsprechendes Tutorial gibt ???

Idiotensichere Erklärungen/Tutorials sind mir willkommen,da ich mir zum
Thema 3D eh schon recht begriffstutzig vorkomme.

Danke

Bullykiffer

P.S.: Ich benutze Delphi 6 und OpenGL12. OpenGL15 nutze ich deshalb (noch) nicht,weil ich froh bin wenigstens mit OpenGL12 halbwechs was auf den Bildschirm zu zaubern. Da muß ich mir einen nochmaligen "Kraftakt" mit OpenGL15 nicht nochmal antun ;)

_________________
Ich weiß zwar nicht worum es geht,
aber ich bin dabei...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 23, 2004 15:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Für Textausgabe gibts unter OpenGL diverse Methoden. Da gibts Texturenfonts, Bitmapfonts und outline Fonts. Empfehlen würde ich ersteres, bei denen aus einer Schrifttextur Quads für jeden Buchstaben erstellt werden und dann auch später zum Rendern des Textes genutzt werden. Diese Methode ist eindeutig die Schnellste und von daher wohl auch für dein Szenario am besten geeignet. Wie genau man die nutzt steht in meinem 2.Bombermantutorial drinne, inklusive Link zu nem Tool das die passenden Texturen erstellt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 23, 2004 17:48 
Offline
DGL Member

Registriert: Fr Apr 23, 2004 13:02
Beiträge: 5
Wohnort: MVP
Danke,ich werde mal reinschauen (und hoffen das ich es verstehe) .
Ich hab mir heute NAcht schon ein paar Tutorial VCL's gekladen,in der
hoffnung dort was zum Thema "Textausgabe" zu finden,aber das Bomberman
VCL war nicht dabei. Ja,wie es im Leben immer so spielt,da wo man zuletzt
nachsieht/nachsehen würde,da versteckt sich auch das gesuchte ;)

Ich werde mich heut Nacht mal da ran setzen und schauen ob ich
es ins Hirn bekomme...

THX Bullykiffer

_________________
Ich weiß zwar nicht worum es geht,
aber ich bin dabei...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 24, 2004 00:29 
Offline
DGL Member

Registriert: Fr Apr 23, 2004 13:02
Beiträge: 5
Wohnort: MVP
Moin....

Ich bins nochmal,wie sollte es auch anders sein (so spät in der Nacht).
Ich habe mir mal das Bomberman Tutorial 2 geladen und mal darin etwas
rumgewühlt. NAch einigem wühlen habe ich dann festgestellt,das der eigentliche Code nach BombermanFont.pas ausgelagert ist.
"Fein" hab ich mir da gesagt und zum Testen mal das Lesson2_1_VCL
mißbraucht,weil ich erst mal schauen wollte obs auch so funktioniert.
Gesagt ->getan. Ich hab dann mal die benötigten Units und die Font.tga in
das entsprechende Verzeichnis kopiert,die initialisierung für "TextureFont"
vorgenommen (auch die TextureFont.free beim beenden des Programms)
und nun mal eben ein schlichtes "TextureFont.Print2D" in die OnIdle Routine
geworfen. Freuend mal compiliert,angesehen und entgeistert die Mundwinkel
nach unten gezogen -> Nichts zu sehen. (Außer das Dreieck des Tuts).
Hmm, Ach ja,da war ja noch sowas wie glOrtho (womit ich nicht viel anfangen kann,lol) und glPushMatrix (nochsowas womit ich nicht viel anfangen kann).
Also nochmal in das Bomberman2 Tutorial geschaut und dort fand ich
dann ja auch die Passagen wo es um beschriftungen im Spiel geht.
Naja,machen wir mal "Copy&Paste" , ändern die Variablen für den Text und die Position ein wenig und dann muß es ja funktionieren...
Also fix getan,zum Spielen bereit klick -> start -> Nix... (nur das Dreieck)

Grübel... Zweifel an einem selbst,keine Fehlermeldung,kein "offensichtlicher Fehler" , kein garnichts..
Also probieren wir doch mal ein wenig rumgekürze,ein paar andere Positionen oder ma TextureFont.Print3D -> Nichts... (außer das meine Augen langsam anfangen nervös zu zucken)

Hmmm,Mist,nun mußt du dich im OGL Forum als zu blöd Outen :(

Also ich Oute mich jetzt als wahrscheinlich dem blödesten OpenGL'er den
die Community je gesehen hat,aber was hilfts:

Das ist mein (zugestutzter) Code aus der OnIdle Routine des Sourcecodes
des 2 Tutorials für "Einsteiger".

Code:
  1.  
  2. procedure TMainForm.ApplicationEventsIdle(Sender: TObject;
  3.   var Done: Boolean);
  4.  
  5. var
  6.   Error : LongInt; //Fehler?
  7.  
  8. begin
  9.   //Abbrechen, wenn OpenGL noch nicht initialisiert ist
  10.   if not OpenGLInitialized then Exit;
  11.   //Immer schön neu zeichnen
  12.   Done := False;
  13.  
  14.   glClearColor(0,0,0,0);
  15.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  16.  
  17.   glLoadIdentity;
  18.   glTranslatef( -1.5,  0,  -6);
  19.  
  20.   {TIP: Entferne die beiden oberen glColor3f. Das Dreieck wird dann "blau" gezeichnet
  21.         werden! Wenn Sie beim starten ganz schnell gucken, wirst du feststellen, dass das
  22.         Dreieck kurz weiß zu flackern scheint. Der Grund dafür ist, dass beim ersten Durchgang
  23.         die beiden ersten Eckpunkte weiß gezeichnet werden und erst beim nächsten Durchgang
  24.         blau gefärbt werden. Um dies zu vermeiden müßte man bereits vor dem Zeichnen dieser
  25.         beiden Eckpunkte die Farbe auf blau setzen!}
  26.  
  27.  
  28.    //Hier mal zum Testen ausgeklammert,das wäre das Original Dreieck
  29.   {glBegin(GL_TRIANGLES);
  30.       glColor3f(1,0,0);                // alle weiteren Vertice werden rot gezeichnet
  31.       glVertex3f(-1.0,-1.0, 0.0);
  32.       glColor3f(0,1,0);                // alle weiteren Verticen werden grün gezeichnet
  33.       glVertex3f( 0.0, 1.0, 0.0);
  34.       glColor3f(0,0,1);                // alle weiteren Verticen werden blau gezeichnet
  35.       glVertex3f( 1.0,-1.0, 0.0);
  36.   glEnd(); }
  37.   //Zum Testen mal ausgeklammert
  38.  
  39.   glOrtho(0,640,0,480,-2000,2000);
  40.   glMatrixMode(GL_MODELVIEW);
  41.   glLoadIdentity;
  42.   glPushMatrix;
  43.    glTranslatef(0, 0,-1);
  44.    glScalef(1,-1,1);
  45.    TextureFont.Print2D('Testeintrag 50050...', [10,30,-1],[1,1,1],1,1);
  46.    TextureFont.Print3D('Testmuster', [1,1,-1], -1);
  47.    glScalef(1,-1,1);
  48.   glPopMatrix;
  49.  
  50.   //Hier habe ich mal so ziemlich alles mal nach und nach ausgeklammert
  51.   //Auch hier und da die "Werte" verändert,geholfen hats nichts
  52.  
  53.   //Error Handler
  54.   Error := glgetError;
  55.   if Error <> GL_NO_ERROR then
  56.   begin
  57.     Caption := gluErrorString(Error);
  58.     //Rendering kurz anhalten
  59.     Done := True;
  60.     FlashWindow(Handle, True)
  61.   end;
  62.   //Frame Counter
  63.   Inc(Frames);
  64.   if GetTickCount - StartTick >=500 then
  65.   begin
  66.     Caption := Format('%s [%f FPS]', [AppTitle, Frames/(GetTickCount - StartTick)*1000]);
  67.     Frames := 0;
  68.     StartTick := GetTickCount
  69.   end;
  70.   //Und anzeigen
  71.   SwapBuffers(Canvas.Handle)
  72. end; (*ApplicationEventsIdle*)
  73.  


Ich habe sämtliche Konstellationen usw. versucht,aber wahrscheinlich bin ich ein hoffnungsloser Fall :( Bitte gebt mir einen Gnadenschuß ;)

Bullykiffer[/code]

_________________
Ich weiß zwar nicht worum es geht,
aber ich bin dabei...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 24, 2004 08:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
glOrtho und auch gluPerspective beweirken eine Veränderung der Projektionsmatrix. Du musst also zum Wechseln in den Orthomodus die Projektionsmatrix aktivieren. Dies geht mit Hilfe von glMatrixMode().
Zum Zeichnen deiner Szene musst du anschließend wieder die Modelviewmatrix aktivieren.

Code:
  1. glMatrixMode(GL_PROJECTION);
  2. glLoadIdentity;
  3. glOrtho(0, 800, 600, 0, -1000, 1000);
  4. glMatrixMode(GL_MODELVIEW);
  5. glLoadIdentity;
  6. TextureFont.Print2D('Testeintrag 50050...', [10,30,-1],[1,1,1],1,1);

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 24, 2004 20:43 
Offline
DGL Member

Registriert: Fr Apr 23, 2004 13:02
Beiträge: 5
Wohnort: MVP
@Magellan:

Danke für den Hinweis,welchen ich auch gleich umgesetzt habe...
Aber wie ich schon sagte,ich bin mit 3D wohl auf Kriegsfuß,denn es
funktioniert immer noch nicht :(

Zumindest ist jetzt ein weißer Balken auf dem Screen zu sehen.
Sieht so aus,als wenn ich ein TLABEL weiß verpasse und die Fontfarbe auch
auf Weiß setze.

Das ulkige ist,das das gemalte Dreieck (was nach dem Text gerendert wird)
überhaupt nicht mehr angezeigt wird,sobald der Textausgabebefehl "benutzt" wird.
Sehr suspekt das ganze :(

Das ist der Code:
Code:
  1.  
  2.  //Abbrechen, wenn OpenGL noch nicht initialisiert ist
  3.   if not OpenGLInitialized then Exit;
  4.   //Immer schön neu zeichnen
  5.   Done := False;
  6.  
  7.   glClearColor(0,0,0,0);
  8.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  9.  
  10.   glLoadIdentity;
  11.   //glTranslatef( -1.5,  0,  -6);
  12.  
  13.   //Textausgabe
  14.   glMatrixMode(GL_PROJECTION);
  15.    glLoadIdentity;
  16.    glOrtho(0, 800, 600, 0, -1000, 1000);
  17.   glMatrixMode(GL_MODELVIEW);
  18.    glLoadIdentity;
  19.    TextureFont.Print2D('Testeintrag 50050...', [10,30,-1],[1,1,1],1,1);
  20.   {TIP: Entferne die beiden oberen glColor3f. Das Dreieck wird dann "blau" gezeichnet
  21.         werden! Wenn Sie beim starten ganz schnell gucken, wirst du feststellen, dass das
  22.         Dreieck kurz weiß zu flackern scheint. Der Grund dafür ist, dass beim ersten Durchgang
  23.         die beiden ersten Eckpunkte weiß gezeichnet werden und erst beim nächsten Durchgang
  24.         blau gefärbt werden. Um dies zu vermeiden müßte man bereits vor dem Zeichnen dieser
  25.         beiden Eckpunkte die Farbe auf blau setzen!}
  26.  
  27.   glBegin(GL_TRIANGLES);
  28.       glColor3f(1,0,0);                // alle weiteren Vertice werden rot gezeichnet
  29.       glVertex3f(-1.0,-1.0, 0.0);
  30.       glColor3f(0,1,0);                // alle weiteren Verticen werden grün gezeichnet
  31.       glVertex3f( 0.0, 1.0, 0.0);
  32.       glColor3f(0,0,1);                // alle weiteren Verticen werden blau gezeichnet
  33.       glVertex3f( 1.0,-1.0, 0.0);
  34.   glEnd();
  35.   //Error Handler
  36.  
  37.   ...
  38.   ...
  39.   ....
  40.  


Habe den Befehl TextureFont.Print2D auch mal in glPushMatrix und glPopMatrix eingebettet,was aber auch nichts geholfen hat.
Sobald aber der Textausgabebefehl NICHT ausgeklammert wird,verschwindet das Dreieck.
Davon mal abgesehen das Anstatt der Schrift nur ein "Weißer Balken"
erscheint und das Dreieck dann spurlos verschwindet, scheint der Text
auch nur über Pixelkoordinaten positionierbar zu sein !!??
JEdenfalls setzt er die Textausgabe (Balken,lol) an den Pixelpositionen und NICHT nach den OpenGL Koordinaten (wie ich es benötigen würde).

Wie es ausschaut werde ich mich mit OpenGl/DirectX wohl nicht anfreunden können :( Zuviele verschiedene Header,zuviel verschiedene Möglichkeiten und zuviele Sachen die irgendwie nicht so wollen wie sie sollen. (Auch wenn die Schuld sicherlich bei mir zu suchen ist)

Ich könnte heulen :( Aber ich hab wohl geahnt,warum ich an 3D nicht wirklich ran wollte,habs ja solange vor mir hergeschoben wie es nur ging,grins...

Bullykiffer

... der sich schon einen Platz bei den Trotteln reserviert :shock:

_________________
Ich weiß zwar nicht worum es geht,
aber ich bin dabei...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 25, 2004 03:18 
Offline
DGL Member

Registriert: Mo Apr 05, 2004 19:51
Beiträge: 105
Also eine gewisse Einarbeitung in die Grundprinzipien gehört schon dazu, wenn du etwas mit Direct3D und/oder OpenGL anfangen willst. Sehr zu empfehlen: Besorge dir das "Redbook" ("OpenGL Programming Guide"), am besten in Druckform (bei Amazon gebraucht in einer älteren Auflage recht günstig zu bekommen). Wenn du da durch bist, sollten deine Verständnisprobleme der Vergangenheit angehören.
Ohne dass ich jetzt den speziellen Code im Bomberman-Tutorial kenne... Ist Texture Mapping aktiviert? [glEnable(GL_TEXTURE_2D);]
Ist die Textur korrekt geladen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 25, 2004 09:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Ich habe mir mal den Fontmanager von Son of Satan herunter geladen und versucht dein Problem nach zu vollziehen. Du musst zum Zeichnen deines Dreiecks nach der Textausgabe selbstverständlich wieder in den perspektivischen Modus zurück wechseln. Außerdem musst du darauf achten, dass du dein Texturing vor dem Zeichnen des Dreieckes deaktivierst, dadu für dieses keine Texturkoordinaten gesetzt hast und es daher nicht texturiert werden soll.

Code:
  1. procedure TfrmRender.Draw;
  2. begin
  3.   glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
  4.  
  5.   //In Orthomodus wechseln
  6.   glMatrixMode(GL_PROJECTION);
  7.   //Perspektivischen Modus speichern
  8.   glPushMatrix;
  9.   glLoadIdentity;
  10.   glOrtho(0,800,600,0, -1000, 1000);
  11.   glMatrixMode(GL_MODELVIEW);
  12.  
  13.   //Identitätsmatrix wieder herstellen
  14.   glLoadIdentity;
  15.  
  16.   //Text ausgeben
  17.   glEnable(GL_TEXTURE_2D);
  18.   TextureFont.Print2D('Testeintrag 50050...', [10,30,-1],[1,1,1],1,1);
  19.  
  20.   //In Perspektivischen Modus wechseln (zum Zeichnen des Dreiecks)
  21.   glMatrixMode(GL_PROJECTION);
  22.   //Perspektivischen Modus wieder herstellen
  23.   glPopMatrix;
  24.   glMatrixMode(GL_MODELVIEW);
  25.  
  26.   //Dreieck wird nicht texturiert
  27.   glDisable(GL_TEXTURE_2D);
  28.   //Dreieck zeichnen, verschieben etc.
  29. end;


Damit sollte es funktionieren.
Nach der Initialisierung von OpenGL solltest du außerdem noch eine Textur für die Textausgabe laden.

Code:
  1. TextureFont:=TTexFont.Create('font.tga');


Wenn noch etwas unklar ist, zögere nicht zu fragen!

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 26, 2004 23:19 
Offline
DGL Member

Registriert: Fr Apr 23, 2004 13:02
Beiträge: 5
Wohnort: MVP
@Arno:

Du hast sicherlich recht,das lesen hilft ;)
Allerdings ist es bei mir mit der Zeit nicht sooo gut bestellt,als das ich
mir in aller Ruhe alles durchlesen könnte. (Zudem bin ich dafür zu hippelig)
Da ich auch recht vergesslich bin,hab ich am Ende des Buches,den Anfang
wieder vergessen.

Jedenfalls war die Textur richtig geladen,daran hats definitiv nicht gelegen ;)

@Magellan:

Danke wieder ;)
Er hat nun doch endlich anstatt dem weißem Balken endlich mal den Text
angezeigt. Ich denke das Problem lag wohl irgendwo in der Reihenfolge meiner Befehle,welche da irgendwas schief laufen liessen...
Also Text ist da. Achso,bevor ich es vergess:
Die Textur für die Texturausgabe hatte ich natürlich geladen. Es ist ja nicht so,das ich zu allem unfähig bin,die entsprechenden Teile welche nötig waren habe ich dann ja doch schon selbst gefunden,grins...

Allerdings unterschlägt er mir das Dreieck auch bei deinem Code immer noch,wenn ich die Dreiecksbefehle unten ranhänge...
Warum auch immer... Ich muß mich damit mal wieder an einem Wochenende in Ruhe auseinandersetzen (oder 3D erstmal aufgeben) und
mich dann mal über den einen oder anderen Befehl ganz genau belesen.

Aber mal eben ne halbe Stunde so zwischendurch bringts leider nicht,
ich muß dann doch mal einen Tag finden,wo mehr Zeit bleibt ;)

Cya de Bullykiffer

_________________
Ich weiß zwar nicht worum es geht,
aber ich bin dabei...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 27, 2004 11:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Versuch mal diese Version von Magelans Code:
Code:
  1. procedure TfrmRender.Draw;
  2. begin
  3.   glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
  4.  
  5.   glPushMatrix;
  6.  
  7.   //In Orthomodus wechseln
  8.   glMatrixMode(GL_PROJECTION);
  9.   //Perspektivischen Modus speichern
  10.   glPushMatrix;
  11.   glLoadIdentity;
  12.   glOrtho(0,800,600,0, -1000, 1000);
  13.   glMatrixMode(GL_MODELVIEW);
  14.  
  15.   //Identitätsmatrix wieder herstellen
  16.   glLoadIdentity;
  17.  
  18.   //Text ausgeben
  19.   glEnable(GL_TEXTURE_2D);
  20.   TextureFont.Print2D('Testeintrag 50050...', [10,30,-1],[1,1,1],1,1);
  21.  
  22.   //In Perspektivischen Modus wechseln (zum Zeichnen des Dreiecks)
  23.   glMatrixMode(GL_PROJECTION);
  24.   //Perspektivischen Modus wieder herstellen
  25.   glPopMatrix;
  26.   glMatrixMode(GL_MODELVIEW);
  27.  
  28.   //Dreieck wird nicht texturiert
  29.   glDisable(GL_TEXTURE_2D);
  30.  
  31.   glPopMatrix;
  32.  
  33.   //Dreieck zeichnen, verschieben etc.
  34. end;


Sollte das net funktionieren, dann lass das Pushen und Poppen der Modelviewmatrix weg und lade die Identitätsmatrix für die Modelviewmatrix.

Das mit den verschiednen Matrizen war und ist auch für mich net ganz easy. Teilweise beeinflussen die sich gegenseitig und da braucht man dann bis man da dahinter steigt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 27, 2004 15:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Da du in dem von mir geposteten mittels glPushMatrix den aktiven perspektivischen Modus sicherst, setzt dies voraus, dass du irgendwann vorher (am besten bei der Initialisierung der OpenGL) einen perspektivischen Modus gesetzt hast und dieser auch beim Aufruf von glPushMatrix aktiv ist.

Code:
  1. glMatrixMode(GL_PROJECTION);
  2. glLoadIdentity;
  3. gluPerspective(45, ClientWidth/ClientHeight, 0.1, 1000);
  4. glMatrixMode(GL_MODELVIEW);


Oder du entfernst den Aufruf von glPushMatrix komplett und stellst den perspektivischen Modus mittels satt mittels glPopMatrix mit dem obigen Codesausschnitt wieder her.
Wenn es daran nicht liegt, kannst du mir mal deinen Code schicken und ich sehe ihn mir mal an.
Der Hinweis zum Laden der Textur war nicht böse oder abwertend gemeint. Manchmal sind es aber genau die selbstverständlichen Dinge, die man vergisst oder unterschlägt. Ich spreche da aus Erfahrung ;).

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 16 Queries | GZIP : On ]