Farben Mischen, Antialiasing
-
Wuerde gerne Probleme loesen wie:
(1) Gegeben sind Farben A0 und A5. Finde Farben A1 ... A4, so dass die Differenz A0 bis A5 in 5 gleiche Farbabstaende unterteilt wird. Wobei gleicher Farbabstand bedeutet, dass die menschliche Wahrnehmung jeweils zwei Farben als gleich verschieden wahrnimmt.
(2) Unterteile den Farbraum zwischen Farbe B und weiss in 5 Stufen gleicher Helligkeitsdifferenz.Vielleicht wuerde es helfen wenn ich RGB nach HSI umwandle (zumindest bei Aufgabe 2). Aber ich nehme an dass sich in beiden Systemen die Wahrnehmung nicht linear mit den Farbkomponenten veraendert. Kann man da irgendwo Regeln dazu finden?
................................................................................................................
Ein Anwendungsfall, in dem die Farbmischung eine Rolle spielt wäre Antialiasing.Ich zeichne ellipsenartige Flaechen, nicht gross (etwa 9 x 12 Pixel), alles regelmaessige Polygone mit 8,12 oder 16 Ecken.
Um den Rand zu glaetten habe ich die Randpunkte grau gezeichnet (dann noch die "Randpunkte 2.Ordnung"). Die Graustufen habe ich einfach mal +- willkuerlich gewählt und variiert. Aber irgendwie war das visuelle Ergebnis nicht zufriedenstellend.Gibt es sowas wie eine Matrixmethode, mit der ich fuer jeden Punkt einer Bitmap berechnen kann welche Schattierung (Farbmischung) er erhalten sollte, indem ich den Einfluss der Nachbarpunkte (gewichtet mit den Parametern der Matrix) aufsummiere?
Im Augenblick sind meine Polygone noch schwarz, aber spaeter sollen sie mal mehrfarbig sein.Nachdem ich etwas in Google herumgesucht habe, glaube ich fast, dass das gar kein Antialiasingproblem, sondern ein Glättungsproblem ist. Denn ich habe ja keine kontinuierlichen Kurven, die durch die Pixelflaechen approximiert werden, sondern die Pixeldinger sind meine primären Objekte.
-
Ist das Standar-t C++?
Vielleicht wärs im Grafik und Spiele Forum besser
-
Original erstellt von doofie:
Standar-tKannst du nicht deutsch?
Du weisst dass es Standard und Thread heisst, also schreibs auch so!
Schliesslich will ich nicht immer raten was jemand in einem Posting meint, nur weil er sich dann fuer lustig haelt!
-
Na gut, standard. Tred is einfacher, und bis jetzt hats noch jeder erkannt. :p :p
schau doch mal im neuigkeiten forum im tred tag der umfragen
Da kann ich nur eins machen:
-
hmm ich hab nur mal gehört das menschliche wahrnehumg logairhtmisch ist... aber mehr kann ich dazu auch net sagen
-
Original erstellt von Shade Of Mine:
Kannst du nicht deutsch?Doch
**
Du weisst dass es Standard und Thread heisst, also schreibs auch so!**Nö, außerdem schreib ich jetzt eh standard - als erinnerung mit feettem d
**
Schliesslich will ich nicht immer raten was jemand in einem Posting meint, nur weil er sich dann fuer lustig haelt!**Nun tu nicht so, als hättest du nur n halbes neuron.
Verstehst du keinen spaß?[ Dieser Beitrag wurde am 03.07.2002 um 21:23 Uhr von doofie editiert. ]
-
Interpolieren, weißt du, was das bedeutet? Wenn nicht, guck ma in den FAQ nach und sonst google...
-
Meinst du bei (1) eigentlich tatsächlich unterschiedliche Farben, oder meinst du nur unterschiedliche Intensitäten? Wenn du unterschiedliche Farben meinst, dann ist mir nicht klar, was du genau wissen möchtest? ...wär dann grün näher an blau als rot oder wär rot näher an blau?
Ich habe hier Formeln für die Umwandlung eines RGB-Farbwertes in einen Grauwert bezüglich :
- Intensität
- menschliche Wahrnehmung der Intensität (das ist Y vom YIQ-Farbmodell)
- Frequenz
- SättigungWelche Formel brauchst du?
EDIT : ...nach einem kurzen Blick ins Buch ist mir aufgefallen, dass du die meisten der oben genannten Formeln selbst haben müßtest, zumindest, wenn du weißt, wie man nach HSI umwandelt.
[ Dieser Beitrag wurde am 03.07.2002 um 22:41 Uhr von Gregor editiert. ]
-
Meinst du bei (1) eigentlich tatsächlich unterschiedliche Farben, oder meinst du nur unterschiedliche Intensitäten?
Ich stell mit vor die 2 Farben definieren einen Vektor im Farbraum, und je nachdem wie die zwei Farben gewaehlt sind, kann das Intensitaetsunterschiede und auch Farbunterschiede einschliessen.
..wär dann grün näher an blau als rot oder wär rot näher an blau?
Hm, bei weit entfernten Farben klingt die Frage nach der Nähe vielleicht etwas merkwurdig. Wenn der kürzeste Abstand nicht selbstverstaendlich ist, muss man im Grunde noch den Verbindungsweg angeben. Der physiologische Farbraum ist ja wohl eine Kugel, und in dem Fall hat man zwischen blau und rot (bei gleicher Sättigung) eine Verbindung hinten herum über grün, und eine vornherum ueber purpur/violett. Auf beiden Wegen sollte sich eine abzählbare Serie von Übergangsfarben finden lassen, die so etwas wie gleich-verschieden voneinander sind. Wie intersubjektiv oder reproduzierbar messbar sowas sein kann weiss ich nicht, aber fuer praktische Darstellungszwecke sollte eine halbwegs sinnvolle konventionelle Festlegung moeglich sein (meine Hypothese).
Ja, ich wuerde mich mal fuer Deine Umwandlungsformeln interessieren. Am meisten fuer
- menschliche Wahrnehmung der IntensitätOb es mir weiterhilft weiss ich nicht genau. Einen Algorithmus zur Umwandlung in HSI hab ich vor langer Zeit mal im Web gefunden (irgendwo muss ich's abgespeichert haben). Aber ueber subjective Wahrnehmung sagt das auch nichts aus.
(wenn Du's hier nicht reinschreiben willst - meine email ist in meinem Profil)
- Vielen Dank -@Japro
Ja ich glaub, das heisst Fechner's Gesetz, und wird meist angewandt auf die Relation von Reiz-Energie zu Wahrnehmungsintensitaet. Bleibt dann nur wieder die Frage was hat RGB oder HSI mit der Reiz-Energie zu tun. Vielleicht ist die Intensitaet ja tatsaechlich logarithmisch zu R+G+B.
(Dann sollte es in Gregor's Formel drinstehen.)@][
Ja, ich habe schon angefangen zu interpolieren, aber ich glaube nicht, dass das linear geht. Wenn man das alles Durchprobieren will ist es schon ein Haufen Arbeit und ein paar Regeln dazu waeren nicht schlecht.@doofie
Sorry, eigentlich wollte ich in Rund um die Programmierung gehen - weiss auch nicht warum ich in C++ hineingeraten bin.[ Dieser Beitrag wurde am 04.07.2002 um 14:20 Uhr von hgf editiert. ]
-
Oh! Sorry! Ich habe diesen Thread wohl irgendwie vergessen. Bin jetzt erst durch Zufall wieder darauf gestoßen!
Formel (Grauwert bezüglich menschlicher Wahrnehmung):
Y = 0,299*Rot + 0,587*Grün + 0,114*Blau.
...falls es dir noch was bringt.
-
Hi,
Könntest du bitte die Formel für die Sättigung nennen? Also wie man die sättigung aus R, G, B ermittelt.
danke
mfg
burnsy