Problem mit RGB und Farbmischungen ..

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
HeinzK
Establishment
Beiträge: 234
Registriert: 05.11.2009, 08:37
Benutzertext: ZwiAner
Echter Name: Heinz Kempter
Wohnort: Wald
Kontaktdaten:

Problem mit RGB und Farbmischungen ..

Beitrag von HeinzK »

Problem mit RGB und Farbmischungen ..

(DirectDrawCreateEx . (LPVOID *)&lpDd ..)

lpDd->SetDisplayMode
(
(DWORD)g_lDisplayMode_x,
(DWORD)g_lDisplayMode_y,
(DWORD)g_lDisplayMode_p,
0,
0
);

16bit: #define ZWIANER_RGB16(r,g,b)(__int16)(((r) << 11)|((g) << 5)|((b) << 0))
32bit: #define ZWIANER_RGB32(a,r,g,b)(__int32)(((a) << 24)|((r) << 16)|((g) << 8)|((b) << 0))

__int32 i32FrbNr = ZWIANER_RGB16(ucR, ucG, ucB);
bzw.
__int32 i32FrbNr = ZWIANER_RGB32(0, ucR, ucG, ucB);

Kann mir jemand sagen, was ich falsch mache?
Unter 32bit sind Geometrie und alle Farben OK!
Unter 16bit ist die Geometrie in Ordnung, aber die Farben sind alle falsch. außer ein
wirklich reines Rot oder Grün oder Blau.
Es ist leichter, einen Sack Flöhe zu hüten.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 583
Registriert: 05.07.2003, 11:17

Re: Problem mit RGB und Farbmischungen ..

Beitrag von Lord Delvin »

Willst du nicht einfach die Unterstützung für 16bit Farben weglassen? Ich mein wer braucht sowas heutzutage noch? Und auf einigen Bildern ist schon 32bit zu wenig.

Im übrigen glaub ich, dass es daran liegt, dass sich die Farbwerte bei dir überlappen, d.h. du musst die chars erst so verschieben, dass sie tatsächlich auch nur die untersten 5/6 Bits verwenden, also da fehlt noch sowas wie (g>>2) oder (b>>3).

EDIT: Aber überleg dir mal wie viel Zeit du dafür verbrauchst. Das mit dem ARGB32 schaffst du mit nem union übrigens mit einer instruktion. Also union Farbe{ char a,r,g,b; int argb32; }; so irgendwie, kann mich an die genaue Syntax grad nicht erinnern.
Zuletzt geändert von Lord Delvin am 08.01.2010, 08:17, insgesamt 1-mal geändert.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von Jörg »

Jo, schaut fuer mich danach aus als ob Du im 16-Bit - Fall die Farben falsch mischst, weil du immer das volle Byte verschiebst, aber nicht auf den kleineren Wertebereich anpasst.

Versuch mal (fuer 5-6-5 RGB):
#define ZWIANER_RGB16(r,g,b)(__int16)((b>>3) | ((g&0xFC) << 3) | ((b & 0xF8) << 8))

Das ist jetzt aus dem Kopf, kontrolliers lieber nochmal...
Benutzeravatar
HeinzK
Establishment
Beiträge: 234
Registriert: 05.11.2009, 08:37
Benutzertext: ZwiAner
Echter Name: Heinz Kempter
Wohnort: Wald
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von HeinzK »

Lösung! :oops: :roll: :idea:
Das Problem lag an der ZwiAner-Installations-Version. Diese hat eine
vorbereitete Farbtabelle mit auf die Rechner installiert.
Diese Farbtabelle war auf meinen Arbeitsrechner aber nicht vorhanden.
Ok, nun läufts auf 32bit!
Nochmals Danke für Eure Hinweise. Hab' viel gelernt in den letzten 36 Stunden.
Es ist leichter, einen Sack Flöhe zu hüten.
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von Jörg »

Wie jetzt, ich dachte, unter 32bit lief es eh....
Benutzeravatar
HeinzK
Establishment
Beiträge: 234
Registriert: 05.11.2009, 08:37
Benutzertext: ZwiAner
Echter Name: Heinz Kempter
Wohnort: Wald
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von HeinzK »

Ja, aber jetzt bin ich sicher, dass alles auf dem gleichen Stand ist!
Es ist leichter, einen Sack Flöhe zu hüten.
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von Helmut »

Vergiss übrigens nicht, dass __int32/16 signed sind. Für Farben benutzt man normalerweise unsigned Werte, da sonst schnell was schief gehen kann ;)
Benutzeravatar
HeinzK
Establishment
Beiträge: 234
Registriert: 05.11.2009, 08:37
Benutzertext: ZwiAner
Echter Name: Heinz Kempter
Wohnort: Wald
Kontaktdaten:

Re: Problem mit RGB und Farbmischungen ..

Beitrag von HeinzK »

Danke für den Tipp.
Es ist leichter, einen Sack Flöhe zu hüten.
Antworten