乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      色調(diào)、飽和度和亮度 HSL

       木魚長醒 2015-02-16

      最近看飽和度。轉(zhuǎn)些東西過來,都是成熟的理論。

      H: hue,色調(diào),
        S:saturation 飽和度
        L lum 亮度

      從人的視覺系統(tǒng)看,顏色可用色調(diào)(hue)、飽和度(saturation)和亮度來描述,其中色調(diào)與光波的波長有直接關(guān)系,亮度和飽和度與光波的幅度有關(guān)。人眼看到的任一彩色光都是這三個(gè)特性的綜合效果,這三個(gè)特性可以說是顏色的三要素。

      (一)色調(diào)

      色調(diào)(hue)又稱為色相,指顏色的外觀,用于區(qū)別顏色的名稱或顏色的種類。色調(diào)是視覺系統(tǒng)對一個(gè)區(qū)域所呈現(xiàn)顏色的感覺。對顏色的感覺實(shí)際上就是視覺系統(tǒng)對可見物體輻射或者發(fā)射的光波波長的感覺。這種感覺就是與紅、綠和藍(lán)三種顏色中的哪一種顏色相似,或者與它們組合的顏色相似。色調(diào)取決于可見光譜中的光波的頻率,它是最容易把顏色區(qū)分開的一種屬性。

      色調(diào)用紅、橙、黃、綠、青、藍(lán)、靛、紫(red,orange, yellow,green,cyan,blue,indigo,violet)等術(shù)語來刻畫。蘋果是紅色的,這“紅色”便是一種色調(diào),它與顏色明暗無關(guān)。繪畫中要求有固定的顏色感覺,有統(tǒng)一的色調(diào),否則難以表現(xiàn)畫面的情調(diào)和主題。例如我們說一幅畫具紅色調(diào),是指它在顏色上總體偏紅。

      色調(diào)的種類很多,如果要仔細(xì)分析,可有一千萬種以上,但普通顏色專業(yè)人士可辨認(rèn)出的顏色大約可達(dá)三百至四百種。黑、灰、白則為無色彩。色調(diào)有一個(gè)自然次序:紅、橙、黃、綠、青、藍(lán)、靛、紫。在這個(gè)次序中,當(dāng)人們混合相鄰顏色時(shí),可以獲得在這兩種顏色之間連續(xù)變化的色調(diào)。色調(diào)在顏色圓上用圓周表示,圓周上的顏色具有相同的飽和度和明度,但它們的色調(diào)不同,如圖06-01-2 所示,展開的情況如圖06-01-3所示色環(huán)。

      色調(diào)、飽和度和亮度 HSL - lonelyfish -        游戲開發(fā)者博克

       圖06-01-2 圓周表示色調(diào) 

      colorring.GIF (23730 bytes)

          圖06-01-3  色環(huán)

       

      顏色連續(xù)變化的色環(huán)

      太陽光帶中的六種標(biāo)準(zhǔn)色與六種中間色,即紅橙,黃橙,黃綠,藍(lán)綠(青),藍(lán)紫,紅紫(品紅),合稱十二色相或色調(diào)。把不同的色調(diào)按紅橙黃綠藍(lán)紫的順序銜接起來,就形成了一個(gè)色調(diào)連續(xù)變化過渡的圓環(huán),稱作為色環(huán)。

      用于描述感知色調(diào)的一個(gè)術(shù)語是色彩(colorfulness)。色彩是視覺系統(tǒng)對一個(gè)區(qū)域呈現(xiàn)的色調(diào)多少的感覺,例如,是淺藍(lán)還是深藍(lán)的感覺。

      (二)飽和度

      飽和度(saturation)是顏色的純潔性,可用來區(qū)別顏色明暗的程度。當(dāng)一種顏色滲入其他光成分愈多時(shí),就說顏色愈不飽和。完全飽和的顏色是指沒有滲入白光所呈現(xiàn)的顏色,例如僅由單一波長組成的光譜色就是完全飽和的顏色。飽和度在顏色圓上用半徑表示,如圖06-01-4(a)所示。沿徑向方向上的不同顏色具有相同的色調(diào)和明度,但它們的飽和度不同。例如在圖06-01-4(b)所示的七種顏色,它們具有相同的色調(diào)和明度,但具有不同的飽和度,左邊的飽和度最淺,右邊的飽和度最深。

      色調(diào)、飽和度和亮度 HSL - lonelyfish -        游戲開發(fā)者博克

      圖06-01-4  半徑大小表示飽和度的深淺

      (三)明度、亮度與光亮度

      1.明度

      根據(jù)國際照明委員會(huì)的定義,明度(brightness)是視覺系統(tǒng)對可見物體輻射或者發(fā)光多少的感知屬性。

      有色表面的明度取決于亮度和表面的反射率。由于感知的明度與反射率不是成正比,而認(rèn)為是一種對數(shù)關(guān)系,因此在顏色度量系統(tǒng)中使用一個(gè)比例因子(例如,0~10)來表示明度。人們也已經(jīng)發(fā)現(xiàn),對于用不同光譜特性但發(fā)射流明數(shù)量相同的兩個(gè)表面,它們被認(rèn)為有相同的明度。明度的一個(gè)極端是黑色(沒有光),另一個(gè)極端是白色,在這兩個(gè)極端之間是灰色。

      在許多顏色系統(tǒng)中,明度常用垂直軸表示,如圖06-01-5(a)所示。例如在圖06-01-5(b)所示的七種顏色,它們具有相同的色調(diào)和飽和度,但它們的明度不同,底部的明度最小,頂部的明度最大。

      色調(diào)、飽和度和亮度 HSL - lonelyfish -        游戲開發(fā)者博克

      圖06-01-5 垂直軸表示明度

      用純正的顏色相互比較所產(chǎn)生的明暗差別是明度的典型例子。在純正光譜中,黃色的明度最高,顯得最亮;其次是橙、綠;再其次是紅、藍(lán);紫色明度最低,顯得最暗(圖06-01-6)。 


       

       

       

       

       

       


       圖06-01-6  純正的顏色的明暗差別

      明度和人的感知有關(guān),目前還無法用物理設(shè)備來測量。

      2.亮度

      根據(jù)國際照明委員會(huì)的定義,亮度(luminance)是用反映視覺特性的光譜敏感函數(shù)加權(quán)之后得到的輻射功率(radiant power),用單位面積上反射或者發(fā)射的光的強(qiáng)度表示。它的幅度與物理功率成正比,并在555 nm 處達(dá)到峰值。在CIE XYZ 系統(tǒng)中,亮度用Y 表示。嚴(yán)格地說亮度應(yīng)該使用像燭光/平方米(cd/m2)這樣的單位來度量,但實(shí)際上是用指定的亮度即白光作參考,并把它標(biāo)稱化為1 或者100 個(gè)單位。例如,監(jiān)視器用亮度為80 cd/m2的白光作參考,并指定Y = 1 。

      3.光亮度

            色調(diào)、飽和度和亮度 HSL - lonelyfish -        游戲開發(fā)者博克

      其中(Y/ Yn )? 0.008856,Y 是CIE XYZ 系統(tǒng)中定義的亮度,Yn是參考白色光的亮度。

      光亮度用作顏色空間的一個(gè)維,而明度(brightness)則僅限用于發(fā)光體,該術(shù)語用來描述反射表面或者透射表面。對計(jì)算機(jī)顯示器顯示的顏色,除使用明度(brightness)之外,也可使用光亮度(lightness)。因?yàn)殡m然監(jiān)視器是發(fā)射光的物體,但顯示的顏色是相對于監(jiān)視器的白光而言的。

      由于明度很難度量,通??梢杂昧炼?luminance)即輻射的能量來度量。

      飽和度越高,顏色越艷麗、越鮮明突出,越能發(fā)揮其顏色的固有特性。但飽和度高的顏色容易讓人感到單調(diào)刺眼。飽和度低,色感比較柔和協(xié)調(diào),可混色太雜則容易讓人感覺渾濁,色調(diào)顯得灰暗。

      另外附上一個(gè)公式轉(zhuǎn)換的網(wǎng)址:

       http://www./index.php?X=MATH&H=19#text19

      還有我用hlsl寫了個(gè)shader,方便調(diào)整的。一并附上。(沒經(jīng)過優(yōu)化,很大優(yōu)化空間,現(xiàn)在支持ps3.0)


      float3 RGB2HSL(float3 diffuseColor)
      {
        //得到?。瑁螅?br> float H,S,L;
       float var_R = diffuseColor.x;                     //RGB from 0 to 255
       float var_G = diffuseColor.y;                     //RGB from 0 to 255
       float var_B = diffuseColor.z;                     //RGB from 0 to 255

      float var_Min = min(var_B,min( var_R, var_G ));    //Min. value of RGB
      float var_Max = max(var_B,max( var_R, var_G ));    //Max. value of RGB
      float del_Max = var_Max - var_Min;             //Delta RGB value

      L = ( var_Max + var_Min ) / 2.0;

      if ( del_Max == 0 )                     //This is a gray, no chroma...
      {
         H = 0;                                //HSL results from 0 to 1
         S = 0;
      }
      else                                    //Chromatic data...
      {
         if ( L < 0.5 ) S = del_Max / ( var_Max + var_Min );
         else           S = del_Max / ( 2 - var_Max - var_Min );

         float del_R = ( ( ( var_Max - var_R ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max;
         float del_G = ( ( ( var_Max - var_G ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max;
         float del_B = ( ( ( var_Max - var_B ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max;

         if      ( var_R == var_Max ) H = del_B - del_G;
         else if ( var_G == var_Max ) H = ( 1 / 3.0 ) + del_R - del_B;
         else if ( var_B == var_Max ) H = ( 2 / 3.0 ) + del_G - del_R;


         if ( H < 0 ) H += 1;
         if ( H > 1 ) H -= 1;
      }
      return float3(H,S,L);
       }
       
       
      float Hue_2_RGB(float v1,float v2,float vH )             //Function Hue_2_RGB
      {
      float vH1 = vH;
         if ( vH < 0 ) vH1 += 1;
         if ( vH > 1 ) vH1 -= 1;
         if ( ( 6 * vH1 ) < 1 ) return ( v1 + ( v2 - v1 ) * 6 * vH1 );
         if ( ( 2 * vH1 ) < 1 ) return ( v2 );
         if ( ( 3 * vH1 ) < 2 ) return ( v1 + ( v2 - v1 ) * ( ( 2 / 3.0 ) - vH1 ) * 6.0 );
         return ( v1 );
      }


       
      float3 HSL2RGB(float H,float S,float L)
      {
      float R,G,B;
       if ( S == 0 )                       //HSL from 0 to 1
      {
         R = L;                      //RGB results from 0 to 255
         G = L;
         B = L;
      }
      else
      {
         float var_2,var_1;
         if ( L < 0.5 ) var_2 = L * ( 1 + S );
         else           var_2 = ( L + S ) - ( S * L );

         var_1 = 2.0 * L - var_2;

         R = Hue_2_RGB( var_1, var_2, H + ( 1 / 3.0 ) ) ;
         G = Hue_2_RGB( var_1, var_2, H );
         B = Hue_2_RGB( var_1, var_2, H - ( 1 / 3.0 ) );
      }

      return float3(R,G,B);
      }

      float4 std_PS(vertexOutput IN) : COLOR {
          float3 diffuseColor = tex2D(ColorSampler,IN.UV).rgb;
       //{beigin 
       float3 HSL = RGB2HSL(diffuseColor);

      //hsl加數(shù)字
       HSL.r+=0.2;
       
          float3 result = HSL2RGB(HSL.r,HSL.g,HSL.b); 
       //end}
        

       //HSL.r = Hue_2_RGB(diffuseColor.r,diffuseColor.g,diffuseColor.b);
          return float4(result,1);
      }

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多