Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 14:59

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Textur aus einem TBitmap erzeugen
BeitragVerfasst: So Sep 05, 2004 18:48 
Offline
DGL Member

Registriert: So Sep 05, 2004 14:11
Beiträge: 6
Hallo zusammen,

ich war auf der Suche möglichst schnell viele Rechteckige Texturen anzuzeigen (Leveleditor für Tilebased JnR Game), wobei ich über SoS's OpenGL 2D Tutorial gestolpert. Das past für meinen Anwendugsfall optimal. Vielen Dank an dieser Stelle an Son of Satan das er sich für seine Tutorien so viel Arbeit macht!

Anscheinen habe ich aber etwas nicht verstanden und finde auch in keinem Tutorial ein Beispiel dafür.

Ich möchte lediglich ein TBitmap welches ich zur Laufzeit erzeuge mit einem Alphakanal versehen und dies
als Textur verwenden. Leider werden in allen Tutorials die Texturen direkt aus Files geladen so das ich hierfür nirgends ein Beispiel finde. Ich denke eigendlich müsste ich die Bilddaten nur in einem entsprechend formatierten Array ablegen:

z.B. texdata : array of array[0..3] of Byte;

Dann die Textur generieren und binden, aber irgendwie klapt das nicht! Muss ich zum erzeugen immer ein GLBMP verwenden wegen Breite/Höhe ???
Wenn ich ein GLBMP verwenden muss, wie kann ich dann von dieemm das Bitmap beschreiben ???


Vielleicht kann mir jemand auf die Spünge helfen,

Danke
Ghandi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 05, 2004 20:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also mit dem Springen kann ich dir nicht helfen. Elektroschocks sollen dabei wahre Wunder wirken. ;-)

Aber zum Problem mit deinen Texturen. Ich habe einen Loader geschrieben bei dem direkt ein Bitmap übergeben kannst. Und dann noch eines für den Alphajkanal wen gewünscht. Dürfte genau das sein was du brauchst.

glBitmap

Die Methode die du benötigst von den Klassen sind AssignFromBitmap und AddAlphaFromBitmap. Und sonst ist alles ziemlich ähnlich zu glbmp.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 06, 2004 20:14 
Offline
DGL Member

Registriert: So Sep 05, 2004 14:11
Beiträge: 6
Danke für den Tip,

allerdings glaube ich mein Problem besteht drin das Bitmap
als Textur zu verwenden. Mit folgenden Zeilen klapt das nicht:

Code:
  1.  
  2.  glBitmap:=TglBitmap2D.Create;
  3.  glBitmap.AssignFromBitmap(Image1.Picture.Bitmap);
  4.  glBitmap.GenTexture(False);
  5.  


In allen Beispielen wird die Textur direkt aus einem File geladen, wobei
die ID der Textur mit angegeben werden kann, das muss ich quasi mit
meinem Bitmap machen.

Ich fürchte diese Problem is zu banal :( , vieleicht kann mir trotsdem jemand einen Tip geben
wie das geht, oder in welchem tutorial ich mir das anschauen kann.

fettes MERCI
Ghandi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 06, 2004 21:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also normal sollte das so gehen. Oder ich habe dein Probem nicht so ganz verstanden. Evtl liegt es auch bei dir irgendwo. Was klappt eigentlich nicht? Also ist keine Textur da oder was genau willst du denn da noch machen.

Für den fall, dass es selber machen möchtest bräuchtest du normal nur die Bilddaten von dem Bitmap in einen gesonderten (zusammenhängenden) Speicher kopieren und ala GenTextures diesen an OpenGL übergeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 07, 2004 20:53 
Offline
DGL Member

Registriert: So Sep 05, 2004 14:11
Beiträge: 6
Mein Problem ist, das ich die Textur nicht so geladen bekomme das
ich sie mit glBindTexture und der ID einer Fläche zuweisen kann wie
ich es mittels LoadTexture machen kann.

Ich habe in keinem Tutorial so einen Fall gefunden, warscheinlich
wäre das eher ein Thema für die Einsteigerfragen gewesen.

servus
Ghandi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 07, 2004 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
So kann man auch eine Bitmap in die gerade gebundene Texture laden.

Code:
  1. procedure LoadTextureFromBitmap(bmp:TBitmap);
  2. var
  3.  data:PByteArray;
  4.  i,j,w:integer;
  5.  b:PByteArray;
  6. begin
  7.  bmp.PixelFormat:=pf32bit;
  8.  getmem(data,bmp.width*bmp.height*4);
  9.  w:=bmp.Width;
  10.  for i:=0 to bmp.Height-1 do
  11.  begin
  12.   b:=bmp.ScanLine[i];
  13.   move(b^,data^[i*w*4],w*4);
  14.  end;
  15.  gltexparameteri(GL_TEXTURE_2D,GL_Texture_min_filter,GL_LINEAR_MIPMAP_LINEAR);
  16.  gltexparameteri(GL_TEXTURE_2D,GL_Texture_mag_filter,GL_LINEAR);
  17.  gluBuild2DMipmaps(GL_TEXTURE_2D,gl_RGBA8,bmp.width,bmp.Height,GL_BGRA,gl_unsigned_byte,data);
  18.  FreeMem(data);
  19. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 08, 2004 06:58 
Offline
DGL Member

Registriert: So Sep 05, 2004 14:11
Beiträge: 6
Jo, das hat geholfen, damit kann kriege ich meine Bitmaps geladen.

vielen Dank


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]