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

Aktuelle Zeit: Mi Jul 09, 2025 11:27

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Nov 07, 2007 11:12 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 14, 2006 13:08
Beiträge: 117
Wohnort: Berlin
hi Leute,

habe mein Spielbrett mit einer Textatur versehen (nur Oberseite).
Das klappt nun dank eurer gestrigen Hilfe hervorragend.
Aber schon kündigt sich das nächste Problem an :(

Wenn ich die Textatur daraufmale, ändern sich die Farben der Quads, wo eigentlich keine
Textatur drauf ist/soll. In den nachstehenden Bildern sollte der Seitenrand des
Spielfeldes IMMER im hellen grau erscheinen. Das passiert nun aber leider nicht.
Lade ich eine helle Textatur, so wird der Rand heller, umgekehrt dann dunkler.

Hab schon in den Tuts nachgeschaut, aber irgendwas hab ich wohl überlesen.
könnt ihr mir mal einen Tipp geben ?

meine Zeichenroutine dazu lege ich mal gleich mit rein,
bevor Kommentare über defekte Glaskugeln kommen :lol:

Code:
  1.  
  2. // =========================================================================
  3. //   DrawBrett
  4. // =========================================================================
  5. //  zeichnet das Spielbrett mit allen was dazugehört
  6. // =========================================================================
  7. procedure DrawBrett;
  8. var a, b : TBrettSizes;
  9. begin
  10.   glEnable(GL_TEXTURE_2D);
  11.   glBindTexture(GL_TEXTURE_2D, MyTex);   // Textur einbinden
  12.   glBegin( GL_QUADS ); // -- oberes (Spielbrett-Ansicht)- Quad
  13.     for a := Low(TBrettSizes) to High(TBrettSizes) do
  14.       for b := Low(TBrettSizes) to High(TBrettSizes) do begin
  15.         glTexCoord2f( 0,0); glVertex3f( b-1, a-1, 0);    // glVertex3f( -1, -1, 0 );
  16.         glTexCoord2f( 0,1); glVertex3f( b-1, a  , 0);    // glVertex3f( -1,  1, 0 );
  17.         glTexCoord2f( 1,1); glVertex3f( b  , a  , 0);    // glVertex3f(  1,  1, 0 );
  18.         glTexCoord2f( 1,0); glVertex3f( b  , a-1, 0);    // glVertex3f(  1, -1, 0 );
  19.       end;
  20.     glDisable(GL_TEXTURE_2D);
  21.  
  22.     glColor3f( 0.4, 0.2, 0 );                            // untereite braun einfaerben
  23.     glVertex3f( low(TBrettSizes)-1, low(TBrettSizes)-1, cBrettDicke);
  24.     glvertex3f( high(TBrettSizes),  low(TBrettSizes)-1, cBrettDicke);
  25.     glvertex3f( high(TBrettSizes),  High(TBrettSizes),  cBrettDicke);
  26.     glvertex3f( low(TBrettSizes)-1, High(TBrettSizes),  cBrettDicke);
  27.   glEnd;
  28.  
  29.   glColor3f( 0.8, 0.8, 0.8 );                            // restliche Kanten dann weiss / hellgrau
  30.   glBegin( GL_QUAD_STRIP );                              // lo lu - ro ru - usw.
  31.     glVertex3f( Low(TBrettSizes)-1, Low(TBrettSizes)-1, 0);           // LO    vorn
  32.     glVertex3f( Low(TBrettSizes)-1, Low(TBrettSizes)-1, cBrettDicke); // LU    vorn
  33.  
  34.     glVertex3f( High(TBrettSizes) , Low(TBrettSizes)-1, 0);           // RO    vorn  + LO rechts
  35.     glVertex3f( High(TBrettSizes) , Low(TBrettSizes)-1, cBrettDicke); // RU    vorn  + LU rechts
  36.  
  37.     glVertex3f( High(TBrettSizes) , High(TBrettSizes), 0);            // RO    rechts + LO hinten
  38.     glVertex3f( High(TBrettSizes) , High(TBrettSizes), cBrettDicke);  // RU    rechts + LU hinten
  39.  
  40.     glVertex3f( Low(TBrettSizes)-1 , High(TBrettSizes), 0);            // RO   hinten + LO rechts
  41.     glVertex3f( Low(TBrettSizes)-1 , High(TBrettSizes), cBrettDicke);  // RU   hinten + LU rechts
  42.     glVertex3f( Low(TBrettSizes)-1 , Low(TBrettSizes)-1, 0);            // RO   rechts + LO rechts
  43.     glVertex3f( Low(TBrettSizes)-1 , Low(TBrettSizes)-1, cBrettDicke);  // RU   rechts + LU rechts
  44.   glEnd;
  45.  
  46. end;
  47.  


Danke ,
Uwe


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Die 3 Totfeinde eines Programmierers ?
a) Tageslicht
b) frische Luft
c) ..und das ständige Gebrüll der Vögel


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 07, 2007 11:27 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ist das eine Mischung aus "Textur" und "Tastatur" ? :D

bzgl. Fehler:
Schau mal hier.
glEnable/glDisable hat nämlich nichts in einem glBegin/glEnd Block verloren.
Also solltest du
Code:
  1. [...]
  2. glEnd;
  3. glDisable(GL_TEXTURE_2D);
  4. glBegin(GL_QUADS);
  5. [...]

machen.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 07, 2007 11:29 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
*AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH* (+weiteres Gejaule)

glDisable(GL_TEXTURE_2D); gehört immer ausserhalb eines glBegin-glEnd-Blockes.
(glGetError würde übrigens den entsprechenden Fehler melden)
Somit ist die Textur noch aktiv.

-.- @ damadmax
Nicht schneller sein :lol:

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 07, 2007 11:31 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
@ionos: harr harr :D

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 07, 2007 11:40 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 14, 2006 13:08
Beiträge: 117
Wohnort: Berlin
hallo ihr beide,

da hab ich wohl zuviel glBegin() und glEnd "eingespart". :?

Danke Euch beiden für den Hinweis,

Achja, und das mit der "Textatur" kam mir irgendwie schon etwas komisch vor,
ist aber dann im Eifer etwas untergegangen.
Naja, gab's wenigstens mal etwas aufgelockerten Stoff zu lesen.


Gruß Uwe

_________________
Die 3 Totfeinde eines Programmierers ?
a) Tageslicht
b) frische Luft
c) ..und das ständige Gebrüll der Vögel


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 08, 2007 20:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest unbedingt die OpenGL Fehler auslesen und beim Entwickeln immer Einblenden. Da fallen dir solche sachen auf.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 08, 2007 23:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 14, 2006 13:08
Beiträge: 117
Wohnort: Berlin
werd ich mir mal angewöhnen , :roll:

danke für Deinen Rat.
Uwe

_________________
Die 3 Totfeinde eines Programmierers ?
a) Tageslicht
b) frische Luft
c) ..und das ständige Gebrüll der Vögel


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.008s | 14 Queries | GZIP : On ]