Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Palette Opengl (https://www.delphipraxis.net/117681-palette-opengl.html)

EWeiss 23. Jul 2008 12:07


Palette Opengl
 
Ich möchte von einen Bitmap welches als Texture eingelesen wird
die einzelnen Farbwerte in ein array einlesen.
Wie das geht weiss ich aber nicht wie ich über die Texture an die werte komme

Bei einem Bitmap gehe ich einfach über GetPixel(Bitmap.hdc ... und lese die Farbwerte ein
Wie geht das bei texture ?
Hab nichts gefunden das es da ein Hdc gibt

gruss Emil

Flips 23. Jul 2008 13:55

Re: Palette Opengl
 
Hi.
Naja, vielleicht einfach zusätzlich die Textur in ein normales TBitmap laden.
Dann einfach Scanline benutzen und du hast dein Array :-)

EWeiss 23. Jul 2008 14:00

Re: Palette Opengl
 
Zitat:

Zitat von Flips
Hi.
Naja, vielleicht einfach zusätzlich die Textur in ein normales TBitmap laden.
Dann einfach Scanline benutzen und du hast dein Array :-)

den umweg wollte ich nicht gehn deshalb die frage

gruss Emil

Flips 23. Jul 2008 14:11

Re: Palette Opengl
 
Ok, dann hab ich noch das anzubieten:
delphiGL.com (2. Post)
Bezieht sich auf Bei Google suchenglGetTexSubImage2D, mit welchem man beliebige Pixel einer Textur auslesen kann.
Allerdings sind die Suchergebnisse mehr als dürftig.

littleDave 23. Jul 2008 14:11

Re: Palette Opengl
 
Ich hab gerade nur wenig zeit, da ich im Prüfungsstress bin, daher fasse ich mich kurz:
  • Textur zeichnen
  • mit glReadPixels den Inhalt des Framebuffers auslesen
  • Fertig!
Weiß gerade nicht, ob es eine bessere Funktion dafür gibt.

EWeiss 23. Jul 2008 14:19

Re: Palette Opengl
 
Zitat:

Zitat von littleDave
Ich hab gerade nur wenig zeit, da ich im Prüfungsstress bin, daher fasse ich mich kurz:
  • Textur zeichnen
  • mit glReadPixels den Inhalt des Framebuffers auslesen
  • Fertig!
Weiß gerade nicht, ob es eine bessere Funktion dafür gibt.

ahh danke werd es mal versuchen

@Flips
Danke auch dir für das suchen

gruss Emil

EWeiss 24. Jul 2008 17:52

Re: Palette Opengl
 
Liste der Anhänge anzeigen (Anzahl: 1)
habe da was gebastelt ist aber nicht so wie ich es will
Delphi-Quellcode:
glBegin(GL_QUADS);
   for i :=0 to mSpecBars -1 do
   begin

    RGBColor := LevelColr(i);
    cbR := GetRValue(RGBColor);
    cbG := GetGValue(RGBColor);
    cbB := GetBValue(RGBColor);
    glColor4ub(cbR, cbG, cbB, 0);

      x1:=i*d1+d2;
      x2:=(i+1)*d1+overdraw;
      z2:=-heights[1][i]+z1-2.0*(d1-d2);

      h2:=z1-d12d;
      h3:=z2+d12d;

      glTexCoord2f(0.0,0.0); glVertex3f(x1,y,z1);
      glTexCoord2f(0.0,0.3); glVertex3f(x1,y,h2);
      glTexCoord2f(1.0,0.3); glVertex3f(x2,y,h2);
      glTexCoord2f(1.0,0.0); glVertex3f(x2,y,z1);

      glTexCoord2f(0.0,0.3); glVertex3f(x1,y,h2);
      glTexCoord2f(0.0,0.7); glVertex3f(x1,y,h3);
      glTexCoord2f(1.0,0.7); glVertex3f(x2,y,h3);
      glTexCoord2f(1.0,0.3); glVertex3f(x2,y,h2);

      glTexCoord2f(0.0,0.7); glVertex3f(x1,y,h3);
      glTexCoord2f(0.0,1.0); glVertex3f(x1,y,z2);
      glTexCoord2f(1.0,1.0); glVertex3f(x2,y,z2);
      glTexCoord2f(1.0,0.7); glVertex3f(x2,y,h3);
   end;
glEnd();
So wird jede Bar mit einer anderen farbe belegt
Ich nöchte aber das jede Bar die übergebenen Farben bekommt und nicht nur 1 der Farben.

geht das mit Quader nicht?
Wo liegt das Problem

EDIT:
Habe mal ein Pic angehängt so wie es jetzt aussieht.
der gradient verlauf von meinem Paletten Bitmap soll auf eine Bar
nicht verteilt auf alle.

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.

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