ich bekomme es einfach nicht hin mit GlBitmap meine Textur zu benutzen... bestimmt übersehe ich nur eine Kleinigkeit aber ich hab nun schon Stundenlang rumprobiert und auch Threads über ähnliche Probleme durchgelesen aber meines ist irgendwie nicht dabei gewesen...
Erst hatte ich es mit der prozedualen Methode versucht allerdings wollte er patu keine TexturenID an mein glUint liefern deswegen bin ich auf die Objectorientierte Lösung umgestiegen.
Hier einmal alle dazugehörigen Funktionen:
Code:
testx1 := JQuad.create('C:\Programme\Borland\Delphi7\Projects\jump and run\test.jpg',10,10,0,0,0,0);
//erzeugt quad Object mit Textur (habs vorher mit relativem Pfad / bmp / tga versucht und Textur ist power of two)
constructor JQuad.create(text :string; w, h, d, x, y, z :double);
begin
texture := TglBitmap2D.Create(text);
texture.GenTexture;
[...]
end;
//bist hier sollte alles richtig funktionieren da ich mir die breite der Textur ausgeben lassen kann (128px)
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hi,
du siehst ein schwarzes Quad? Ist es wirklich schwarz oder nur sehr dunkel? Denn so würde ich sagen der Code sieht eigentlich recht okay aus. Oder bekommst du einen Fehler? Hab das jetzt nicht so recht rauslesen können. Was passiert denn, wenn du die Textur explizit deaktivierst. glDisable(GL_TEXTURE_2D);
Ist das im übrigen die neuste Version? Wenn ja musst du die Unterstützung für JPEGs erst noch aktivieren.
Wenn ja, dann liegt es evtl am Licht? Hast du das aktiviert?
Wenn nein (weiße Fläche), dann mach mal das glDisable wieder weg und aktiviere die Textur wieder.
Da musst du normal nichts initialisieren. Was ich gesehen habe scheinte richtig gewesen zu sein und einen Fehler gibt es ja auch nicht. Und wichtig wären da auch die Fehler zur Laufzeit. Das ist bei der glBitmap eher ausschlaggebend (datei falsch, fehlende NPOT Unterstützung). Denn das verwundert mich etwas. Sonst sollte eigentlich irgendwas zu sehen sein. Im Fehlerfall entweder absoluter Datenmüll oder zu mindest eine weiße Fläche. Oder eben Exceptions.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
gucky hat geschrieben:
Ich hab mal meinen Sourcecode angehängt, der is noch nicht sehr komplex.
Aber etwas undurchsichtig.
Nichts desto trotz 2 Dinge dann gings.
1) kannst du Texturen nur dann erstellen, wenn du auch einen Kontext hast. Also immer zu erst den RC erstellen und dann die Texturen. Das gab zu mindest bei mir einen Exception, da der Treiber als Maximalgröße 0 zurückgeliefert hatte.
2) wie ich im letzte Post schon gesagt hatte. Ein glColor3f(1, 1, 1) vor dem Zeichnen der Quads und dann wars auch hell. In TForm1.Render setzt du die Farbe auf (0, 0, 0) und anschließend zeichnest du die Quads. Die Farbe der Textur und der der Vertices werden multipliziert. Und irgendwas * 0 ergibt immer 0. Wie letztens jemand zu mir gesagt hatte. "Hey ich verzehnfache all das was auf deinem Konto ist...".
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.