Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



vykreslovani barevneho spektra

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: vykreslovani barevneho spektra

Autor: Eosie

13:39:23 27.07.2009

HSV je zbytečnost, stačí se podívat na obrázek, jak se mění hue:
http://upload.wikimedia.org/wikipedia/commons/5/5d/HSV-RGB-comparison.svg

Ve výsledku to není nic jinýho, než vzorec, jaký dal frca, tzn. ten vzorec je doslova konverze z Hue do RGB (tedy z HSV do RGB pro konstantní SV). Nevím teda, v čem by mělo HSV ještě pomoct, když se tam defacto používá.

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: honyk

22:32:55 26.07.2009

V Jave bych pouzil asi primo metodu HSBtoRGB z java.awt.Color http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Color.html#HSBtoRGB(float,%20float,%20float) - hue se tam zadava v rozmezi 0-1. Kombinaci metod teto tridy lze ziskat RGB hodnoty i jako array.

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: frca

20:27:44 26.07.2009

honyk: Pošli tvůj vzorec, ať porovnáme, který je jednodušší [img]http://forum.builder.cz/smileys/smilie3.gif[/img]

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: honyk

8:16:16 24.07.2009

Mno, RGB na spektrum neni zrovna vhodny model, volil bych spise HSV a operoval s hodnotou Hue (odstin) a nasledne jej konvertoval do RGB - http://cs.wikipedia.org/wiki/HSV

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: frca

22:32:58 11.07.2009

judovana: Pro x v rozsahu <0, 1) by to bylo takto:

red = orezat(abs(x*6-3)-1);
green = orezat(-abs(x*6-2)+2);
blue = orezat(-abs(x*6-4)+2);

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: Eosie

12:01:57 10.07.2009

> red = orezat(abs(x-3)-1);
> green = orezat(-abs(x-2)+2);
> blue = orezat(-abs(x-4)+2);

V CG a HLSL by se dalo napsat:

float3 rgb = saturate(float3(1, -1, -1) * abs(x + float3(-3, -2, -4)) + float3(-1, 2, 2));

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: judovana

7:38:34 10.07.2009

Samozrejeme to muze byt umysl, ale neni misto orezu lepsi interpolovat interval 0-6 na 0-1 (ev 0-255)???
tzn: pro linearni interpolaci
a*0+b=0
a*6+b=1
=>b=0;a=1/6
=>1/6x=y x lezi(0-6), y lezi(0-1)....

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: frca

14:44:56 09.07.2009

Takto barevné spektrum počítám já (pro x v rozsahu <0; 6) ) (pseudokód):

red = orezat(abs(x-3)-1);
green = orezat(-abs(x-2)+2);
blue = orezat(-abs(x-4)+2);

funkce orezat ořeže hodnotu na rozsah <0; 1>


frca

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: judovana

23:42:59 06.07.2009

Ja bychtedy rozhodne interpoloval. Bava se skalda z rgb. Takze prvni slozku inerpolujes od 0 do jedny, drhou vubec, a posledfni od jedny do nuly. Ogl primo bere hodnoty 0-1, takze o mas zadarmo (obraceni intervalu je 1-x ;) )

Citovat příspěvek

 

Re: vykreslovani barevneho spektra

Autor: nou

12:32:08 06.07.2009

tak da sa pripravit si 1D texturu duhy a do jej alfa kanalu dat intenzitu vzarovania. potom uz len vykreslit s zapnutym blendovanim.

Citovat příspěvek

 

vykreslovani barevneho spektra

Autor: Fidelka2a

10:53:54 06.07.2009

Ahoj,

snazim se pomoci barev vykreslit intenzitu silocar. Chci vyuzit barevne spektrum. nulova hodnota tmave modra az maximalni hodnota(1) tmave cervena.
Problem je ze nevim jak spravne mychat barevne slozky RBG v glcolor3f.. jeste me napadlo vyuzit 1D texturu a nejak namapovat urcity jeji kus na silocaru. hledal jsem i tutorialy, ale nejak jsem nenasel nic pouzitelnyho. Nejaky napady?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: