Registriert: Mi Nov 28, 2007 17:37 Beiträge: 17 Wohnort: Berlin
Guten Tag allerseits.
Ich bin neu hier und hab mich bis jetzt immer alleine zu helfen gewusst wenn
Probleme aufgetreten sind, aber nun ist Schluss, ich finde den Fehler einfach nicht
und bin auf eure Hilfe angewiesen. Ich würde euch auch mal das ganze Programm
schicken falls ihr wollt oder mir nicht so weiter helfen könnt, aber ich denke mal
(oder hoffe) das ich mein Problem hier ausführlich erkläre.
Also komme ich dann auch mal direkt zu meinem Problem. Ich habe mich nun durchgearbeitet
bis Tutorial 7 und komme dort einfach nicht weiter, weil ich nicht weis ob das Blending überhaupt
ordnungsgemäß funktioniert. Ich stecke genau bei der Teilüberschrift Gleichheit für Alles! fest. Man soll dort erst ein Viereck rendern mit einer Felstextur (Source) und danach noch ein
Viereck mit einer Grastextur (Destination). Beide Texturen sollen schön ineinander laufen
so das sie aussehen wie eine einzige. Doch das einzige was bei mir passiert ist das durch
glColor4f(1,1,1,0.5); beide Texturen dunkler werden und sie werden dabei auch nicht
transparent. Sie sind einfach nur dunkler als ob jemand einfach das Licht herunter dreht.
Bei der Textur - Prozedur sei noch gesagt das ich SDL zum laden meiner Texturen benutze
und bei anderem Varianten sehe ich nicht durch. Deswegen hilft mir auch nicht die Beispieldatei
zu Tutorial 7 weiter, da dort nicht SDL benutzt wird zum laden und ich den Teil dadurch nicht
verstehe. An irgendwelchen Problemen mit der Grafikkarte oder anderen computerspezifischen
Problemen kann es nicht liegen da ich mir ja die Beispieldatei herunter geladen habe und diese
trotzdem einwandfrei funktioniert.
Ich vermute auch noch nicht einmal das es großartige Fehler in der Render - Prozedur gibt .
Meiner Meinung nach liegt der Fehler irgendwo in der Textur - Prozedur beim laden.
Ich hab ja auch schon überlegt bei dieser anstatt GL_RGB einfach
GL_RGBA zu setzen damit er den Alphakanal mit lädt, aber dabei kompiliert
Delphi erst gar nicht meine Anwendung und es erscheint eine Fehlermeldung.
Bitte Helft mir bei meinem Problem, ich komme dadurch kein Stück mehr voran.
Zum Quelltext sei noch gesagt das ich das 2. Viereck größer gemacht habe damit
ich erkenne ob dahinter auch wirklich die Grastextur vorhanden ist.
Registriert: Mo Sep 02, 2002 15:41 Beiträge: 867 Wohnort: nahe Stuttgart
Ich tippe mal... das, was mir jetzt am wahrscheinlichsten erscheint:
Versuchs mal mit
Code:
glDisable(GL_DEPTH_TEST);
oder mit
Code:
glDepthFunc(GL_LEQUAL);
Letzteres steht so im downloadbaren Sample.
Wenn es dann klappt: Was ist passiert?
Du hast wahrscheinlich irgendwo den Tiefentest mit glEnable(GL_DEPTH_TEST) aktiviert. Das kannst du auch einfach entfernen, das hat den gleichen Effekt. Wenn man aber den Tiefentest nur aktiviert, steht er am Anfang auf glDepthFunc(GL_LESS), das bedeutet, OpenGL zeichnet nur Sachen, die näher am Betrachter sind als bereits Gezeichnetes (LESS than). GL_LEQUAL bedeutet, dass OGL zusätzlich Sachen zeichnet, die exakt so weit vom Betrachter entfernt sind wie bereits Gezeichnetes (LESS OR EQUAL than).
Und somit hat der Tiefentest immer das nähere oder eines der zwei gleich weit entfernten Quads entfernt.
Registriert: Mi Nov 28, 2007 17:37 Beiträge: 17 Wohnort: Berlin
Ach neeeeeiiin ...
Ich habe jetzt wirklich die ganze Zeit die einzelnen Forenbeiträge durchwühlt
und diesen Fehler auf Seite 23 bei Einsteiger schon gefunden. Dort hat man genau das
selbe vorgeschlagen. Erst danach habe ich geguckt ob schon jemand auf meinen
Beitrag geantwortet hat.
... und ja ...
Genau daran lag es ...
Man, man, man ... immer diese “Kleinigkeiten”.
Aber deine Erklärung dazu gefällt mir. So viel habe ich mich ja
noch nicht mit der Funktion beschäftigt. Habe sie eher als Verbesserung
der Performance hingenommen und das war es dann auch.
Jetzt weis ich doch wieder ein kleines Stück mehr und habe auch
noch gleichzeitig eine neue Funktion kennen gelernt.
Ich bedanke mich bei dir für deine Hilfe und beim nächsten
mal gucke ich doch erst noch genauer die Beiträge durch und
poste es dann auch in den Anfängerbereich.
_________________ Es ist ein großer Vorteil im Leben, die Fehler, aus denen man
lernen kann, möglichst früh zu begehen.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.