Registriert: So Dez 29, 2002 10:37 Beiträge: 251 Wohnort: Ulm
hi,
ich mache gerade das tutorial 6 (bin ich nicht schon weit *g) von nehe und wollte nun wissen, warum ich bei auflösungen der textur, die über 256x256 gehen nichts sehe sondern nur ein komplett weißes quad??
mein code der funktion:
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre> <span class='reserved'>function</span> TVirtualMuseum.LoadGLTextures: Boolean; <span class='reserved'>var</span> TextureImage : PTAUX_RGBImageRec; <span class='reserved'>begin</span> result := False; <span class='reserved'>try</span> <span class='comment'>(* textur laden *)</span> textureImage := auxDIBImageLoadA('kiste.bmp'); <span class='comment'>(* prüfen, ob textur nun <span class='reserved'>in</span> der variablen vorhanden *)</span> <span class='reserved'>if</span> <span class='reserved'>not</span> assigned(textureImage) <span class='reserved'>then</span> <span class='reserved'>begin</span> result := false; exit; <span class='reserved'>end</span>; glGenTextures(<span class='integer'>1</span>, @texture[<span class='integer'>0</span>]); <span class='comment'>(* textur erzeugen *)</span> <span class='comment'>(* typische Textur generieren, indem die daten von dem bitmap kommen *)</span> glBindTexture(GL_TEXTURE_2D, texture[<span class='integer'>0</span>]); <span class='comment'>(* textur generieren *)</span> <span class='comment'>(* parameter übergeben. für info -> siehe oben *)</span> glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexImage2d(GL_TEXTURE_2D,<span class='integer'>0</span>,<span class='integer'>3</span>,TextureImage.sizeX,TextureImage.sizeY, <span class='integer'>0</span>, GL_RGB, GL_UNSIGNED_BYTE, TextureImage.data); result := true; <span class='reserved'>except</span> result := false; <span class='reserved'>end</span>; <span class='reserved'>end</span>; </pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->
- dass deine Grafikkarte nur Texturen bis zu einer bestimmten Größe unterstützt (etwa Voodoo)
- dass deine Grafikkarte Texturen benötigt, deren X- und Y-Ausdehnung Zweierpotenzen sind (die meisten älteren GraKas und auch viele Neue sind schneller, wenn dies der Fall ist
- dass das Bild, das du laden willst, nicht kompatibel zum glaux Image Loader ist.
Die glaux Library ist ohnehin Schrott (war eine Quick & Dirty Lösung, ich glaube eh der SGI Programmierer, um schnell mal OpenGL Demos erstellen zu können - für "ernsthafte" Anwendungen war sie nie gedacht) - du kannst z.B. den Speicher, den du für dein Texturimage verbraten hast nicht auf einfache Weise wieder frei geben - und hast die Textur jetzt zweimal: einaml in Grafikkartenspeicher und einmal im PC-RAM
Mitglieder in diesem Forum: Google [Bot] und 11 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.