Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi open gl und 2d ? (https://www.delphipraxis.net/5929-open-gl-und-2d.html)

Mr_T 23. Jun 2003 21:09

Von einer bestimmten Farbe nur? Ist ja langweilig...
Die Glbmp-lib bietet dir die möglichkeit für jedes Pixel einzeld seinen Tranzparenz-Grad zu bestimmten...
dieses macht man mit "textur1.addalpha(dateiname)" Die Datei, die Hier geladen wird, ist ebenfalls ein Bitmap, welches soweit ich weiß nur Schwarz-weiß ist und den Grad der Transparenz angiebt (0-256) Ich habe damit zwar noch nicht gearbeitet, aber es sollte nicht alzu schwer sein...

PS: das neue Bitmap muss dieselben Dimensionen haben, wie das Original! insgesammt würde ich duir noch für Texturen empfehlen, nur Texturen mit einer Seitenlänge von 2^X Pixel (64x64, 64x128, 128x128, 256x256......) zu verwenden, da viele Grakas mit Seitenlängen, die keine zweier-potzenmzen sind, Probleme haben.....

braingrenade 24. Jun 2003 17:45

Subba !

DAnke für die hilfe und den Tip!

braingrenade 25. Jun 2003 19:55

Hab doch noch ein problem...

Irgendwie kommt bei mir keine textur auf das viereck :

Delphi-Quellcode:
procedure tmyogl.x;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //Farb und Tiefenpuffer löschen
glLoadIdentity;
textur.bind();
glbegin(gl_quads);
gltexcoord2f(1,1);
glvertex2f(1,1);
gltexcoord2f(1,99);
glvertex2f(1,100);
gltexcoord2f(99,99);
glvertex2f(100,100);
gltexcoord2f(99,1);
glvertex2f(100,1);
SwapBuffers(DevCon);
end;
ich bin mir bei den texcoord nicht ganz sicher , aber irgendwas müsste doch trotzdem kommen!

Mr_T 25. Jun 2003 20:30

Also, da du gar nichts siehst, tippt ich mal darauf, dass deine Textur das falsche Format hat (welche Breite / Höhe hat sie?)
Des weiteren sind deine Tex-Coords wirklich nicht das gelbe vom Ei...
so, wie du es schreibst, würdest du die Textur in beide Richtungen 99 Mal wiederholen! (ok, 98 mal.....) ...
Bei den Tex-Coords musste beachten, dass die Werte zwischen Null und eins liegen, d.h.: wenn du die Textur nur einmal auf der ganzen Fläche haben willst, musste die Werte
(0,0)
(0,1)
(1,1)
(1,0)
nemen....
Nimmt man größere Werte als "1!, dann wird die Textur einfach entsprechend vielfach wiederhohlt.... aber man sollte immer bei "Null" anfangen....

Ich gleube, deshalb dürfte deine Textur nicht zu sehen sein........ :idea:

Ach ja, noch eine Frage: wieso benennste deine Procedure so komisch?

braingrenade 25. Jun 2003 20:42

Achso!

Ich hab gedacht das sich die koordinaten der textur gleich wie vertex koordinaten verhalten!


Aber leider funtzt's trotzdem nicht , ich seh nur ein weißes viereck.



so is mein code jetzt:
Delphi-Quellcode:

procedure tmyogl.x;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glLoadIdentity;
textur.bind();
glbegin(gl_quads);
gltexcoord2f(0,0);
glvertex2f(100,100);
gltexcoord2f(0,1);
glvertex2f(100,400);
gltexcoord2f(1,1);
glvertex2f(400,400);
gltexcoord2f(1,0);
glvertex2f(400,100);
SwapBuffers(DevCon);
end;


... //bei initialisierung:
textur := tglbmp.Create;
textur.LoadImage('c:\x.bmp');
textur.GenTexture;
...

meine textur ist 64*64 256 farben und mit image editor gemacht.

Mr_T 25. Jun 2003 20:55

Aha, da liegt der Hase......
Ich habe das eben mal getestet: Die Glbmp-Lib mag keine BMPs,mit einer Farbtiefe von 256 Farben....... Das kommt davon, dass ich nur Truecolor-Pics verwende (aber als Jpg meistens....) Versuche mal daraus ein Truecolor-Bitmap zu machen... dürfte er besser vertragen....

braingrenade 25. Jun 2003 21:24

hmmm....
habs jetzt mit ner 24 bitigen bmp versucht , geht auch nicht.

Kannst du einen kurzen beispiel-code posten ?
Dann vergleich ich mal mit meinem .

Mr_T 25. Jun 2003 21:44

Liste der Anhänge anzeigen (Anzahl: 1)
Ok, ich habe hier einfach mal ein einfaches Beispeil geschrieben....
(Eine Frage am Rande: wo bei deinem Code ist dein "glend;" geblieben?)

braingrenade 25. Jun 2003 22:13

JEEEEEHHHHHHAAAAAAAAAA!!

hatte nur was in dem befehl falsch :

glenable(gl_texture_2d);


alles funzt !!!

DAnke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz