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

Aktuelle Zeit: So Jul 06, 2025 22:32

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 10:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Ich hab mal ne Frage zu den Farben unter OGL, wie werden die da gespeichert?
Bei D3D war es so das man einen longword (=dword,cardinal) nehmen konnte, mit je einem Byte (0-255) für r,g,b,a ;
das kommt mir bei OGL irgendwie anders vor...

Da werden Singles, verwendet....
Geht das nicht auch anstelle des "Verhältnisses" mit den Absoluten Farbwerten (0-255 anstelle von 0.0-1.0), also kann ich irgendwie die longwords verwenden?

_________________
www.las.eu.tc


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 11:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Doch das geht, denn immerhin bietet OpenGL ja verschiedene Möglichkeiten der Parameterübergabe : <a href='http://www.cevis.uni-bremen.de/~uwe/opengl/glColor.html' target='_blank'>http://www.cevis.uni-bremen.de/~uwe/opengl...gl/glColor.html</a>

Da kannst du dir deinen favorisierten Parametertypen raussuchen...die Auswahl ist da nämlich recht groß, und über glColor3b kannst du auch Bytes als Farbwerte übergeben.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 11:18 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Alternativ Dreisatz:
(1/255)*Wert

Die Lösung von SOS sollte jedoch favorisiert werden ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Dein Longword kannst du auch verwenden, wenn du glColor3bv (viertes Byte keine Funktion) oder glColor4bv (viertes Byte ist Alphakanal) mit einem Zeiger auf dein Longword verwendest...

Etwas offtopic: hab mir erst gestern abend wieder mal ein DirectX Tutorial reingezogen - heilige Umständlichkeit! Alles im vorhinein in irgendwelchen unübersichtlichen Strukturen unterbringen zu müssen, scheint mir noch immer reichlich kontraproduktiv zu sein (vereinfacht aber wahrscheinlich die Treiberprogrammierung). Da weiß man dann OpenGL erst so wirklich zu schätzen, dessen Programmierschnittstelle meiner Ansicht nach um Ecken flexibler ist.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 12:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Danke , so schnelle Hilfe hatte ich nicht erwartet, super!
Ganz genau das richtige B) .

Das mit den Longwords brauche ich, weil ich gerne Bytes shifte *gg*

_________________
www.las.eu.tc


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 12:50 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Exakterweise solltest du wahrscheinlich eher glColor3ubv bzw. glColor4ubv verwenden, damit deine Werte tatsächlich als im Bereich von 0 - 255 (und nicht -128 bis 127) liegend interpretiert werden. Aber da kommst du eh noch selbst drauf :D .

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 13:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Hatte ich auch schon bemerkt :D .
Aber das ganze haut mich immer mit ner Exception raus...

Code:
  1.  
  2.  glcolor4ubv(pglubyte(&#036;ffffffff));
  3.  // ("&#036;ffffffff" in ne Variable zu packen und dann "einzusetzen" liefert das gleiche Resultat).
  4.  // glcolor4ub(255,255,255,255); <-- geht
  5.  

_________________
www.las.eu.tc


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 14:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Probiers mal hiermit :
<!--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'>var</span>
Col : DWORD;
[...]
Col := $FFFFFFFF;
glcolor4ubv(@Col);</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->
Das hat bei mir im Gegensatz zu deinem Code ohne Probs geklappt.Du machst mit deinem pglubyte($ffffffff) nämlich einen ungültigen Typecast, der die Variablengrenzen eines PGLUBytes (=^Char) verletzt und so mit ner Exception endet.Denn für eine Variable vom Typ PGLUByte reserviert der Compiler ja nur 1 Byte (=Größe eines Chars), du versuchst dort allerdings 4 Byte (=Größe eines DWORDs) reinzupressen, was natürlich mit einer Speicherverletzung endet.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2003 17:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Da hätte ich echt drauf kommen können.... :blink:

Danke!

_________________
www.las.eu.tc


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.016s | 15 Queries | GZIP : On ]