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

Aktuelle Zeit: Mo Jul 07, 2025 13:51

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Einfarbige Texturen
BeitragVerfasst: Fr Mai 13, 2011 12:51 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
So nun bitte nicht laut lachen:

ich benutze der Einfachheit halber und weil es in meiner Anwendung besser aussieht auch für einfarbige Flächen Texturen (GL_TEXTURE_2D).
Ich nutze hierzu die Textures.pas von Jan Horn.

Die Sache ist Die (jetzt kommt die Stelle zum Lachen): Ich erzeuge ein einfarbiges Bitmap, speicher das und rufe dann Loadtextures auf!!!

Das ganze muss doch noch gehen ohne das Bitmap zwischnzuspeichern oder???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Fr Mai 13, 2011 13:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Schau dir die Funktion glTexImage2D an. Diese bekommt einen Pointer pixels, welcher auf die Texturdaten zeigt. Woher die Daten kommen ist der Funktion egal. Du kannst also auch einfach selbst einen Speicherbereich vorbereiten.

Da deine Textur einfarbig ist reicht eine 1x1 Pixel Textur, also z.B. einfach 4 Unsigned Bytes, jeweils ein Byte für die Farbkanäle: RGBA.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Fr Mai 13, 2011 13:35 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Danke, das werd ich machen... mal schauen, ob ich erfolgreich bin!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Fr Mai 13, 2011 15:01 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
1. HAHAHA!!!! (du wolltest es so^^)
2. Muss es unbedingt eine Textur sein? Wenn nicht kannst du auch einfach
Code:
  1.   glBindTexture(GL_TEXTURE_2D, 0);
aufrufen und die gebundene Textur wird "entbunden" (muss grade an Entbindung denken O.o).
Jetzt kannst du mittels glColor3f(); eine Farbe wählen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Mo Mai 16, 2011 07:12 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Na, die effekte scheinen dann nicht richtig zu sein. Wenn ich nur auf Farben gehe, wie Du das beschrieben hast, dann muss ich auch GL_LIGHTING ausschalten, sonst bekomme ich nur ne graue Fläche. Ohne GL_LIGHTING hab ich keine Schatten. Darum als Textur.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Mo Mai 16, 2011 09:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
In einem solchen Fall kann man glEnable mit dem Token GL_COLOR_MATERIAL nutzen. Dann wird für die Beleuchtung der Materialparameter (je nach Einstellung von glColorMaterial) durch z.b. glColor überschrieben und man kann ohne setzen eines Materials auch einfarbige Flächen mittels glColor entsprechend farbig beleuchten lassen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einfarbige Texturen
BeitragVerfasst: Mo Mai 16, 2011 11:13 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
So, ich hab nun was, was funktioniert. BAsierend auf dem Vorschlag von SDH.Prod.

wie gesagt nutze ich die Unit Texture.pas und da nutze ich die Function CreateTexture (ich weiß nicht, ob ich diese Funktion posten darf).

Code:
  1.  
  2. Procedure LoadColor(Var ioTexture: GLuint;inColor: TColor);
  3. Var
  4.   RGB                         : Array[0..2] Of Byte;
  5. Begin
  6.   RGB[2] := (inColor And $FF0000) Shr 16;
  7.   RGB[1] := (inColor And $FF00) Shr 8;
  8.   RGB[0] := (inColor And $FF);
  9.  
  10.   ioTexture := CreateTexture(1, 1, GL_RGB, @RGB[0]);
  11. End;


Das scheint problemlos zu klappen. Nun will ich aber auch einmal schauen, ob ich mit dem Vorschlag von Sascha Willems was anfangen kann. Zumindest hab ich schon mal eine Lösung, die funktioniert!!! *freu*


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]