Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Hallo
ich hoffe , ihr könnt mir helfen.
ich habe folgendes problem:
wenn ich EINIGE texture (andere machen kein problem) lade und sie auf dem bildsch. "male" , dann kann ich nicht mehr einfache linien (konturen), in der farbe, die ich mir wünsche (wähle), zeichnen ??!!
wenn ich textur lösche geht dass aber so soll es aber nicht funktionieren ??!
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
ich weisst nicht warum es so ist, aber bei mir hilft das manchmal und manchmal auch nicht (glEnable(GL_TEXTURE_2D) / glDisable(GL_TEXTURE_2D)).
Auf jedem fall , wenn ich es so schreibe dann geht es immer:
----
glDisable(GL_TEXTURE_2D);
glPushAttrib(GL_ALL_ATTRIB_BITS);
---code---
glPopAttrib();
glEnable(GL_TEXTURE_2D) ;
----
Aber ich habe so´ne gefühll dass es irgend wie nicht so sein sollte, bzw. dass man es irgendwie anders machen müsste ?
glPushAttrib(GL_ALL_ATTRIB_BITS); ist nicht besonders schnell und daher nicht empfehlenswert. Eventuell hast du da einen glEnable/glDisable Aufruf übersehen. Mit glIsEnabled kann man prüfen, ob ein bestimmtes Bit eingeschaltet ist. Wenn du solche Tests einfügst, siehst du ja, ob die Texture korrekt ein bzw. ausgeschaltet ist.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Check vorallem, ob du aus einem Block bei einem Fehler herausspringst ohne die Textur wieder zu disablen.
Theoretisch müsste es auch immer mit GL_ENABLE_BIT den selben erfolg bringen. Denn dann stellst du durch das Pop garantiert wieder das deaktivierte Texturbit wieder her. Is aber genauso net besonders schnell. Besser wärs wirklich, du verfolgst mal was dein Programm an der Stelle so macht, und wieso nicht disabled wird. Eventuell sind die Farben zusätzlich noch verstellt, und du siehst deshalb nix.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hast du evtl. auch OpenGL Licht an? Wenn ja solltest du dies ebenfalls wie die Texturen ausschalten glDisable(GL_LIGHTING); und nach dem Zeichnen deiner Linien wieder einschalten glEnable(GL_LIGHTING);.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
ich bedanke mich für euere Vorschläge, ich werde es mal genauer debuggen, und mal sehen was wirklich los ist, licht bentze ich noch nicht, lossy ex.
jetzt komme ich zu einem anderem problem. es geht um objekt selektion. was soll ich machen? mein kleines spiel (funny toggle, das auf dem siemens handy zu finden ist) stellt n mal n GL_QUADS dar, die sich noch dazu belibig drehen (na ja nich ganz belibieg, nur die rottationsgeschwindigkeit für jede axe ist eine andere....das ist aber nicht die thema ).
dafür habe ich eine (NUR 1) DisplayList erstellt, die ich also beliebig auf dem bildschirm zeichne (n*n mal, wie gesagt).
also meine frage ist jetzt , wie kann ich feststellen, was ich gerade 'geklickt' habe, bzw welche von den Quads ist der 'betorffene' Quad?
jetzt muss ich noch sagen dass ich einige tutorials gefunden habe, die daruber sprechen, aber das hat mir bis jetzt nicht geholfen.
danke im voraus
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du gibst jedem Element eine Nummer (der Name des Elements) vor dem Zeichnen/dem aufrufen der Liste. Die Selection liefert dir dann die Nummern zurück. So einfach is das... theoretisch. Es gab hier im Forum diverse Threads zum thema Selektion. Ließ dir die mal durch bevor du verzweifelst.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Hi, ich hatte vor kurzem das gleiche Problem.
glEnable(GL_TEXTURE_2D); (bzw. disable) muss außerhalb eines glBegin-glEnd-Blockes stehen. kA wieso, aber funktioniert
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.